基于意图(Intent)的架构和实验项目

MarsBit
媒体专栏
热度: 19133

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

原文标题:Intent-Based Architectures and Projects Experimenting with Them

原文作者:Bastian Wetzel

原文来源:medium

编译:MarsBit,MK

在Web3中使用当前系统被证明是一个复杂而费时的尝试。它涉及在不同的基础设施之间指定执行路径,需要全面的理解。因此,用户在实现最终目标时面临持续的挫败感,并容易受到更复杂的参与者的利用。这种情况的出现是因为目前用户与以太坊互动的主要标准方法涉及以特定格式构建和签署交易,为以太坊虚拟机(EVM)执行状态转换提供所有必要的信息。

为了减轻用户的负担,引入了意图(Intents)。实质上,意图是一组声明性约束,允许用户将交易创建委托给一组专业的第三方参与者,同时保持对过程的完全控制。简而言之,如果交易规定了“如何”执行某个操作,那么意图定义了该操作的“目标”应该是什么。这种声明性的方法为用户体验和效率带来了令人兴奋的进步。通过使用意图,用户可以轻松表达他们期望的结果。这与当前的命令范式相对立,其中每个参数必须由用户明确指定。

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

交易对终端用户来说是一条死胡同

在Web3中,目前的基于交易的方法被证明是复杂的,因此导致用户体验不佳和效率低下,因为用户被迫在没有足够信息或使用复杂执行策略的情况下做出决策。

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

1. 访问dApp网站

2. 尝试将您的钱包连接到Arbitrum,但发现没有可用的资金

3. 打开一个新标签,探索将资金桥接到Arbitrum的最佳方法

4. 转到桥接网站

5. 将您的钱包连接到另一个区块链(以太坊)

6. 启动桥接过程,将资金从以太坊转移到Arbitrum

7. 等待桥接交易完成

8. 返回原始标签

9. 将您的钱包切换回Arbitrum

10. 现在,您终于可以使用在Arbitrum上桥接的资金使用dApp了

甚至在用户有机会与dApp本身互动之前,就已经感到沮丧。在数以百万计的卷积中,这些问题变得更加明显。

那么,我们如何从命令范式转变为声明性范式?为了理解基础知识,让我先简要总结一下账户抽象(AA)的基本内容,这是根据Alchemy和Stanley He的文章。

账户抽象简要回顾

在以太坊中,有两种类型的地址:智能合约和外部所有权账户(EOA)。虽然EOA具有发起交易的能力,但智能合约缺乏此功能。因此,今天使用的大多数以太坊钱包都是EOA。虽然存在智能合约钱包(SCWs)如Safe,但它们需要EOA来触发任何交易,因为智能合约不能自行启动它们。然而,SCWs提供了显著的优势,因为它们可以执行复杂逻辑,为钱包带来了各种新的应用,而EOA则仅限于交易签名。

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

1. 用户签署一个UserOp,指定所需的操作。用户不是直接将这些UserOp发送到主记忆池,而是将它们发送到备用记忆池。在这里,执行者和捆绑者发挥作用,将这些UserOp捆绑在一起,并将它们作为捆绑提交给入口合约。然后,该入口合约与智能合约钱包进行通信。

2. 一旦智能合约钱包收到捆绑的UserOp,它经过两个步骤。首先,它执行ValidateOp,其中包括检查适当的签署者、访问控制和速率限制,以确保操作是合法且安全的。验证成功后,智能合约钱包继续使用ExecuteOp函数执行操作。这些操作可能包括转移资金、执行交换或购买NFT等任务。

账户抽象的一个关键优势是对燃气的抽象,这简化了用户的燃气支付过程。这就是付款主体的作用。付款主体合约充当另一个实体。当用户发送交易时,UserOp被发送到付款主体合约。付款主体验证并确保它将为交易支付燃气费用。它向捆绑者发送相应数量的本地燃气代币,作为退款机制。只有在燃气支付得到处理后,UserOp才继续进行ValidateOp和ExecuteOp阶段。

付款主体还提供后用户操作挂钩,允许在UserOp执行后采取其他操作,从而提供了更多灵活性和控制。通过利用付款主体和燃气抽象,用户可以进行交易而无需担心直接管理燃气费用,使过程更加无缝和用户友好。

账户抽象的一个限制是它无法支持跨链付款主体。让我们考虑这样一个场景:用户在以太坊网络上拥有一个智能合约钱包(SCW),持有USDC,但希望使用付款主体来支付在Arbitrum网络上的交易费用。挑战出现在付款主体在后操作函数期间尝试将USDC从用户转移到付款主体的时候。USDC存放在以太坊上,而付款主体合约位于Arbitrum上。实际上,账户抽象主要用于单域使用,缺乏在多个链之间无缝操作的内在能力。然而,我们稍后会详细讨论这一点。

特定意图的应用

账户抽象常常被称为“无燃气交易”、“无种子恢复”和可能是“速率限制”。是的,这些特性很棒,但还不够出色。虽然这些功能无疑很有趣,但可能并不能完全捕捉到账户抽象真正卓越的本质。账户抽象最引人注目的方面在于其架构,它将钱包转化为意图的入口。

那么,什么是意图?

在标准交易过程中,当验证者接收到交易签名时,他们被绑定在基于特定状态的特定计算路径上。此外,费用作为验证者继续执行的激励。然而,对于意图,情况有所不同。意图不指定固定的计算路径,而是允许满足特定条件的任何路径。当用户签署并分享意图时,他们授予接收者代表他们选择计算路径的权力。这种区别使意图的定义更加精确,可以视为已签名的消息,促成从给定起始点开始的一系列状态转换。为了更深入地理解意图求解的数学形式化,我建议阅读Fabrizio Genovese的文章《Lagrangian Mechanics of Intent Solving I》。

