帐户抽象和 SUAVE:以 Intent 为中心的以太坊
MarsBit News
2023-06-12 19:25
订阅此专栏
收藏此文章
交易=你指定如何做;Intent=明确你想要什么,但并不关心如何实现。


原文标题:《Account Abstraction and SUAVE: How far are we from an Intent-Centric Ethereum?

撰文:StanleyH,MetaWebVentures 研究员

编译:Yvonne


「Intent」最近成为以太坊爱好者们讨论的核心话题,账户抽象、SUAVE、订单流拍卖等等这些相关内容也被串联起来。本文将讨论我们如何完成从「基于交易的互换」到「基于 Intent 的互换」的转变,以及过程中可能发生哪些意想不到的结果,彻底改变 MEV 的形式。


Intent


谈论「Intent」而不提及 Anoma 是说不过去的。他们从起初就开始构建一个以 Intent 为中心的区块链架构。那么什么是 Intent?值得庆幸的是,这篇文章基于 Paradigm 而来,所以我可以借用他们的定义:


「Intent 是一组已签署的声明性约束,允许用户将交易创建外包给第三方,而放弃对交易方的完全控制。」


让我们来看一个真实的例子。Alice 在以太坊上有 10,000 USDT,她想用这笔钱获得尽可能多的 GLP(在 Arbitrum 上)。今天,Alice 需要首先将她的资金从以太坊桥接到 Arbitrum,这需要选择一个最佳的跨链桥。幸运的是,这可以通过像 Bungee 这样的桥接聚合器完成。在将 USDT 连接到 Arbitrum 之后,Alice 现在需要决定她使用哪种资产来购买 GLP - 因为 GMX 在购买 GLP 时对不同的资产征收动态费用以平衡池,这意味着如果 USDT 的费用太高,Alice 可能会将 USDT 交换到另一种资产 ( 即 ETH) 并使用 ETH 购买 GLP。为了做出决定,Alice 需要比较 GMX 上的费用差异和多个资产之间的交易滑点。这需要做很多工作,而且她的计算结果可能在她签署交易时就不可用了——利率、价格和滑差一直在变化。


有了 Intent,该过程看起来会完全不同。Alice 只需要表达她的 Intent「我想获得尽可能多的 GLP,至少 10 万个,在以太坊上有 1 万个 USDT」,Intent 求解器将为她完成所有的计算和交易,只给她最终的结果:Arbitrum 上的 GLP。


简而言之,交易=你指定如何做;Intent=明确你想要什么,但并不关心如何实现。


事实上,我们已经在以太坊上表达了 Intent。使用像 1inch 这样的 DEX 聚合器的每次互换都是一个 Intent:你只需指定输入量和滑差,并让路由合约为你找到最佳路线。我们称之为「simple Intent」。还有一种我称之为「searcher Intent」的东西,就像在 Flashbots 拍卖中搜索者对交易顺序的偏好一样。在我们稍后深入研究 Intent 的实现时,这一点很重要。然后是「arbitrary Intent」,即用户可以表达任意 Intent 并完成 Intent。


用户体验革命


长期以来,区块链糟糕的用户体验一直为大众所诟病,许多人认为用户体验是阻碍大规模采用 Web3 的障碍之一。现在我们有了 Intent,这是一种交互范例,可以使区块链的用户体验不仅与 Web2 相当,且实际上比 Web2 更好。在目前的 Web2 设置下,有最终目标的用户仍然需要知道路径,也就是说,如果你想购买股票 / 物品 / 食物,你需要知道使用哪个应用程序……但是 Intent 可以在不知道路径的情况下实现最终目标。区块链 dapp 的原生可组合性进一步使该模型与孤立的 Web2 应用程序相比具有可扩展性。


Intent 层


这个愿景听起来不错,但我们首先需要一个 Intent 层,用户可以在其中表达他们的 Intent,求解者可以通过竞争来解决这些 Intent。Anoma 和 SUAVE 是 Flashbots 的终极 Intent,它们都试图成为区块链的 Intent 层,同时使用完全不同的方法。现在比较它们还为时过早 ( 没有人知道 Intent 层应该是什么样子 ),但有一件事是肯定的:构建 Intent 层是很难的。它的许多设计原则实际上是相互矛盾的,这在 SUAVE 的蓝图中有所体现:


1. 可信的承诺和去中心化


一个简单的 p2p 网络的 Intent( 即,一个「Intent 内存池」) 不太可能工作,因为它不能保证用户和求解者对 Intent 的承诺——例如,我们需要确保一个用户将支付她承诺的金额,一旦她的 Intent 被解决,求解者必须遵守用户设置的约束。一个中心化的解决方案可以工作,但我们当然想要一个去中心化的解决方案,这就给我们留下了一个选择:区块链。是的,这就是为什么 SUAVE 本身就是一个区块链。


