“Intent”最近成为以太坊爱好者们讨论的核心话题,账户抽象、SUAVE、订单流拍卖等等这些相关内容也被串联起来。本文将讨论我们如何完成从“基于交易的互换”到“基于Intent的互换”的转变,以及过程中可能发生哪些意想不到的结果,彻底改变MEV的形式。
译者推荐关联阅读:Flashbots如何通过SUAVE来管理所有区块链的MEV市场?MEV 审查困境,SUAVE 会是一个好的解决方案吗?读懂Suave:让MEV变成以太坊的一层
Intent
谈论“Intent”而不提及Anoma是说不过去的。他们从起初就开始构建一个以Intent为中心的区块链架构。那么什么是Intent?值得庆幸的是,这篇文章基于Paradigm而来,所以我可以借用他们的定义:
“Intent是一组已签署的声明性约束,允许用户将交易创建外包给第三方,而放弃对交易方的完全控制。”
译者推荐关联阅读:Paradigm:基于意图的架构及其风险
让我们来看一个真实的例子。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所产生的价值。