值得注意的是,单个交易可以包含多个意图,导致匹配重叠意图。这显著提高了燃气和经济效率。例如,在由构建器维护的订单簿中,可以在进入市场之前高效地将两个订单相互抵消。此外,意图允许更灵活的用户燃气支付方式,例如允许第三方赞助燃气或接受不同代币支付。

因此,用户操作(UserOps)并不是意图,因为它们基本上是交易。然而,账户抽象将钱包转化为意图的入口,由智能合约钱包内的验证逻辑实现。这种验证逻辑允许表达和执行与用户账户有关的简单意图。然而,智能合约钱包缺乏对全局状态的推理能力。

账户抽象的基本设计是为“特定意图”服务。在这种情况下,用户可以通过他们的智能合约钱包指定和执行简化的意图,只要这些意图满足某些限制性要求:

- 它们专注于单一领域

- 它们仅使用和执行与用户账户相关的信息

- 它们涉及燃气补偿

特定意图应用的示例

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

- 限价订单:用户可以指定只有在他们收到至少200个Y代币时,可以从他们的账户中拿走100个X代币

- 燃气赞助:用户可以选择以USDC支付交易费用,而不是以太币,账户中有USDC用于支付付款主体的燃气费用

- 委托:可以以预授权的方式限制与特定账户的交互。例如,可以指定ETH用于购买在OpenSea上列出的NFT,或者将特定地址限制为仅与Uniswap和Sushiswap进行交互

- 交易批处理:用户可以允许将多个意图批处理到单个交易中,以提高燃气效率

- 聚合器:用户可以指定使用“最佳”价格或收益来执行特定操作。这一意图可以通过提供在多个场所执行聚合并选择最优路径的证明来实现

虽然账户抽象和特定意图应用是一个重大进步,但它们也有局限性,尤其在多链环境中。让我们考虑这样的场景:我拥有ETH,并希望通过利用不同Rollup的流动性来购买尽可能多的代币XYZ。使用AA,我可以轻松快速地在任何Rollup上使用我喜欢的DEX聚合器。然而,挑战仍然在于我仍然需要手动发现在所有Rollup上可用的最佳DEX聚合器。

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

通用解决方案

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

这可能会导致更高效的执行,因为这些求解者可以集成更多关于其他链状态的信息,而无需与用户进行通信。

为了说明这一点,让我们重新考虑一个场景:我拥有ETH,并且我的目标是通过利用不同Rollup的流动性来购买尽可能多的代币XYZ。在以意图为中心的世界中,我可以告知mempool我拥有ETH,并且希望获得尽可能多的代币XYZ。一位高度复杂的求解者,在多领域黑暗森林中投入了大量精力,将高效地找到一个解决方案。对这些求解者的激励应该会导致相当优化的结果。在这种多链的环境下,甚至基本任务都变得不可行,例如一个单一公司运行一个DEX聚合器与所有新的Rollup和领域进行整合。因此,特定意图的应用在这种多链环境中缺乏可扩展性。然而,一个灵活且通用的意图语言会有效地扩展,因为它作为一个无权限系统运作。没有必要让一家单一的公司充当涵盖每条链的全球DEX聚合器。相反,一组求解者可以竞争为用户服务,其中一些求解者专门为特定的Rollup类别提供服务,而其他人则为不同的领域提供服务。这种方法表明,跨领域意图在纯粹的账户抽象之外具有显著的效用和能力,并且即使对于简单的用例,也会带来优势。

表达、传递和执行意图的理想基础设施应该最小化矿工可提取价值(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 Protocol独特地将其定位为以太坊等离散时间结算层的本地交易基础设施,并使其用户能够进行公平、可访问的交易。交易可以直接通过底层链上的AMM进行结算,也可以通过DEX聚合器进行结算,具体取决于哪个池/路径提供最佳价格。因此,它本质上是DexAggregator的DexAggregator。CoW Protocol通过Coincidence of Wants (CoWs)最大化流动性,同时根据需要利用所有可用的链上流动性。批量拍卖由协议持续运行,因为求解者,即负责找到批次最优解的当事方,争夺着解决它。胜利的求解者将是能够通过最优的CoW、找到最佳流动性来源或将两者合并在一个结算中来最大化交易者剩余价值的求解者。

正在尝试意图的项目概览

下图提供了正在探索意图的项目的非详尽概述。然而,值得承认的是,这些类别之间可能存在一些重叠,并且介绍是简化的。目前获得显着关注的特定意图应用的典型例子有1inch Fusion或UniswapX。由于该领域仍处于初级阶段并且正在快速发展,因此这个概述在几个月内可能会发生显著变化。

结语

当前基于交易的Web3方法对终端用户来说复杂且耗时。它涉及在不同的基础设施之间指定执行路径,导致用户体验令人沮丧,并可能被更复杂的参与者利用。以意图为基础的应用程序为我们带来了从命令式到声明式范式的有希望的转变,提升了用户体验并减少MEV泄漏。虽然账户抽象(AA)和特定意图应用带来了令人振奋的进展,但它们在多链世界中也存在一些限制。

建立一个完全以意图为中心的世界的意图层面临重大挑战,我们需要克服当前系统的复杂性,创建一个用户友好、高效和去中心化的基础设施来表达和执行意图。因此,距离实现这一范式还有很长的路要走。然而,一些项目正在努力进行这方面的探索,我们预计未来会涌现更多的项目。

随着意图的采用不断增长,部分得益于ERC4337,用户转向替代性mempool的趋势有可能出现。谨慎管理至关重要,以防止中心化风险和寻租型中介的崛起。

声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。