2. 隐私


我们希望求解器为用户 Intent 提供最佳执行,这需要尽可能多的信息;但同时不希望恶意行为者利用它们,这至少需要隐藏一些 Intent 信息。目前存在两个问题:首先,在技术上很难使区块链上的可计算信息保密。选择有限:TEE, ZKP, MPC。没有一个是完美的,Flashbots 提议使用英特尔的 可信执行环境(TEE),它已经在安全性(以及与加密解决方案相比的优雅性)方面引起了一些批评。。其次,目前尚不清楚是否会存在隐私的「适当平衡」。Flashbots 的最新产品 MEV-Share,或「proto-SUAVE」,可以将用户的部分交易数据披露给搜索者。这是否真的会让用户和搜索者都受益还有待观察:只有当搜索者确切地知道交换的大小和滑点时,backrun 才会优化,而零信息泄漏使得无法提取任何值。介于两者之间的任何情况都将减少可能的最大盈余。


3.intent 语言 / 协议


用户还需要一种语言来表达 Intent。我们希望这种语言能够表达任意的 Intent,这就是为什么 SUAVE 将使用 EVM/Solidity——它是图灵完备的。但我们也需要一个标准化 Intent 的协议,可能会限制语言,原因有两个:首先,无限表达的 Intent 可能在链上无法解决或无法验证。其次,表达性使模糊的 Intent 成为可能,模糊的 Intent 会产生更多的 MEV,我们希望将其最小化。这是另一个很难取得的平衡。


4. 跨链结算 & 预言机


由于 SUAVE 是一个独立的区块链,为了处理来自外域 ( 即以太坊 ) 的 Intent,就涉及跨链结算。以太坊用户必须将资金存入 SUAVE,并承诺在他们的 Intent 得到解决时解锁这些资金。而对于 SUAVE 上的智能合约来说,验证这一点是需要预言机的。因此,SUAVE 将面对我们今天在跨链桥中遇到的所有问题:安全性、速度、用户体验、信任假设等。


总结一下:我们想用区块链去中心化 Intent 层,这就引入了跨链结算问题;我们希望为用户提供更多的价值回报,这也可能带来更多的罚没;我们希望用户按照自己的意愿表达,但也需要确保他们表达的内容是可解决的。


Intent 层需要账户抽象


账户抽象(AA)通常被简化为「无 Gas 交易」、「无密钥恢复」,也许还有「利率限制」。是的,这些都很酷,但还不够酷。AA 最酷的地方在于其架构,使钱包成为 Intent 的入口。


简短回顾一下 AA:


以太坊上有两种类型的地址:智能合约和外部账户 (EOA)。EOA 可以发起交易,但智能合约不能。因此,我们今天使用的大多数以太坊钱包都是 EOA。有像 Gnosis Safe 这样的智能合约钱包 (SCW),但由于智能合约不能启动交易,因此你需要 EOA 来提示 SCW。SCW 优势:作为一个智能合约,钱包可以执行任意逻辑,为钱包打开无数新的应用程序,而 EOA 只能签署交易。


为了使用户能够使用 SCW 而不需要单独的 EOA, EIP-4337 引入了一个名为 User Operation 的新交易类型和一个名为 Bundlers 的新角色。通过 EIP-4337 后,SCW 的用户流程为:


用户发送 UserOps( 指示他们想要钱包做的动作 ) 到 UserOp 内存池→捆绑者验证并「捆绑」UserOps 在一起,执行它们 ( 签名,支付 gas 费 ),将交易发送到 EntryPoint 合约→EntryPoint 合约将交易传递给 SCW,提示 SCW 做用户要求的事情→捆绑者从 EntryPoint 合约中获得 gas 费退款 ( 为了简单起见,我们将跳过 PayMaster)。



那么,为什么 Intent 层需要 AA?我们仍然以 SUAVE 为例。有两种情况:


1. SUAVE 直接处理用户 Intent


在这种情况下,正如我们提到的,用户需要在 SUAVE 上存入资金并检查和编写智能合约。这极大降低用户体验。这是非常违反直觉的——为什么我需要将资金转移到另一条链上并与之交互,而这只是为了在以太坊上做点什么?在这里,AA 和 SCW 开始发挥作用:你可以将 SUAVE 的所有交互逻辑包装到以太坊钱包中。资金存款,执行验证,一切都可以。这并没有解决 SUAVE 面临的任何根本挑战——我们仍然需要一个无信任桥接器、一个 Intent 协议等。但至少用户体验本身可以通过 SCW 在很大程度上节省下来。EOA 根本无法做到这一点。


