基于意图的架构及相关实验性项目

  • bwetzel
  • 发布于 2023-08-03 22:45
  • 阅读 14

本文探讨了基于意图的架构,旨在简化Web3用户体验。当前交易方式复杂且耗时,而意图允许用户声明期望的结果,由第三方执行。文章分析了账户抽象(AA)的局限性,并介绍了Anoma、SUAVE、Essential和CoW Protocol等探索意图概念的项目,它们希望通过不同的方法成为区块链的意图层,从而实现跨链交互和更优的执行效率。

基于意图的架构以及尝试使用它们的项目

在 Web3 中使用当前的系统被证明是一项复杂且耗时的努力。它涉及到跨不同基础设施指定执行路径,这需要彻底的理解。因此,用户在实现其最终目标时面临持续的挫败感,并且容易受到更复杂的参与者的剥削。出现这种情况的原因是,用户与以太坊交互的普遍标准方法是构建和签署特定格式的交易,该格式为以太坊虚拟机(EVM)执行状态转换提供所有必要的信息。

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

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

交易对最终用户来说是死胡同

Web3 中当前的基于交易的方法被证明是复杂的,因此导致了次优的用户体验和效率的损失,因为用户被迫在没有充分的信息访问或使用复杂的执行策略的情况下做出决策。

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

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

甚至在用户有机会与 dApp 本身交互之前,挫败感就已经产生了。在拥有数百万个 rollups 的世界中,这些问题变得更加突出。

那么,我们如何才能从命令式范例转变为声明式范例呢?为了理解基础知识,让我首先根据 AlchemyStanley He 的文章,简要总结一下账户抽象(AA)。

账户抽象简述

在以太坊中,有两种类型的地址:智能合约和外部拥有账户(EOA)。虽然 EOA 能够发起交易,但智能合约缺乏这种能力。因此,今天使用的大多数以太坊钱包都是 EOA。虽然存在像 Safe 这样的智能合约钱包(SCW),但它们需要 EOA 来触发任何交易,因为智能合约无法自行启动交易。尽管如此,SCW 提供了显着的优势,因为它们可以执行复杂的逻辑,从而为钱包启用各种新的应用程序,而 EOA 仅限于交易签名。

为了解决对 SCW 的需求而无需单独的 EOA,ERC-4337 引入了一种称为用户操作(UserOp)的新型交易,并引入了一个名为“Bundler”的新角色。此外,ERC-1271(合约的标准签名验证方法)引入了一种标准方法,供任何合约验证代表给定合约的签名是否有效。这可以通过在签名合约上实现 isValidSignature(hash, signature) 函数来实现,该函数可以被调用来验证签名。这些更新通过 SCW 增强了用户体验,为用户实现了更顺畅的流程。该过程如下(如下图所示):

用户签署一个 UserOp,指定所需的操作。多个用户没有直接将这些 UserOp 发送到主内存池,而是将他们的 UserOp 发送到备用内存池。在这里,执行者和捆绑者发挥作用,将这些 UserOp 捆绑在一起,并将它们作为捆绑包提交到入口点合约。然后,此入口点合约与智能合约钱包通信。

一旦 SCW 收到捆绑的 UserOp,它就会经历一个两步过程。首先,它执行 ValidateOp,其中涉及检查适当的签名者、访问控制和速率限制,以确保操作是合法和安全的。成功验证后,SCW 继续使用 ExecuteOp 函数执行操作。这些操作可能包括诸如转移资金、执行交换或购买 NFT 之类的任务。

账户抽象的关键优势之一是 gas 抽象,它简化了用户的 gas 支付过程。这就是 paymaster 发挥作用的地方。paymaster 合约充当另一个实体。当用户发送交易时,UserOp 会被发送到 paymaster 合约。然后,paymaster 验证并确保它将支付交易的 gas 费用。它将相应数量的本地 gas 代币发送回给捆绑者,充当一种退款机制。只有在解决了此 gas 支付之后,UserOp 才会进入 ValidateOp 和 ExecuteOp 阶段。

paymaster 还提供了一个后用户操作Hook,允许在 UserOp 执行后采取其他操作,从而在该过程中提供更大的灵活性和控制。通过利用 paymaster 和 gas 抽象,用户可以执行交易,而无需担心直接管理 gas 成本,从而使该过程更加无缝和用户友好。

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

