基于意图的架构及其实验项目

事实证明,在 Web3 中使用当前系统是一项复杂而耗时的工作。它涉及到在不同的基础设施中指定执行路径,这需要全面的了解。因此,用户在实现其最终目标的过程中经常会遇到挫折,而且很容易被更复杂的行为者利用。之所以会出现这种情况,是因为用户与以太坊交互的现行标准方法涉及以特定格式制作和签署交易,为以太坊虚拟机(EVM)执行状态转换提供所有必要信息。

引入 “意图 “是为了减轻用户的负担。从本质上讲,意图是一组声明性约束条件,允许用户将事务创建委托给专业的第三方行动者网络,同时保留对流程的完全控制。简单地说,如果事务指定了 “如何 “执行某个操作,那么意图则定义了该操作的 “预期结果”。这种声明式方法为用户体验和效率带来了令人兴奋的进步。有了意图,用户可以毫不费力地表达他们想要的结果。这与当前的命令式交易模式形成了鲜明对比,后者的每个参数都必须由用户明确指定。

本博文旨在探讨实现这种声明式范例的方法。此外,博文还将深入探讨为什么仅靠账户抽象是不够的,并概述目前正在探索意图概念的项目。

交易对最终用户来说是死路一条

目前 Web3 中基于事务的方法证明是复杂的,因此导致用户体验不佳和效率下降,因为用户不得不在没有充分获取信息或采用复杂的执行策略的情况下做出决定。

为了说明这种复杂性,请考虑这样一种情况:您希望与 Arbitrum 网络上的去中心化应用程序 (dApp) 进行交互,但您的资金目前存储在以太坊区块链上:

  • 访问 dApp 网站
  • 尝试将您的钱包连接至 Arbitrum,但发现没有可用资金
  • 打开新选项卡,探索连接资金的最佳方式
  • 访问跨链桥网站
  • 将您的钱包连接到另一个区块链(以太坊)
  • 启动桥接程序,将资金从以太坊转入 Arbitrum
  • 等待桥接交易完成
  • 返回原始选项卡
  • 将您的钱包转回 Arbitrum
  • 现在,您终于可以使用桥接资金在 Arbitrum 上使用 dApp 了

甚至在用户有机会与 dApp 本身互动之前,挫败感就已经产生了。这些问题在数以百万计的滚动世界中变得更加突出。
那么,我们如何才能实现从命令式范式到陈述式范式的转变呢?为了了解基本原理,让我先根据 Alchemy 和 Stanley He 的文章简要介绍一下账户抽象(AA)。

账户抽象简述

在以太坊中,有两种地址类型:智能合约和外部自有账户(EOA)。EOA 具有发起交易的能力,而智能合约则缺乏这种能力。因此,目前使用的大多数以太坊钱包都是 EOA。虽然也有像 Safe 这样的智能合约钱包(SCW),但它们需要 EOA 才能触发任何交易,因为智能合约本身无法启动交易。然而,SCWs 具有显著的优势,因为它们可以执行复杂的逻辑,为钱包带来大量新应用,而 EOA 则仅限于交易签名。

为了满足对 SCW 的需求而不需要单独的 EOA,ERC-4337 引入了一种称为用户操作(UserOp)的新型交易类型,并引入了一种称为 “捆绑者”(Bundlers)的新角色。此外,ERC-1271(合同的标准签名验证方法)为任何合同引入了标准方法,以验证代表给定合同的签名是否有效。这可以通过在签名合约上执行 isValidSignature(hash, signature) 函数来实现,调用该函数可以验证签名。这些更新增强了用户使用 SCW 的体验,使用户的使用流程更加顺畅。流程如下:

用户签署一个 UserOp,指定所需的操作。多个用户不会直接将这些 UserOps 发送到主内存池,而是将他们的 UserOps 发送到另一个内存池。这时,执行器和捆绑器就会发挥作用,将这些 UserOps 捆绑在一起,并作为捆绑包提交给入口点合约。然后,该入口点合约与智能合约钱包通信。

一旦 SCW 接收到捆绑的用户操作,它就会进行两步处理。首先,执行 ValidateOp(验证操作),包括检查适当的签名者、访问控制和速率限制,以确保操作的合法性和安全性。验证成功后,SCW 使用 ExecuteOp 函数执行操作。这些操作可能包括转账、执行掉期或购买 NFT 等任务。