2. SUAVE 只处理搜索者的 Intent


很明显,Flashbots 将在其现有产品 ( 即 MEV-Boost 和 MEV-Share) 的基础上迭代构建 SUAVE。考虑到为任意 Intent 构建可行协议的难度,SUAVE 很可能在很长一段时间内不会触及用户 Intent。相反,它将看起来更像目前的 Flashbots,后者主要处理交易顺序的偏好,或者我称之为「searcher Intent」。在这种情况下,必须有人首先将用户的 Intent 转化为交易,然后将交易提交给 SUAVE,这意味着 Intent 解决将在 SUAVE 之前发生。


那么在这种情况下谁是 Intent 层?目前是 dapp,就像 DEX 聚合器解决简单的 Intent。随着 AA 的成熟,SCW 可能会成为事实上的 Intent 层,并从 dapp 和 SUAVE 中抢走午餐。原因如下:


目前,MEV 是对现有交易进行重新排序。然而,有了 Intent,大部分的价值在交易创建之前就已经被提取出来了,而 MEV( 如果我们仍然这样称呼它的话 ) 将是关于从 Intent 中创建交易的。求解器在接收到 Intent 后,可以随心所欲地调整执行 ( 只要满足约束 ),并将自己的交易插入 Intent 生成的交易中,将它们捆绑在一起作为一个原子交易。


最直接的例子就是三明治攻击:现在,三明治攻击者需要 inventory 来根据用户交易来调整价格,并且必须信任中继者、建设者和提议者,不要解除他们的三明治捆绑 ( 否则他们就会被彻底摧毁 )。但 Intent 求解者可以将用户 Intent 无风险和无资本夹在一起:他只需要接受闪电贷,在用户交换之前改变价格,在用户交换之后再交换,偿还闪电贷并获利,所有这些都在一次交易中完成,因为所有涉及的步骤在技术上都是 HIS。


等等,这听起来是不是很熟悉?让我们再来看看这幅精彩的画:



的确, Bundlers 非常像 Intent 求解器。它们接收 UserOps,将其转换为交易,并随意利用它们,因为从技术上讲,这些交易属于它们。


所以 Bundlers 将成为下一个搜索者。这和钱包有什么关系?关键是,UserOps 不是 Intent。UserOps 是伪以太坊交易,其 nonce 和签名字段的使用不是由协议定义的,而是由每个帐户实现定义的。因此,必须有一个「Intent 到用户操作」的过程。这正是 Intent 层所做的。


如果我们相信 SCW 将占据主导地位,那么只有一个合乎逻辑的结果:钱包成为 Intent 层。之前进入 dapp 的 Intent 和订单流将被钱包前端拦截。用户流将变成这样:

注意,SCW 前端的 Intent 求解器很可能同时充当 Bundlers,Bundlers 也可能是区块构建者。这种垂直整合产生了所谓的「Exclusive Intent Flow (EIF)」,就像 MEV 社区广泛讨论的 EOF (Exclusive Order Flow) 一样。在我的上一篇文章中,我认为 EOF 不是一个问题,因为如果用户发现自己遇到拥堵,他们可以很容易地切换执行器。但这一次的 Intent 将会有所不同:用户不再拥有自己的交易。当然,他们也可以切换 Intent 层,但成本会比现在切换 RPC 高得多。


因此(不出所料),Intent 将进一步使 MEV 中心化。好消息是,对于 Flashbots 和任何钱包来说,构建一个功能齐全的 Intent 层都是很困难的,所以我们在很长一段时间内都不会看到完整的 EIF。坏消息是,钱包也可以迭代。记住,今天的 dapp 是 Intent 求解器,SCW 可以有插件,或者钱包内的 dapp。在你的钱包里安装一个钱包插件就像在你的安卓手机上从 Google Play 安装一个应用程序一样平常。这些钱包插件将作为最早的 Intent 求解器,它们吸引的所有 Intent 都将首先汇集到钱包中。一个自下而上构建的 Intent 层。


现在我们可以回答这个话题中的问题了:我们离以 Intent 为中心的以太坊还很远,但 Intent 将开始在用户流量中发挥更大的作用,这将不可避免地永久改变 MEV 格局,智能合约钱包将成为一个强大的价值提取器。用户为获得更好的用户体验而牺牲交易的所有权,希望设计巧妙的 Intent 层能够公平地回报他们的 Intent 所产生的价值。

【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

MarsBit News
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开