作者:Cynic LeoDeng
TL;DR
- MEV 是什么:MEV 全称为 Miner Extractable Value(也可称为 Maximal Extractable Value,最大可提取价值),是指矿工通过操纵交易(添加、删除、重排交易)所能够获取的额外收益。获取 MEV 的方式可以分为 DEX 套利、清算、Front-Running、Back-Running、三明治攻击等。
- MEV 带来的影响:Front-Running 与三明治交易会导致糟糕的用户体验与更严重的损失,但同时 DEX 套利、借贷清算可以帮助 Defi 市场更快地到达均衡,维持市场的稳定性。
- MEV 市场规模持续增长:在以太坊 The Merge 之后,仅以太坊使用 Flashbots 的 Block Proposer 接收到的 MEV 收益已超过 206,450ETH(截至 2023 年 7 月初)。
- Flashbots 作为 MEV 领域的绝对主导力量之一,MEV-Geth 让 Miner 与 Searcher 分享了 MEV 收益;MEV-Boost 让 MEV 在 Proposer、Builder、Searcher 之间分配,同时保护了用户的交易不被 Front Running;MEV-share 致力于让用户、钱包、Dapps 能够捕获其交易所产生的 MEV;MEV- SGX 利用 SGX 可信硬件希望彻底取代受信任 MEV-Relay 角色,实现无许可;SUAVE 尝试解决 MEV 带来的中心化风险。作为专用链,向现存的所有链提供交易排序与区块构建服务。
- MEV 市场的新变量:Chainlink 作为市场上最大的预言机平台,试图在预言机网络的层面通过交易排序来缓解 MEV 问题;UniswapX 的出现,有效地解决了「三明治攻击」的问题,但同时也带来了 MEV 审查的新问题等。
MEV 是什么
MEV 全称为 Miner Extractable Value(也可称为 Maximal Extractable Value,最大可提取价值),是指矿工通过操纵交易(添加、删除、重排交易)所能够获取的额外收益。
在一般的公有链中,所有的交易首先要提交到 Mempool 内存池,等待被包含进区块中。矿工 / 验证者作为区块链生态中负责出块的角色,能够决定区块中包含哪些交易,具备很高的权力。一开始,矿工仅按照交易手续费从高到低进行排序决定交易被纳入区块的顺序。后来人们发现,通过在内存池中对交易的监控,矿工可以通过在区块中添加交易、删除交易或改变交易顺序以获取除出块奖励以外的收益,也就出现了 MEV。
在现实实践中,往往有专门的搜索者通过复杂算法寻找获利机会,由于公开 Mempool 之间搜索者具备竞争,所以当搜索者发现 MEV 机会时,会提高交易的手续费以确保自己提交的交易被纳入,矿工与搜索者分担了 MEV 收益。
CGVFOF 综合业内普遍看法,根据策略的不同,将获取 MEV 的方式分为:DEX 套利、清算、Front-Running、Back-Running、三明治攻击等。对于使用概率最终性共识算法的区块链(如使用 PoW 共识算法的 Bitcoin、以太坊 1.0),还可能发生 Fee Sniping 攻击。
- DEX 套利。不同的 DEX 之间的价格可能具备差异,利用区块链的原子交易特性,可以在低价 DEX 上买入并在高价 DEX 上卖出,实现无风险套利。
- 借贷清算。借贷协议当抵押率低于事先设定的比例时,协议通常允许任何人对抵押品进行清算,立即偿还贷款人。清算时借款人通常需要支付巨额的清算费,其中一部分归清算者所有,也就带来了 MEV 机会。
- Front Running。可以理解为抢跑,监控到有利润的交易时,以更高的交易费提交相同交易,从而让自己提交交易在原交易之前被纳入区块,获取利润。当然,Front Running 不单指重复提交相同交易,广义上是在某交易前插入一个交易以获取利润。
- Back Running。对于使用 AMM 自动做市机制的 DEX,大规模的交易会产生显著的滑点。当大规模交易发生后,市场处于不均衡状态,Back Running 指在大规模交易后添加交易,以低于市场均衡价格买入资产。
- 三明治交易。三明治交易是 Front Running 与 Back Running 的结合。三明治交易指在大规模交易前以低价买入,当大规模交易拉高价格后,以高价卖出以获取高利润。
- Fee Sniping 攻击。最近 BRC-20 火热行情导致 Bitcoin 网络堵塞,交易手续费持续上升,人们开始重新关心起可能出现的 Fee Sniping 攻击。在 PoW 共识的区块链网络上,如果潜在的收益足够大,矿工可以回滚或者重组最近的几个区块,通过重新排序或者包含某些特定的交易来获取更多的收益。注:在 The Merge 之前的以太坊,同样采取 PoW 共识,但是以太坊称之为 Time Bandit。
MEV 带来的影响
MEV 伤害用户甚至伤害整个区块链网络,但同时也让市场更加均衡和有效。
1. 积极方面
DEX 套利、借贷清算可以帮助 Defi 市场更快地到达均衡,维持市场的稳定性。与传统金融相同,MEV 搜索者实际上是有效的金融市场存在的前提条件。对于这类 MEV 而言,MEV 搜索者获取的收益来自市场。
2. 消极方面
Front-Running 与三明治交易会导致糟糕的用户体验与更严重的损失,相互竞争的 MEV 搜索者将通过 Gas 竞拍造成网络拥堵,拉高 Gas Fee。
对于概率最终性的 PoW 链,更严重的是可能带来的 Fee Sniping 攻击,Time-Bandit 攻击违反了区块链的「不可改变性」(Immutability)原则,会严重破坏区块链网络的安全性和稳定性,所以最近的 BTC 社区对 Oridinal 协议带来的现状感到担忧。
对于 PoS 的链,尤其是针对当前的 ETH2.0,MEV 可能导致验证者的中心化。更大的质押池会获取更高的 MEV 收益,进而有更多资源提高 MEV 提取能力,导致马太效应,最终导致验证者的中心化,降低安全性。
MEV 的发展历程
早期萌芽(2010-2017 年):
2015 年,比特币核心开发者 Peter Todd 在 Twitter 上提出「Replace By Fee(RBF)」概念,是前文所说 Front Running 概念的前身,指出用户可以通过提高交易手续费来提交至少一个 Input 相同的交易以替换掉原有的交易。
在 RBF 基础之上,比特币社区逐渐演变出对 Fee Sniping 的研究。Fee Sniping 指矿工有意地重新挖掘一个或多个之前的区块,以获取最初创建这些区块的矿工的费用。
尽管重新挖掘之前的区块成功的可能性较小,相比使用新区块扩展链条,但如果之前的区块在交易费用方面比矿工当前的内存池中的交易更有价值,那么这种方法可能更具盈利性。Fee Sniping 之后被拓展到 EVM 模型,在《Flash Boys 2.0》论文中被描述为「Time Bandit」攻击。
正式诞生(2018-2019 年):
MEV 仅在状态存在争议与提交但未确认的状态转移情况下会产生 MEV,而比特币几乎不具备共享状态,且状态转移被严格规定,所以比特币上的 MEV 仅限于 Fee Sniping 与双花攻击的尝试。而在具备图灵完备性智能合约的以太坊上,MEV 的机会显著增加。
2016 年以太坊的第一个 DEX——EtherDelta 上线,采用子匹配订单簿设计,实际为市场提供了广泛的 MEV 机会,但是当时没有人对其进行充分利用。
2017 年以太坊上第一个算法稳定币——DAI 出现,为 Defi 提供了清算的功能,市场出现了大规模但不频繁的 MEV 机会(Spike MEV)。2018 年,Hayden Adams 创立 Uniswap——以太坊上第一个使用 AMM 自动做市机制的 DEX,AMM 机制实际上依赖于 MEV 提取者来维持市场效率,让市场上的 MEV 机会大幅增加。
Flashbots 出现(2019-2021 年):
2019 年 4 月《Flash Boys 2.0》出版,对于 MEV 的研究进入主流视野。2019 年末,一群志同道合的数字游民组成了 Pirate Ship,后续改名为 Flashbots,以机器人表情作为 logo。
2021 年 1 月,Flashbots Auction(mev-geth 与 flashbots relay)正式发布,乘着 Defi Summer 的热度,被提取的 MEV 大幅增长。
现状:MEV 百花齐放,Flashbots 一枝独秀
随着 MEV 市场越来越大,许多项目也加入到了开放行列。Flashbots 当前仅支持以太坊主网,所以当前主流的 Alt Layer1 与 Layer2 都在学习 Flashbots,尝试实现 MEV 拍卖功能。
也有一些项目选择了不一样的道路,尝试通过对交易池的加密来彻底解决 MEV 问题。Flashbots 自身也在不断创新,在 2021 年初的 Flashbots Alpha 之后,又先后实现了 Flashbots Protect, MEV-Boost, MEV-Share,下一阶段的 SUAVE 也在开发中。
MEV 的市场有多大?
从理论上而言,用户提交的交易中可能蕴含的 MEV 收益是无限大的。然而,无法通过有限的计算来确定 MEV 的收益大小,人们所发掘的 MEV 收益构成了可能 MEV 的下界。通常,人们通过实现的 MEV(Realized MEV, REV)来估计可能的 MEV 市场情况。
以太坊 The Merge 之后的 MEV 市场统计
Source: https://explore.flashbots.net/
根据 Flashbots 提供数据显示,截至 2023 年 7 月初,在以太坊 The Merge 之后,已实现 206,450ETH 的 REV 提取。但这仅仅是 Block Proposer 接收到的 MEV 收益,Searchers 的收益尚未计算在内。
没有市场竞争会变得更好吗?
从人类社会积累至今的历史经验来说,「看不见的手」在大多数情况下是更好的选择。但是几乎没有人否认,在某些特定的领域市场经济是不适用的,滥用市场会导致严重的后果。
由 Front Running 导致的 Gas Price 增高的问题,其根基在于以太坊的价格机制。能否让 Gas Price 维持在一个固定的水平,以避免 Searcher 的 Priority Gas Auction?
然而,这样做的一个明显结果将是链下的勾结,拥有 MEV 机会的 Searcher 会贿赂矿工以让自己的交易被更早纳入区块,反而会滋生链下的小规模市场,与以太坊公开无许可的理念背道而驰。
当然,我们可以让网络中的矿工 / 验证者通过某种权威认证,保证其不会作恶,但这样就引入了极强的信任假设,完全变为许可链。
简而言之,CGV 认为,在维持以太坊现有特征的前提下,恐怕很难彻底根治 MEV 问题。
如何缓解 MEV 带来的不利影响
协议级 PBS——以太坊社区的解决方案
在 PoS 中,validators 轮流值班作为区块的提议者 proposer,validators 间会进行共识以决定该区块是否被写入链上。在 PoW 中,提块并进行共识的工作由 Miner 完成,实质相同。
PBS 主要是为了解决当前 MEV 所带来的验证者中心化问题。在默认的 MEV 流程中,区块生成者具备两个任务,1)从所有可用的交易中构建最佳区块(block building),以及(2)将该区块与工作证明或权益一起提议给网络(block proposing)。
在 MEV 并未受到充分挖掘的时候,步骤 1)实际是根据交易手续费从大到小进行排序,简单地从前之后将交易纳入区块。在 MEV 利润逐渐增大的当前,更大的矿池 / 验证者池实际上获得了其市场份额更多的 MEV 利润,导致马太效应,共识网络将愈发中心化。
此外,去中心化矿池的实际提块实体将获得 MEV 的机会,然而其他成员无法分享利润。机制的不公平将降低去中心化矿池的采用比例。共识网络中心化程度进一步上升。
MEV 中可能涉及到的角色可以分为以下几个:
1.Producer:出块人(Miners, Validators)
2.Proposer:选块人(选择最高 MEV 的 Builder 构造的块)
3.Builder:构块人(负责决定块的内容)
4.Searcher:搜索交易中蕴含的 MEV
5.User:提交可能包含 MEV 的交易
当然,在现阶段,很多角色实际上是由同一主体兼任的,例如在普通的以太坊共识流程中,Producer、Proposer 与 Builder 是同一个角色。
vitalik 的早期方案
Vitalik 早在 2021 年初就提出了两个解决方案,各自的侧重不同。值得注意,本节讨论的方案是以太坊协议层面的,由协议强制执行 PBS,而不是如 Flashbots 等方案的私下协商。
PBS 试图达到以下五个目标:
1.无需信任 proposer 友好性:builders 无需信任 proposers
2.无需信任 builder 友好性:proposers 无需信任 builders
3.弱 proposer 友好性:proposers 不需要高计算资源与高技术难度
4.bundle 不可窃取性:proposers 不能私自窃取 builders 提交区块中的利润
5.共识简单与安全性:共识保持安全性,最好不修改当前区块提议机制
方案 1
- builders 创建 bundles,将 bundle headers 发给 proposer,其中包含 bundle body 的哈希、对 proposer 的支付、以及 builder 的签名
- proposer 选取最高收益的 bundle header,签名并发布包含该 bundle header 的 proposal
- 见到签名的 proposal 后,builder 发布完整的 bundle
根据五个目标进行分析:
- proposer 可以收取 builder 支付的费用却让 builder 无法接收到 MEV 利润,例如通过在 slot 末期才发布 proposal,导致 builder 没有时间发布完整的 bundle 吗,不满足目标 1
- 提交 bundle header 就能确保接收到来自 builder 的付款,proposer 无需信任 builder,满足目标 2
- 只涉及简单的网络通信和基本的签名操作,满足目标 3
- proposer 无法独家获取 bundle 内容,只能看到 header,满足目标 4
- 由于引入了新的角色 builder,所以分叉规则需要进行修改,而且将可能的情况从 2 提升到了 3,提高了分叉选择的复杂度,可能带来新的不确定性,不满足目标 5
方案 2
- builders 创建 bundles,将 bundle headers 发给 proposer,其中包含 bundle body 的哈希、对 proposer 的支付、以及 builder 的签名
- proposer 在看到的 bundle headers 中进行挑选组成一个列表,对列表签署一个声明
- builders 在看到声明后,发布对应的 bundle body
- proposer 在自己签名的列表中挑选一个 bundle header,发布一个包含其的 proposal
根据五个目标进行分析:
- 只有 bundle 被完全包括在 proposal 中才会完成 builder 对 proposer 的付款,满足目标 1,
- builder 可以发布多个高费用的 bundle header,但是不发布实际的 bundle body,导致 proposer 无法发布有效的 bundle,不满足目标 2
- 如果不限制可接收的 bundle 数量,可能导致 proposer 收到过多 bundle body,导致高网络带宽,不满足目标 3
- proposer 事先签署声明导致其只能在该 slot 中 propose 列表中的有限 bundle,无法偷取利润,满足目标 4
- builder 不直接参与到共识过程中,proposer 的行为与以前相同,没有发生分叉情况的增加,满足目标 5
演进中的两条路线——Two Slot PBS vs Single Slot PBS
两条路线分别是 Vitalik 早期方案的改进与细化,Two Slot PBS 和 Single Slot PBS 分别对应方案 1 与方案 2。
在 Two Slot PBS 中,将会添加一个新的区块类型,名为「中间块」(Intermediate Block),用于存放获胜的构建者的区块内容。在 Slot n,Proposer 会 Propose 一个普通的 Beacon Block,其中包含对获胜构建者区块内容的 commitment。
然后,在 Slot n+1,中标的 Builder 会 Propose Intermediate Block,其中包含中标的区块内容。这两者可以被看作是一个大区块的两个部分,只是分成两个阶段(slot)来完成。第一阶段相当于区块头(Block Header),而第二阶段才是真正的区块主体(Block Body)。如果没有 Beacon Block,则意味着没有 Builder 赢得竞标,那么就不会有后续的 Intermediate Block。
这两个区块都需要经过 Committee 的 Attestation 投票。Beacon Block 只有一个 commitee 负责投票,而 Intermediate Block 会由 slot 中剩余的所有 commitee 进行投票。对每个 Block(无论是 Beacon Block 还是 Intermediate Block)的投票都会出现在下一个 Slot 的 Block 中。
如果 builder 一直没有看到 Beacon Block,这可能意味着 Beacon Block 没有被及时发布,因此 builder 不会发布 Intermediate Block。此外,为了避免 Beacon Block 在一段时间后出现而导致的 builder 损失,方案通过定义良好的 Fork Choice Rule 来让该 Beacon Block 被拒绝。
Two Slot PBS 方案设计
source: https://ethresear.ch/t/two-slot-proposer-builder-separation/10980
Single Slot PBS 由去中心化的 committee 作为中介保管区块的内容,builder 将 bundle header 发送给 Auction 子网,同时将分块加密后的 bundle body 发送给 commitee,待 commitee 投票超过阈值后,由 proposer 发送 proposal,commitee 收到后,将 bundle body 进行解密并广播,能够在单个 slot 完成 PBS 的出块。
Single Slot PBS 设计方案
source:https://ethresear.ch/t/single-slot-pbs-using-attesters-as-distributed-availability-oracle/11877
以太坊需要协议层的 PBS,不仅是因为 MEV
在以太坊协议层去实现 PBS,可能动摇共识的基础,产生各种新的问题。为何一定要修改协议层,而不是通过协议之上的其他方案解决?可以认为,以太坊社区是醉翁之意不在酒,PBS 除了缓解 MEV 问题,还对以太坊的长远发展由重要意义。
在 PBS 中,proposer 无需处理交易排序,从而实现了无状态,不需要保存以太坊完整的状态,只需要根据 Merkel Proof 验证 Builder 所打包的区块中交易的有效性。在 Danksharding 逐渐提上日程的情况下,未来存储的负担会越来越大。无状态的特性非常关键,这使得对 Proposer 的存储要求降低,更多人能够成为 proposer,去中心化程度提升。
以太坊社区提出 PBS 的方案,实际与当年 EIP-1559 如出一辙。矿工 / 验证者作为决定区块中交易内容的角色,具备极高的特权,一旦矿工 / 验证者获利过多,就会导致其愈发中心化,权力过大以致于影响整个共识网络的安全性。PBS 要做的,就是削弱矿工 / 验证者的地位,降低其收入,让权力分散到人民中去。
此外,由 Flashbots MEV-Boost 实现的 PBS 方案中,由于 Relay 的信任假设,所以会产生交易审查的问题,这是对以太坊抗审查、无许可的愿景的严重破坏。
交易审查最多能占 80%
source: https://www.mevwatch.info/
以太坊协议级的 PBS,不需要信任的 Relay,可以通过 Proposer 对 Builder 的制约来强迫 Builder 收录或者直接自己收录被审查的交易,提高以太坊的抗审查特性。
总结:以太坊协议级 PBS 实现了 builder 和 proposer 之间利益的分配,降低了 proposer 的门槛,能够提高以太坊的去中心化水平,也提升了抗审查的特性,但是并未提升普通用户体验。
Flashbots——MEV 领域的绝对主导
Flashbots 通过市场拍卖试图缓解 MEV 问题,为 MEV 参与者带来收益。
在 Flashbots 的官方文档中,按照 1) Flashbots Auction 2) Flashbots Data 3) Flashbots Protect 4) Flashbots MEV-Boost 5) Flashbots MEV-Share 进行分类,但实际上,MEV-Boost 是 Flashbots Auction 中一个阶段的方案,我将根据时间顺序,来叙述 Flashbots 的发展。
Flashbots Auction 实际由两个阶段组成,分别是 ETH1.0(Before The Merge)的 MEV-Geth 和 ETH2.0(After The Merge)的 MEV-Boost。
MEV-Geth
2021 年初,Flashbots 发布了 MEV-Geth 与 MEV-Relay。MEV-Geth 是 Go-Ethereum 客户端上的一个补丁,仅百余行代码;MEV-Relay 是 bundle 的转发器,负责在 Searchers 与 Miners 之间转发交易的 bundle。
MEV-Geth 与 MEV-Relay 提供了一个私有的交易池和密封竞价的区块空间拍卖,让 MEV 从黑暗森林转变为市场经济。bundle 作为一种新的交易类型,用于表示对交易顺序的偏好。
Flashbots Auction 引入了一个名为「eth_sendBundle」的新的 RPC,用于标准化 bundle 的通信。bundle 包括了一系列已签名的交易以及这些交易被收纳的条件。
同时,Flashbots 还提供了 Flashbots Protect RPC 节点,用户可以通过简单地修改钱包中的 RPC 节点,避免自己的交易在公有交易池遭受 Front Running 攻击。此外,由于 Flashbots Protect 通过另一条出块流程提交用户交易,所以不会发生 reverts,用户不必为失败的交易付费。(但是带来了独家订单流 EOF)
MEV-Geth 很快地获得了以太坊矿工超过 90% 采用,并使矿工的收益大大提升。然而,简单的拍卖设计存在一些显著的不足之处,包括 1) 需要信任矿工 2) 只兼容 Geth,缺乏多样性 3) 拍卖服务运行在中心化服务器上,存在单点故障风险。此外,由于搜索者之间的普遍竞争关系,绝大部分的收益归入了矿工的囊下,这会为以太坊带来中心化风险。
source: https://twitter.com/lvanseters/status/1481988717367767042/photo/4
MEV-Boost
在 The Merge 发生之后,以太坊改为 PoS 共识,MEV 带来的中心化问题更加明显,Flashbots 设计了 MEV-Boost 来应对该问题。
MEV-Boost 可以认为是 Single Slot PBS 的一种变形,与以太坊协议级的 PBS 不同,该方案作为可选的中间件提供服务,而不是通过协议强制行为,并不修改共识过程。
Relay 不再作为 User/Searcher 与 Miner 之间的中介,而是作为 Builder 与 Validator 之间的中间节点,根据 User/Searcher 提交的交易流,Builder、Relay、Validator 每个角色都会根据最大收益来选择向下游提交的区块。
source: https://docs.flashbots.net/flashbots-auction/overview#
MEV-Boost 采用了 Single Slot PBS 中提出的 commit-reveal 方案,只有当 Validator 对一个 block header 进行 commit 之后,Builder 才会 reveal 该 block 的全部内容。具体的流程如下图所示:
Proposal 之前 Validator 需要先向 MEV-Boost 和 relays 进行注册,确保 block builders 能够为一个指定 validator 的 proposal 构造区块。
1.users/searchers 通过 public/private mempool 提交交易给 block builders
2.block builders 根据接收到的交易构造 execution payload,在利益分配上,builder 将自己的地址设为 payload’s coinbase address,区块最后一个设置为向 proposer 的地址转账。block 发送给 relay
3.relay 验证区块的 validity,发送 ExecutionPayloadHeader 给 MEV-Boost。MEV-Boost 从不同 relay 提交的 ExecutionPayloadHeader 中选取最高利润的转发给 Validator
4.Validator 对 header 签名,通过 submitBlindedBlock 调用并发回给 MEV-Boost,转发至 relay。relay 验证签名后将完整的 payload body 发给 MEV-Boost 并转发给 consensus,让 Validator 在向网络 propose SignedBeaconBlock 时使用。
source: https://twitter.com/keccak254/status/1656984680003153924
与 MEV-Geth 相比,MEV-Boost 具备更强的通用性,作为 Consensus Client 的插件使用,支持多种客户端,同时消除了原先 Miner 的中心化问题。
然而,PBS 之后 Builder 获得了更高的权力,在市场上占主导地位的 Builder 可以获得审查和独占交易顺序流的能力,当前只能通过鼓励 Builder 之间的竞争来防范中心化风险。Relay 的信任程度也进一步减弱,但仍然可能通过提交虚拟竞价对 Builder 与 Proposer 构成风险。当前通过监控 Relay 的诚实程度,让 Validator 与 Builder 自由选择 Relay 来缓解该问题。
MEV-Share
MEV-Geth 让 Miner 与 Searcher 分享了 MEV 收益;MEV-Boost 让 MEV 在 Proposer、Builder、Searcher 之间分配,同时保护了用户的交易不被 Front Running。
然而,两者都没有考虑到用户的收益。在 Web3 的理念中,用户创造数据产生的价值,应该回馈给用户本身,MEV-Share 就是该理念的实践者。MEV-share 致力于让用户、钱包、Dapps 能够捕获其交易所产生的 MEV。
MEV-Share 中引入了 Matchmaker 的角色,作为 User、Searcher、Builder 之间的中介,通过限制对 Searcher 暴露的用户交易信息,来维护用户隐私。
同时,限制 Searcher 只能在用户交易后插入自己的交易,即 Back Running 来避免用户利益损失。Back Running 不会造成用户损失,通过 Back Running 获得的收益实际上是由市场失衡产生的。
用户可以简单地将钱包连接至 Flashbots Protect RPC 来发送交易给 Matchmaker,也可以通过 Matchmaker API 发送私有交易,用户可以在交易中指定想要提交的 Builders。
对于 Searcher 而言,需要通过 SSE Event Stream 监听 Matchmaker 发送的选择性部分交易信息。SSE 是一种使服务器能够主动向客户端推送信息的技术,而无需客户端发起请求,允许客户端实时获取到区块链状态的更新。Searcher 会从中选取交易,并在其后插入一个自己签名的 tx 来创建 bundle。
searcher 可以分享 bundle 中交易的部分信息给其他 searchers,以此获得 MEV 回馈,并提升自己的 bundle 被纳入区块的几率。Searchers 也可以在 bundle 中的 privacy 字段中指定 Builders,最终 bundle 会被发送给 Users 与 Searchers 共同认可的 builders。
SGX 加密——可信硬件消除信任假设
市场上对于使用 SGX 缓解 MEV 问题的探索与讨论,最初由 Flashbots 发起。
MEV-SGX 的方案在 2021 年 6 月在以太坊论坛上被系统阐述,主要是针对 2021 年初发布的 Flashbots Alpha(初始版本的 Flashbots MEV-Auction)方案中 MEV-Relay 的信任问题,希望通过 MEV-SGX 构建一个完全私密且无需许可的 MEV 拍卖方式。
文中讨论了 1. 仅发送区块头,隐藏交易 trie 2. 保证金区块头 3. 时间锁加密 4. 安全隔离区等方案,最后决定使用安全隔离区(应用最广泛的是 Intel 的 SGX)来提供完全的隐私和无许可性。
在 MEV-SGX 方案中,SGX 作为可信执行环境(Trusted Execution Environment, TEE),取代了 MEV-Relay 中单一信任中介,由搜索者与矿工各使用一个 SGX,SGX 的防篡改特性能够保证对方在一个无法被篡改或侵入的环境中运行特定的代码。
搜索者的 SGX 负责确保区块的有效性和对矿工的盈利性(proposers 无需信任 builders);矿工的 SGX 负责区块内容的解密和广播(builders 无需信任 proposers,proposers 不能私自窃取 builders 提交区块中的利润)。
需要注意的是,在该方案提出的时候,以太坊还处于 PoW 共识,所以使用的是「矿工」术语而不是「验证者」,但实际上两者在共识中的功能是相同的,都是打包交易并提议区块。
当以太坊经过 The Merge 进入 2.0 阶段,转变为 PoS 共识后,MEV-SGX 作为整套解决方案的声量逐渐降低,取而代之的是 MEV-Boost 和 MEV-Share。但是 SGX 并未被彻底抛弃,只不过 MEV-SGX 的实现难度较大,所以社区选择了更现实的 MEV-Boost 和 MEV-Share,而后续将以打补丁的方式使用 SGX 来改进当前方案的缺陷。
2022 年 12 月 20 日,flashbots 社区宣布首次在 SGX 中运行了 Geth(以太坊客户端的 Go 实现),验证了 SGX 应用于 MEV 的技术可行性。2023 年 3 月 3 日,flashbots 社区宣布在 SGX 中实现了 block builder 的运行,朝着交易的私密性与 builder 的去中心化又迈进了一步。
在安全隔离区中执行区块构建算法,可以确保除了用户以外的参与者无法窥见用户交易的内容,维护了隐私性。同时,通过运行可验证的区块执行算法,能够在不损害隐私的前提下,证明区块的经济高效性。长远来看,在 SGX 中运行 builder 可以为 proposer 提供可验证有效的区块,并且提供真实投标,有可能彻底取代受信任 MEV-Relay 角色,实现无许可。
SUAVE——MEV 的未来
MEV-Share 解决了 MEV 带来的利益分配,但仍然无法消除区块构建权力带来的中心化风险。在 Flashbots 的当前阶段,由于 1) 独家订单流(Exclusive orderflow) 2) 跨域 MEV,Builder 市场具备正向飞轮效应,容易引发中心化风险。
SUAVE(Single Unified Auction for Value Expression)尝试解决 MEV 带来的中心化风险。SUAVE 是模块化区块链的又一尝试,试图为所有区块链提供一个即插即用的内存池与去中心化 Block Builder,作为一条专用的区块链,向现存的所有链提供交易排序与区块构建服务。
source: https://writings.flashbots.net/the-future-of-mev-is-suave/
支持多链的特性,有效地提升了对跨域 MEV 的提取效率;作为一条区块链,其去中心化属性将解决过往方案中 Block Builder 的中心化风险。
SUAVE 由以下三个主要组件构成:
1.通用偏好环境(Univeral Preference Environment) 偏好可以理解为在 bundle 上进行改进的一种交易类型,反映用户 / 搜索者对交易执行的需求(例如,交易参数、时间、顺序),维持了 bundle 的确认前隐私与无撤销属性。通用则体现 SUAVE 的多链特性,将所有链上的用户 / 搜索者提交的交易汇总到 SUAVE 上,提供通用的排序层,能够汇集用户偏好以提高 MEV 提取效率,并且允许不同域间的 Block Builder 合作以提高效率。
2.最佳执行市场(Optimal Execution Market) 执行者根据用户提交的偏好参与竞标,向用户提供最优的执行,并且能够完成跨域的偏好表达,将尽可能多的 MEV 收益归还给用户。
3.去中心化区块构建(Decentralized Block Building) 在去中心化的区块链网络中,Block Builder 根据用户偏好和最优的执行路径构建各域的区块,在维持去中心化的前提下,为各链的 Validator 提供最大化 MEV 的区块。该组件实现的前提是 Block Builder 间在不泄露内容前提下共享订单流与 bundle。
source: https://writings.flashbots.net/the-future-of-mev-is-suave/
当然,必须指出,SUAVE 还是一个很早期的方案,技术路线仍不明确,方案设计也模棱两可,细节仍在推进中。这可能是一件很困难的事,Flashbots 把 MEV 称为 Crypto 界的 Millennium Prize Problem,呼吁大家共同合作,创建去中心化的未来。
MEV 市场的新变量
Chainlink:公平排序服务 (FSS)——Arbitrum 选择的 MEV 缓解方案
Chainlink 作为市场上最大的预言机平台,试图在预言机网络的层面通过交易排序来缓解 MEV 问题。个人认为,其启发应该是防止对于预言机报告的 Front Running,由于预言机报告对价格产生很大影响,所以操纵预言机报告在区块中的顺序会带来很高的 MEV。
公平排序服务(Fair Sequencing Services,FSS)可以简单描述如下:去中心化预言机节点(Decentralized Oracle Network, DON)提供工具来分散交易排序,并根据依赖合约创建者指定的策略进行实施,理想情况下是一个公平的策略(通常是 FCFS 根据到达时间时间顺序排序),不会给希望操纵交易排序的参与者带来优势。这些工具共同构成了 FSS。
FSS 包括三个组成部分。第一个是交易的监控。
1.交易监控 在 FSS 中,预言机节点在 O 中监控 MAINCHAIN 的内存池,并且允许通过专用通道来完成链下的交易提交。
2.交易排序 O 中的节点根据为该合约定义的策略为依赖合约 SCON 排序交易。
3.交易发布 在交易被排序之后,O 中的节点共同将交易发送到主链上。
4.FSS 示意图 source: Chainlinkv2 Whitepaper
FSS 的潜在好处包括:
- 公平排序:FSS 包括工具,帮助开发人员确保输入到特定合约的交易按照一种公平的方式进行排序,有丰富资源或技术的用户无法获取优势。通常公平排序的策略是 FCFS。
特定合约的交易排序
source: https://blog.chain.link/chainlink-fair-sequencing-services-enabling-a-provably-fair-defi-ecosystem/
- 减少或消除信息泄漏:通过确保网络参与者无法利用关于即将发生的交易的知识,FSS 可以减轻或消除基于在交易提交之前网络中可用信息的前置交易等攻击。防止利用这种泄漏进行的攻击可以确保在原始交易提交之前,依赖于原始挂起交易的对抗性交易无法进入账本。
- 降低交易成本:通过消除参与者在向智能合约提交交易时追求速度的需求,FSS 可以极大地降低交易处理的成本。
- 优先排序:FSS 可以自动为关键交易提供特殊的优先排序。例如,为了防止对预言机报告的前置交易攻击,FSS 可以将预言机报告追溯地插入到一系列交易中。
对比在智能合约中缓解 MEV 的方案,使用 DON 实现的 FSS 由于其 MEV 防御方案在链下执行,所以可以获得更低的延迟,延迟将是毫秒级的网络延迟,而不是 12s 倍数的区块延迟。
UniswapX: 或解决 MEV 三明治攻击,但创造了 MEV 审查
7 月 17 日,去中心化交易所(DEX)龙头 Uniswap 发推文宣布,将推出一款名为 UniswapX 的新开源协议,该协议将聚合去中心化交易池的流动性,并推出「防范 MEV 攻击」等新功能。
UniswapX 在进行链下订单匹配的过程中,添加了一些新的特性。这些特性包括不完全遵循价格顺序进行排序,执行限价订单,以及使用本地账本来处理价格差异。
由于这些改变,存储在 Mempool 中的交易变得越来越难以预测,进一步压缩了 MEV 的套利空间。MEV 的存在主要归因于矿工按照 gas 的多少进行优先打包的机械式机制。然而,通过链下账本的调整,我们确实能在很大程度上改善 MEV。
Uniswap 的交易员每天因为「三明治攻击」而产生大量的有害 MEV,损失可能高达 300 万美元。UniswapX 的设计目标是解决这一问题,方法是将原始交易转化为提交给 Uniswap 中央服务器的意图(intents)。这样做有效地解决了「三明治攻击」的问题,但同时也带来了 MEV 审查的新问题。
在报价与交易的过程中,公允价格可能会偏向报价者。在这种情况下,唯一的报价者往往愿意在独家窗口期内通过将交易上链来提交报价。但这也给验证者提供了机会,他们可能会联手审查交易。尽管这种类型的攻击在现阶段看起来并不常见,但如果有些验证者变得足够强大,或者连续赢得多个区块,或者用于验证者串谋的基础设施被广泛应用,那么我们可能会看到 MEV 审查问题的恶性增长。
CGVFOF 综合认为,虽然以太坊基金会对于 MEV 实际或持偏负面的态度,但当前的区块链生态格局下,中心化的矿工 / 验证者巨头权力较大,很难通过交易加密等手段,一步到位地解决问题,否则会引发剧烈的市场振荡,不利于区块链生态的可持续发展。
所以,Flashbots 等团队的渐进改良式方案通过引入多方参与 MEV,彼此制衡,逐渐削弱中心化的话语权,将 MEV 对用户的影响降到最小,并最终以较小的摩擦迁移至隐私交易方案(正如 Vitailik 在 The Three Transitions 中所强调的隐私问题)。
由此看来,MEV 已经从最初的黑暗森林零和博弈逐渐,过渡到三权分立的制衡阶段,也许正在朝着全面隐私慢慢前进。但无论如何,MEV 依然是个具备可持续发展潜力的大市场,也会迎来更多的弄潮儿和更有趣的新事物。
参考资料:
1.https://ethereum.org/en/developers/docs/mev/
2.https://bitcoinops.org/en/topics/replace-by-fee/
3.https://bitcoinops.org/en/topics/fee-sniping/
4. https://medium.com/@Prestwich/mev-c417d9a5eb3d
5.https://medium.com/@VitalikButerin/i-feel-like-this-post-is-addressing-an-argument-that-isnt-the-actual-argument-that-mev-auction-b3c5e8fc1021
6. https://www.paradigm.xyz/2021/02/mev-and-me#mev-is-hard-to-fix
7.https://ethresear.ch/t/proposer-block-builder-separation-friendly-fee-market-designs/9725
8.https://thedailyape.notion.site/MEV-8713cb4c2df24f8483a02135d657a221The Future of MEV is SUAVE | Flashbots
9.https://collective.flashbots.net/t/frp-18-cryptographic-approaches-to-complete-mempool-privacy/1210
10. https://explore.flashbots.net/