Account Abstraction 的主要优势之一是气体抽取,它简化了用户的气体支付流程。这就是付款大师发挥作用的地方。付款大师合约就像另一个实体。当用户发送交易时,UserOp 会被发送到付款大师合约。然后,付款人会进行验证,确保能支付交易的天然气费用。它向捆绑者发送相应数量的原生天然气代币,充当退款机制。只有在支付了天然气费用后,用户操作才会进入验证操作和执行操作阶段。

付费管理器还提供用户操作后挂钩,允许在执行用户操作后进行其他操作,进一步提高了流程的灵活性和控制性。通过使用付费管理器和天然气抽取功能,用户可以执行交易,而不必担心直接管理天然气成本,从而使整个流程更加无缝和方便用户使用。

SCW 中的简化账户抽象设计(来源:Alchemy)

AA 的一个限制是它无法支持跨链的付款大师。让我们考虑这样一种情况:用户在驻留在以太坊网络上的 SCW 上拥有 USDC,但希望使用付款大师来支付 Arbitrum 网络上的交易成本。在操作后功能中,当付款方试图将用户的 USDC 转移给付款方时,挑战就出现了。USDC位于以太坊上,而付款方合约位于Arbitrum上。从本质上讲,账户抽象主要是为单域使用而设计的,缺乏跨多链无缝操作的内在能力。不过,我们稍后会讨论这个问题。

特定意图的应用

账户抽象通常被简化为 “无气交易”、”无籽回收”,可能还有 “费率限制”。是的,这些都很酷,但还不够酷。虽然这些功能无疑很有趣,但它们可能并没有完全抓住 AA 真正卓越的精髓。账户抽象最吸引人的地方在于它的架构,它将钱包转变为意图的入口。

那么,什么是意图呢?

在交易的标准流程中,当验证者收到交易签名时,他们必须根据特定的状态遵循特定的计算路径。此外,还需要支付一定的费用,以鼓励验证者按照这种方式进行交易。然而,对于意图,情况就不同了。意图并不规定固定的计算路径,而是允许符合特定条件的任何路径。当用户签署并分享一个意图时,他们会授权接收者代表他们选择计算路径。这种区别可以更精确地将意图定义为从给定起点开始促进一系列状态转换的签名消息。要深入了解意图解决的数学形式化,我推荐阅读 Fabrizio Genovese 所著的《意图解决的拉格朗日力学(一)》。

值得注意的是,单个交易可以包含多个意图,从而实现重叠意图的匹配。这大大提高了气体和经济效益。例如,在建筑商维护的订单簿中,两个订单在进入市场之前可以有效地相互抵消。此外,意向还能实现更灵活的用户燃气支付,例如让第三方赞助燃气或接受不同代币的支付。

因此,UserOps 不是意图,因为它们基本上是交易。然而,通过智能合约钱包内的验证逻辑,AA 使钱包成为意图的入口。这种验证逻辑允许表达和执行有关用户账户的简单意图。然而,SCW 缺乏对全局状态进行推理的能力。

账户抽象从根本上说是为 “特定意图 “服务的。在这种情况下,只要意图符合某些限制性要求,用户就可以通过 SCW 指定和执行简化的意图:

  • 它们只关注单一领域
  • 它们只使用和执行与用户账户相关的信息
  • 它们涉及Gas补偿

特定意图应用举例

因此,账户抽象主要满足以用户为中心的目标。然而,正如 Paradigm 公司所强调的那样,有许多 “特定意图 “应用实例可以通过 AA 实现:

  • 限价订单:用户可以指定,只有收到至少 200 个 Y 代币,才能从账户中提取 100 个 X 代币
  • Gas赞助:用户可以选择用 USDC 而不是 ETH 支付交易费用,其账户中的 USDC 将用于支付支付方的Gas费用。
  • 授权:可以通过预先授权的方式限制与特定账户的交互。例如,可以指定 ETH 用于购买 OpenSea 上列出的 NFT,也可以限制特定地址只能与 Uniswap 和 Sushiswap 互动。
  • 事务批处理:用户可允许在单个事务中批处理多个意图,以提高气体效率
  • 聚合器:用户可指定使用 “最佳 “价格或收益率进行特定操作。可以通过提供在多个场所执行聚合并选择最优路径的证明来实现这一意图。