AA 的一个限制是它无法支持跨链 paymaster。让我们考虑这样一种情况:用户在位于以太坊网络上的 SCW 上拥有 USDC,但希望使用 paymaster 来支付 Arbitrum 网络上的交易成本。当 paymaster 尝试在后操作函数期间将 USDC 从用户转移到 paymaster 时,就会出现挑战。USDC 位于以太坊上,而 paymaster 合约位于 Arbitrum 上。从本质上讲,账户抽象主要设计用于单域使用,并且缺乏跨多个链无缝操作的固有能力。但是,我们稍后会讨论这一点。

特定于意图的应用程序

账户抽象通常被简化为“无 gas 交易”、“无种子恢复”,可能还有“速率限制”。是的,这些很酷,但还不够酷。虽然这些功能无疑很有趣,但它们可能没有完全捕捉到使 AA 真正非凡的真正本质。账户抽象最有趣的方面在于其架构,它将钱包转换为意图的入口。

那么什么是意图?

在标准的交易过程中,当验证者收到交易签名时,他们有义务遵循基于特定状态的特定计算路径。此外,费用可以激励验证者以这种方式进行操作。但是,对于意图,情况有所不同。意图不规定固定的计算路径,而是允许满足特定条件的任何路径。当用户签名并共享意图时,他们会授予接收者代表他们选择计算路径的权限。这种区别使得可以更精确地将意图定义为促进从给定起点开始的一系列状态转换的签名消息。为了更深入地了解意图求解的数学形式化,我建议阅读 Fabrizio Genovese 的“意图求解的拉格朗日力学 I”。

值得注意的是,单个交易可以包括多个意图,从而导致匹配重叠的意图。这显着提高了 gas 和经济效率。例如,在构建者维护的订单簿中,两个订单可以在到达市场之前有效地相互抵消。此外,意图允许更灵活的用户 gas 支付,例如允许第三方赞助 gas 或接受不同代币的付款。

因此,UserOp 不是意图,因为它们基本上是交易。但是,AA 使钱包成为意图的入口,这得益于智能合约钱包中的验证逻辑。此验证逻辑允许表达和执行有关用户帐户的简单意图。但是,SCW 缺乏推理全局状态的能力。

账户抽象从根本上说是为了服务于“特定意图”而设计的。在这种情况下,用户可以通过他们的 SCW 指定和执行简化的意图,只要这些意图满足某些限制性要求:

  • 它们是单域聚焦的
  • 它们仅使用和执行与用户帐户相关的信息
  • 它们涉及 gas 报销

特定于意图的应用程序示例

因此,账户抽象主要满足以用户为中心的目标。尽管如此,正如 Paradigm 所强调的那样,可以使用 AA 实现许多“特定于意图的”应用程序:

  • 限价订单:用户可以指定只有在收到至少 200 个 Y 代币时,才能从他们的帐户中提取 100 个 X 代币
  • Gas 赞助:用户可以选择以 USDC 而不是 ETH 支付交易费用,并在他们的帐户中分配 USDC 以支付 paymaster 的 gas 成本
  • 委托:可以限制与特定帐户的交互,并以预先授权的方式进行。例如,可以将 ETH 指定用于购买在 OpenSea 上列出的 NFT,或者可以将特定地址限制为仅与 Uniswap 和 Sushiswap 交互
  • 交易批处理:用户可以允许在单个交易中批量处理多个意图,以提高 gas 效率
  • 聚合器:用户可以指定对特定操作使用“最佳”价格或收益。可以通过提供在多个场所执行聚合并选择最佳路径的证明来满足此意图

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

因此,需要一种全面且通用的意图语言,该语言可以在多链世界中有效地扩展。

通用解决方案

在一个以意图为中心的世界中,用户声明或签署他们的偏好,并且网络依赖第三方参与者(求解器/执行者)代表他们执行这些偏好。重要的是要强调,当前基于交易的方法也允许用户外包交易,但不同之处在于第三方是谁。现在,是应用程序代表用户构建交易,并且他们这样做并没有针对最佳结果进行优化。因此,意图的创新不是将交易创建外包给第三方,而是添加了一个专门的第三方网络,他们可以提供更好的结果。

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

为了说明这一点,让我们回顾一下我拥有 ETH 并且我的目标是通过利用跨不同 rollup 的流动性来尽可能多地购买 XYZ 代币的场景。在一个以意图为中心的世界中,我可以通知内存池我拥有 ETH 并且旨在获得尽可能多的 XYZ 代币。一位对这个多域黑暗森林投入了大量精力的高度复杂的求解器将有效地找到解决方案。激励这些求解器应该会带来相当理想的结果。在这个多链环境中,即使是基本任务也变得不切实际,例如,一家公司运营 DEX 聚合器以与所有新的 rollup 和域集成。因此,特定于意图的应用程序在这种多链环境中缺乏可扩展性。但是,一种灵活且通用的意图语言可以有效地扩展,因为它作为一种无需许可的系统运行。无需一家公司充当涵盖每个链的全球 DEX 聚合器。相反,求解器池可以竞争以服务于用户,其中一些专门用于特定的 rollup 类,而另一些专门用于不同的域。这种方法表明,即使对于简单的用例,跨域意图也具有超越普通账户抽象的显着实用性和强大功能,这证明是有利的。

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

