近期,在以太坊社区中,关于 Intent 及其应用的讨论比较热烈。本文将简单介绍 Intent 的原理、应用现状、潜在风险以及应对方法。
如果 Transaction(交易)明确指的是如何操作该行为,则 Intent(意图)是指该行为的期望结果是什么。
如果说 Transaction 的指令是:
「先进行 A 操作然后进行 B 操作,然后向 C 付款以获得 D。」
那么与之对应的 Intent 就是:
「我有能力付款,我想要得到 D。」
以 Intent 为中心的协议可以显著改善用户体验和效率。transaction 需要用户自己来明确指定每个参数,操作门槛较高。相比之下,利用 Intent,用户可以简单地表达出预想的结果,同时将最佳实现结果的任务外包给成熟的第三方。
尽管 Intent 为生态系统提供了更多可能性,但以太坊链上基于 Intent 的设计也可能对链下基础架构产生重大影响,与 MEV 相关的活动和市场控制也存在着重要联系。
Intent 的工作原理
当前,用户与以太坊交互的标准方法是制定和签署交易和特定格式的信息,该格式为 EVM 提供所有必要的信息以执行状态过渡。但是,创建交易可能涉及相当复杂的操作。创建交易需要有关智能合约和诸如 nonce 管理等大量细节操作,同时持有特定资产来支付 gas 费。由于用户需要在缺乏足够信息或涉及复杂执行策略的情况下做出决策,因此这种复杂性导致用户体验不佳和效率降低。
Intent 的目标就是是减轻用户的负担。Intent 通过签署一组描述性的约束条件,来允许用户将交易创建外包给第三方,但无需将完全控制权分配出去。
在基于标准交易的流程中,当验证器被激励进行验证时,交易签名允许验证器准确地遵循针对特定状态的计算路径。相比之下,Intent 并不准确指定必须采取哪些计算路径,而是允许任何满足特定约束条件的操作。通过签署和共享 Intent,用户有效地授予接收者代表其选择计算路径的权限(如下图所示)。值得注意的是,单笔交易中可以包含多个 Intent,从而可以匹配重叠的 Intent,节省 gas 费和提高经济效率。此外,用户还可以更灵活地支付 gas 费,例如允许第三方来赞助 gas 或用其他 token 进行付款。
如图所示,提交交易时,用户指定确切的计算路径;提交 Intent 时,用户指定目标和一些约束条件,并且由 Matchmaking 决定要采取的计算路径
Intent 的应用现状
创建 Intent 可以将与区块链交互的复杂事项外包出去,同时允许用户保持其资产和加密身份的托管权限。实际上,关于 Intent 的诸多概念与已运行了几年的系统是相对应的,例如以下场景:
限制型订单:若用户收到至少 200 个 B token,则可以从用户的账户中取走 100 个 A token。
Cowswap 风格的拍卖:与限制型订单相同,但依靠第三方或机制来匹配多个订单以最大程度地提高执行质量。
Gas 赞助:用户可以选择以 USDC 支付交易费用,而非 ETH,账户中有 USDC 用于支付 gas 费用。
委托授权:仅允许以某些预授权的方式与特定账户进行交互。仅当最终交易遵循 Intent 中指定的访问控制列表时,才能实现 Intent。
合并交易处理:允许对多个 Intent 进行合并处理以提高 gas 效率。
聚合器:仅使用最佳价格/收益率进行操作,通过证明执行多个场景的聚合并采取最佳路径来实现 Intent。
目前,Intent 在跨链 MEV(例如 SUAVE),ERC4337 类型的账户抽象,以及 Seaport 订单的场景中也有了新的应用。在 ERC4337 发展的同时,其他新型应用程序(例如跨域 Intent)也正在进入探索阶段。
在所有基于 Intent 的应用程序中,至少需要有一个了解 Intent 的群体,并且被激励去及时执行 Intent。至于谁来扮演这个角色,以什么方式执行以及其激励措施的问题,需要进一步探索实践,才能确定由 Intent 驱动的系统的效能、信任度以及其他影响。
中介与 Mempool
使 Intent 进入有意愿的中介手中的最明显途径是以太坊的 Mempool。但是,当前 Mempool 设计不支持 Intent 的传播。从长远来看,考虑到 DOS 攻击的隐患,在以太坊 Mempool 中传播 Intent 获得普遍支持的可能性极低。可以说,以太坊 Mempool 的开放性和无需许可的性质对 inten 的采用形成了障碍。
在没有以太坊 Mempool 的情况下,Intent 系统设计人员面临一些问题。目前面对的抉择是将 Intent 传播给许可方,还是以无需许可的方式以便任何一方都可以执行 Intent。
如图所示,Intent 先从用户流向许可/无需许可的公共/私密的 Intentpool,再通过 matchmaker 将其转换为交易,最终将其转换为公共 Mempool,或直接通过 MEV Boost 类型的拍卖直接展示在链上。
无需许可的 Mempool
一种正在尝试的设计是一个去中心化的 API,允许在系统中各个节点通过 gossip 广播 Intent,从而为执行者提供无需许可的访问权限。
例如,在 0x 协议中继器中,互相对限制型订单进行 gossip 广播,并在找到匹配时将其上链。在共享的 ERC4337 Mempool 背景下,这种做法也正在被进行探索,以抗衡中心化和审查风险。但是,这种无需许可的 Intentpool 的设计也面临着以下挑战:
DoS 抗性:开发者可能必须限制 Intent 的功能,以避免潜在的 DoS 攻击。
传播激励措施:对于许多应用程序,执行 Intent 是一项有利可图的活动。因此,理论上来说,操作 Intentpool 的节点有动机不去传播 Intent,以减少执行 Intent 的竞争。
MEV:由于 Intent 的执行质量依赖于链下参与者的良好行为,因此在使用公共的、无需许可的 Intentpool 时面临一些困难。如果执行有利可图,那么无需许可的 Intentpool 可能会试图针对用户进行套利。这类似于目前以太坊 Mempool 中的「三明治攻击」,对于 Defi 相关的 Intent 来说这将会是一个普遍的问题。后续的改进方式可能是创建无需许可的、但进行加密处理的 Intentpool。
许可的 Mempool
受信任的中心化 API 的抗 DOS 攻击能力更强,并且不需要传播 Intent。这种信任模型为 MEV 担忧提供了一些立足点。只要信任假设成立,执行质量可得到保证。受信任的中介也可能有与之相关的声誉,从而提供了一些激励来认真执行操作。
因此,许可的 IntentPool 在短期内对基于 Intent 的应用程序开发人员具有吸引力。但是,强信任的假设天然存在缺陷,并且在一定程度上违背了最初的区块链精神。
混合解决方案
还有一些解决方案是上述两种情况的混合。例如,有一种情况,传播过程是许可的,但执行是无需许可的,反之亦然。混合解决方案的一个常见例子是订单流拍卖。
这类设计的思路是,需要交易对手的用户可能需要区分更好和更差的交易对手,以便以更有利的价格进行交易。设计流程通常包括受信任的一方,他们从用户那里获得 Intent(或交易)并代表用户促进拍卖。而参加拍卖是无需许可的。这类设计也存在缺点,在许可的 Intentpool 中,它们很可能会受到各种干扰。
这种方案的底线是基于 Intent 的应用程序不仅涉及与智能合约交互的新消息格式,还需涉及以替代 mempool 的形式的传播和对手发现机制。目前最关键的就是设计出一种兼容激励同时又保持去中心化的 Intent 发现和匹配机制。
风险及其应对方法
尽管 Intent 是一种令人兴奋的交易新范式,但其广泛采用也意味着更大的用户活动加速转移到替代型 Mempool 的趋势。如果管理不当,这种转变可能伤害到以太坊的去中心化以及导致受信任方权力过大,潜在的风险大致有以下几种:
订单流:若 Intent 执行是许可的,但用户对其选择不慎,使之从公共 Mempool 往外迁移,可能会使以太坊区块生产变得中心化。
信任:由于许多解决方案都需要对中介的信任,因此,为了确保 Intent 的执行质量,这种高准入门槛会阻碍基于 Intent 的新架构的发展,降低创新和竞争速度。
透明度: 由于许多 Intent 架构都需要用户对其链资产和许可的 Mempool 交出一些控制权作为妥协,这意味着外部存在一定程度的不可渗透性,因此建立的系统存在不透明的风险,在这种情况下,用户的期望如何得到满足,以及是否存在未被发现的生态系统威胁,都是不清楚的。甚至在用户和区块链之间发展的中间件和 Mempool 的生态系统都会变得不透明。
那么,如何降低上述风险呢?我们知道,以太坊 Mempool 的空间是有限的。对于某些应用,风险是由于其缺乏隐私而造成的,因此它们无法支持更广泛的消息格式。这使钱包和应用程序开发人员处于困境,因为他们必须找到某种方法使用户连接到区块链,同时避免上述风险。
理想的系统应该是无需许可的,以便任何人都可以匹配和执行 Intent,且不能牺牲掉过多的执行质量。系统应该是通用的,以便部署新应用程序,而不需要再建立新的 Mempool。系统应该是透明的,以便公开报告执行 Intent 的过程,并在隐私保证允许时提供执行质量审核的数据。
尽管像 FlashBots 和 Anoma 等团队正在努力致力于通过结合隐私和无需许可来满足上述通用解决方案的要求,但在近期内很难创造出如此完美的系统。因此,用户需要进行权衡,选择不同解决方案来适用于不同的应用程序。同样的,发起 Intentpool 的应用需要在无需许可的情况下寻求普遍性,而在许可的情况下谨慎选择中介。
基于 Intent 的应用程序设计者需要全面考虑其应用程序的链下含义,因为它们不仅仅事关其用户群,还涉及到更广泛的社区,这就要求更广泛的社区对以太坊周围的链下生态系统保持格注意。
小结
由于 Intent 应用的市场需求明显,许多基于 Intent 的应用程序已得到了数年时间的广泛使用。越来越多的 Intent 采用由 ERC4337 部分驱动,可能会加速从以太坊 Mempool 转移到新的场所。Intent 的采用代表了用户从「被迫式操作」范式转变为「描述型」范式,有望大大改善用户体验和提高效率。