虽然 AA 和特定意图应用程序是一项重大进步,但它们也有其局限性,尤其是在多链环境中。让我们考虑这样一种情况:我拥有 ETH,目的是尽可能多地购买 XYZ 币,利用不同滚动链上的流动性。有了 AA,我可以毫不费力地在任何滚动上快速使用我首选的 DEX 聚合器。然而,挑战仍然存在,我仍然需要手动发现所有滚动中可用的最佳 DEX 聚合器。

因此,我们需要一种能够在多链世界中有效扩展的全面、通用的意图语言。

通用解决方案

在以意图为中心的世界里,用户声明或签署他们的偏好,网络依靠第三方行为者(解决者/执行者)代表他们执行这些偏好。需要强调的是,当前基于事务的方法也允许用户外包事务,但区别在于第三方是谁。目前,是应用程序代表用户构建事务,而且它们在这样做时并没有优化最佳结果。因此,”意图 “的创新之处并不在于可以将交易创建外包给第三方,而是增加了一个可以提供更好结果的专业第三方网络。

这可以提高执行效率,因为这些求解器可以整合有关其他链状态的更多信息,而无需与用户通信。

为了说明这一点,让我们重温一下这样一个场景:我拥有 ETH,我的目标是通过利用不同滚动的流动性购买尽可能多的 XYZ 币。在一个以意图为中心的世界里,我可以告知 mempool 我拥有 ETH,并以尽可能多的 XYZ 币为目标。在这个多领域黑暗森林中投入了大量精力的高精密解算器将有效地找到解决方案。对这些解算器的激励应该会带来相当理想的结果。在这种多链格局下,即使是基本任务也变得不切实际,例如,一家公司运行的 DEX 聚合器要与所有新的卷积和域集成。因此,在这种多链环境中,针对特定意图的应用程序缺乏可扩展性。然而,灵活而通用的意图语言可以有效扩展,因为它是一个无权限系统。没有必要让一家公司充当涵盖所有链的全球 DEX 聚合器。取而代之的是,众多求解器可以竞相为用户提供服务,其中一些专门针对特定的卷积类,而另一些则针对不同的领域。这种方法表明,跨领域意图具有超越普通账户抽象的巨大效用和能力,即使在简单的使用案例中也能证明其优势。

用于表达、交流和执行意图的理想基础架构应尽量减少 MEV(矿工可提取价值),最大限度地提高抗审查能力,并针对跨域交互进行优化。此外,还应仔细考虑细粒度用户意图通信与用户体验之间的平衡,因为这一决定会对意图协议的架构产生重大影响。此外,还有许多问题尚未解决,例如如何证明什么是最优、跨域意图将在哪里发布以及求解器如何确定搜索内容。

通用解决方案示例

虽然这一愿景充满希望,但第一步还是要建立一个意图层,让用户可以表达他们的意图,并让解算器竞相解决这些意图。Anoma、SUAVE、Essential 和 CoW Protocol 等项目都在争夺成为区块链的意图层,并采用了不同的方法。然而,由于意图层的概念正在演变,而且许多设计原则似乎相互矛盾,因此对它们进行比较还为时尚早。构建这样一个层面临着巨大的挑战。

Anoma 是一种用于全栈去中心化应用程序的统一架构。它从底层开始设计,适用于涉及无限用户、发出无限数量意图(每个意图都具有任意复杂性)的应用程序。Anoma 的设计遵循以意图为中心和同构架构/异构安全的原则,共同构成了构建去中心化应用程序的声明式范例。意向提交给意向交流节点,这些节点形成意向池。匹配者分析这些意向池,以找到可组合的意向,这些意向在组合时能满足彼此的要求。该协议的状态机可实现分步执行和解耦验证,并通过有效性谓词作为用户账户的不变式来实现。Anoma 使构建新颖应用程序变得简单易行,否则在现有架构(包括以太坊(EVM)和类似以太坊的协议)上构建这些应用程序将变得笨拙、受限或不可能。