通用解决方案示例

虽然愿景充满希望,但第一步是建立一个意图层,用户可以在其中表达他们的意图,而求解器可以竞争来解决它们。Anoma、SUAVE、Essential 和 CoW Protocol 等项目都在争夺成为区块链的意图层,并使用不同的方法。但是,现在比较它们还为时过早,因为意图层的概念正在不断发展,并且其许多设计原则似乎相互矛盾。构建这样一个层面临着严峻的挑战。

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

SUAVE 用于价值表达的单一统一拍卖。SUAVE 旨在增强用户能力并最大限度地分散公共区块链。SUAVE 将内存池和区块构建者角色从现有区块链中分离出来,并提供高度专业化且去中心化的即插即用替代方案。共享相同的排序层允许加密保持去中心化,区块构建者捕获跨域 MEV,验证者最大化他们的收入,以及用户以最佳执行进行交易,同时减少每个域的经济中心化压力。SUAVE 是一个集成环境,可促进在表达、执行和结算偏好方面的去中心化协作。核心概念是偏好,即用户签署的消息以表达目标,从而实现简单转移或跨多个区块链的复杂序列。执行者竞争以提供最佳执行,包括捕获 MEV 并提供去中心化订单流价值。

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

CoW Protocol 技术为交易者和求解器网络提供支持,从而实现无需信任且高效的对等交易。利用批量拍卖作为关键概念,使 CoW Protocol 独特定位为以太坊等离散时间结算层的原生交易基础设施,并为其用户实现公平且可访问的交易。交易可以通过底层链上 AMM 直接结算,也可以通过 DEX 聚合器结算,具体取决于哪个池/路径提供最佳价格。因此,它本质上充当 DexAggregator 的 DexAggregator。CoW Protocol 除了在需要时利用所有可用的链上流动性之外,还通过 Coincidence of Wants (CoWs) 启用批量拍卖,以最大化流动性。批量拍卖由协议持续运行,因为求解器(负责为批量找到最佳结算的各方)正在竞争以结算它。获胜的求解器将是通过拥有最理想的 CoW、找到最佳流动性来源或将两者合并在单个结算中来最大化交易者盈余的求解器。

尝试使用意图的项目概述

下图提供了探索意图的项目的不完全概述。但是,必须承认,类别之间可能存在一些重叠,并且演示方式已简化。目前受到广泛关注的特定于意图的应用程序的典型示例是 1inch FusionUniswapX。由于这个领域仍然很年轻且发展迅速,因此这个图示可能会在短短几个月内发生显着变化。

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

结束语

Web3 中当前的基于交易的方法被证明对最终用户来说是复杂且耗时的。它涉及到跨各种基础设施指定执行路径,从而导致令人沮丧的用户体验和更复杂的参与者可能进行的剥削。基于意图的应用程序提供了一种有希望的转变,即从命令式范例转变为声明式范例,从而增强用户体验并最大限度地减少 MEV 泄漏。虽然账户抽象 (AA) 和特定于意图的应用程序带来了令人兴奋的进步,但它们具有局限性,尤其是在多链世界中。

为完全以意图为中心的世界构建一个意图层提出了重大挑战,因为我们需要克服当前系统的复杂性,并创建一个用户友好、高效且去中心化的基础设施来表达和执行意图。因此,我们离这个范例还很远。但是,有几个项目正在致力于这项工作,并且我们预计未来会出现更多项目。

随着 ERC4337 的推动,意图的采用不断增长,用户可能会转向备用内存池。仔细管理对于防止中心化风险和寻租中介机构的兴起至关重要。

致谢:本文扩展了先前文章中提出的内容,例如 ParadigmMetaWeb.VCUma RoyAlchemyArchetypeZaki ManianAlliance 和 20squares。

非常感谢 Lukas Schor、Liesl Eichholz、Diogo Almeida & Mikey 为围绕这个话题进行的对话。

如果你有一个尝试使用意图的项目,请联系!

你可以关注我的 Twitter 和 LinkedIn 。

  • 原文链接: bwetzel.medium.com/inten...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
bwetzel
bwetzel
江湖只有他的大名,没有他的介绍。