SUAVE – 价值表达的单一统一拍卖。SUAVE 试图赋予用户权力,并最大限度地分散公共区块链的权力。SUAVE 将 mempool 和区块生成器的角色从现有区块链中分离出来,并提供了一个高度专业化和去中心化的即插即用替代方案。共享相同的排序层可以让加密货币保持去中心化,让区块构建者获取跨域的 MEV,让验证者实现收入最大化,让用户以最佳执行方式进行交易,同时减少每个域的经济中心化压力。SUAVE 是一个集成环境,可促进在表达、执行和结算偏好方面的去中心化协作。其核心理念是偏好,即由用户签名以表达目标的信息,从而实现跨多个区块链的简单转账或复杂序列。执行者竞相提供最佳执行,包括捕获 MEV 和提供去中心化订单流价值。

Essential 正在开发一系列产品,以推动区块链生态系统从价值提取向意图满足过渡。他们正在创建一种用于表达意图的特定领域语言(DSL)、一种用于以意图为中心的账户抽象的以太坊标准以及一个模块化的意图层。DSL 允许标准化的意图表达和优化求解,增强了基于意图的应用程序的可组合性和开发性。以意图为中心的账户抽象标准使解算器能够根据用户意图构建有效的交易,将意图功能引入现有的 EVM 链。模块化的意向层确保了仅有意向的架构、聚合订单流、MEV 阻力和跨链意向执行的可能性。Essential 的使命是增强用户能力,消除剥削,促进以用户为中心、公平的区块链未来。

CoW Protocol 技术为交易者和解算器网络提供动力,实现无信任、高效的点对点交易。利用批量拍卖作为关键概念,CoW 协议独特地将其定位为以太坊等离散时间结算层的原生交易基础设施,并为用户提供公平、便捷的交易。交易可以直接通过底层链上 AMM 进行结算,也可以通过 DEX 聚合器进行结算,具体取决于哪个池/路径能提供最佳价格。因此,它本质上是作为 DexAggregators 中的 DexAggregator。CoW 协议使批量拍卖能够通过需求契合(CoWs)最大限度地提高流动性,此外还能随时利用链上所有可用的流动性。批量拍卖通过该协议持续进行,因为解算器(负责为批量拍卖找到最佳结算方式的各方)在竞争中进行结算。获胜的解算器将是能通过最优 CoW、找到最佳流动性来源或将两者结合到一个结算中来最大化交易者盈余的解算器。

尝试使用意图的项目概览

下面的插图提供了一个探索意图的项目概览,但并非详尽无遗。不过,我们必须承认,不同类别之间可能会有一些重叠,因此我们对图示进行了简化。1inch Fusion 或 UniswapX 就是目前备受关注的特定意图应用的典型例子。由于这个领域还很年轻,而且发展迅速,因此在短短几个月内,这个示例可能会发生很大变化。

尝试使用意图的项目(不全面;截至 2023 年 7 月 31 日;无法严格区分通用解决方案和特定意图解决方案)

结束语

事实证明,Web3 中当前基于事务的方法对终端用户来说既复杂又耗时。它涉及在各种基础设施之间指定执行路径,导致令人沮丧的用户体验,并有可能被更复杂的行为者利用。基于意图的应用程序提供了从命令式范式向声明式范式的转变,增强了用户体验并最大限度地减少了 MEV 泄露。虽然账户抽象(AA)和特定意图应用程序带来了令人兴奋的进步,但它们也有局限性,尤其是在多链世界中。

为一个完全以意图为中心的世界构建意图层是一项重大挑战,因为我们需要克服当前系统的复杂性,并创建一个用户友好、高效和分散的基础设施来表达和执行意图。因此,我们离这种模式还很遥远。不过,有几个项目正在进行这方面的努力,我们期待未来会有更多的项目出现。

随着意图的采用率不断提高,ERC4337 在一定程度上起到了推波助澜的作用,用户有可能会转向其他的 Mempool。谨慎管理对于防止集中化风险和寻租中介的崛起至关重要。

原文:https://bwetzel.medium.com/intent-based-architectures-and-projects-experimenting-with-them-c3ee63ae24c