以太坊合并后的 MEV

    作者:Nic@imTokenLabs阅读提示在阅读本文前,需要对MEV有基本的认识,知道Flashbot的角色及Flashbot对MEV的影响。还需要知道PoS机制的基本认识以及以太坊合并(TheMerge)带来的改变。MEV首先复习一下什么是MEV。MinerExtractableValue如字面上所述,指的是「区块开发者可以榨取出的价值」。这个价值指的不是用户付给区块开发者请他打包用户交易到区块里的手续费。给予手续费这个动作是经过使用者同意的,使用者可以把手续费调得很低,那他的交易就会很久才会被收入,但至少区块开发者不能对交易收取任意手续费。阅读提示:现在MEV又改称MaximalExtractableValue,因为目前的发展MEV已不再是区块开发者所独占。「区块开发者可以榨取出的价值」指的是区块开发者透过改变交易排序、插入自己的交易在被榨取的交易前(或后)来获得利益。那区块开发者可以榨取什么样的利益?例如当有某个火热的NFT提供mint的名额,只有最快的100个人可以mint成功,这时和区块开发者是朋友或是链下和区块开发者达成某种协议的Carol就可以确保区块开发者透过安排交易顺序,将她的mint交易安插其他人的mint交易之前。△区块开发者会把Carol的mint交易排在其他人的mint交易之前。另外常见的MEV是夹击用户的AMM交易,迫使用户收到(可接受范围里)最差的价格,用户预期的价格与最差价格的价差就是区块开发者榨取的利益。底下的例子中Alice预期用1WBTC换到21500USDT,但她知道去中心化世界里她的交易不一定能第一个被执行,当有其他人在她之前也去进行WBTC/USDT的交易,AMM价格就被改变,1WBTC就不一定能换到21500USDT,所以她设定了可接受范围内的一个最差价格20500USDT:△Alice预期用1WBTC换到21500USDT,但最差可以接受20500USDT。这时Eve发现了Alice的交易,并决定抢先在Alice的交易之前去卖WBTC,导致WBTC价格跌到剩20500USDT,接着再执行Alice的交易,Alice就被迫只能用20500USDT的价格成交。最后Eve再将一开始卖WBTC所获得的USDT拿去买回WBTC,此时WBTC价格会小于20500USDT,也就表示Eve完成了一次低买高卖(<20500买,21500卖),赚得价差。

    △区块开发者Eve发现有利可图,在Alice的交易前抢先卖WBTC,等到Alice交易执行完再买回WBTC赚价差。去中心化系统一定会有MEV在中心化系统里你可以选择相信负责排序交易的角色(Operator、Sequencer),相信他们会为了声誉所以不做会伤害使用者的坏事,或是你可以选择离开那个系统。这也是目前L2的现况,L2项目方不太可能会自砸招牌去榨取MEV。但在去中心化系统里任何人都可以成为区块开发者,而且我们没办法简单客观地证明一个区块开发者的行为是「不好」的,也就表示我们没办法有效禁止区块开发者榨取利益。我们不该期待区块开发者都会是「好人」,而是要担心如果一个区块开发者因为MEV越赚越多,并用来投资更多区块开发设备让他规模越来越大,导致他能淘汰掉其他竞争者,结果就会是在一个去中心化系统只有一个区块开发者的困境,最终他将能任意施加个人的喜好规则到用户的交易上。而这也是Flashbot出现的原因。Flashbot为了避免MEV影响区块开发者去中心化的程度,Flashbot将MEV打造成一个公开的市场,区块开发者和专业的MEVsearcher合作并分享MEV,同时区块开发者和MEVsearcher各自之间又有着高度的竞争。透过这样的竞争和合作关系,区块开发者和MEVsearcher都能各自专注在自己的专业,MEVsearcher也不需担心区块开发者有可能抢走自己的套利机会或是故意不收自己的交易。△Searcher从公开交易池中找交易套利并为自己的Bundle竞标收入权,送给Flashbot后再由区块开发者挑选。中心化风险不过Flashbot仍然有缺点在,所有MEVsearcher的套利交易都要经由中心化的Flashbot服务器,Flashbot服务器可以抢走套利机会或审查套利交易。除了Flashbot,市场上也出现了像是EdenNetwork的项目。它和Flashbot架构基本上一样,除了自己搞无谓的Staking、区块内交易优先等级及额外的竞标机制等。不过至少当Flashbot开始作恶时,区块开发者和searcher还有其他选项。MEV是一个必须接受的既定事实不管是协议设计者或用户都必须要保持对MEV的警觉。可以的话将MEV纳入协议设计中,让MEV变成一个有利的工具是协议设计者接下来在设计机制时必须要好好思考的。

    后面的文章也会介绍善加利用MEV的设计和想法。TheMergeEthereum在TheMerge后共识切换为PoS机制,从用矿机算力竞争的区块开发者变成质押ETH就能成为Validator来获得propose区块的机会,这表示在PoS中获得出块的门槛降低许多。而获得出块机会的门槛降低后其实也影响了Flashbot不同角色间竞争合作的关系。阅读提示:这里propose维持用英文,避免proposeblock和buildblock的中文因为意思太接近而看错。信任关系的改变在PoS之前,Searcher是需要相信区块开发者不会把他的bundle内容抢走的,区块开发者即便抢了,Searcher也只能透过链下的机制去反制,例如提出证据请Flashbot将该区块开发者加入黑名单或是在Twitter上发文取关。不过区块开发者基本上都非常配合,这是因为区块开发者和Searcher间是属于长期合作的关系,如果区块开发者今天为了某一笔MEV利益而抢了Searcher导致区块开发者未来收不到任何MEV机会,其实是划不来的。但在PoS之后,透过质押ETH就能获得出块机会,出块的门槛降低。也因此许多一般人加入成为Validator,导致获得出块的机会也就慢慢被稀释。相比于PoW中投入许多成本成为为数不多且长期经营的矿池,PoS中Validator偶尔才能获得出块机会,且其区块奖赏加上MEV的平均年化即便以10%计算的情况下,Validator仍然有非常足够的动机去抢Searcher的MEV。阅读提示:可以参考Flashbot统计的MEVleaderboard,复制下方链接到浏览器跳转查阅相关内容:https://explore.flashbots.net/leaderboard△只要抓住机会抢超过3.2ETH的MEV即超过10%年化。因此Flashbot的架构需要配合这个信任关系的改变及PoS机制进行调整,变成了现在的mev-boost。mev-boost在mev-boost中,原本Flashbot介于Searcher及区块开发者之间的Relay角色被拆分成两个,一个是Builder,一个一样叫做Relay但职责不同。Searcher将bundle交给Builder,Builder从多个bundle中选出数个bundle组成一个区块,并将区块交给Relay,Validator再从多个Relay提交的区块中选出一个。△Searcher和Searcher竞争,Builder和Builder竞争,Validator从中挑出最有利的区块。Builder负责在一个区块的有限容量中找出最有利的bundle组合,希望Validator能选中自己的区块。

    那Relay有什么用呢?上面提到信任关系已经改变,因此Searcher/Builder不能相信Validator,所以mev-boost中Validator需要先做出「我会propose你的区块」的承诺才会收到真正的区块内容。而Relay就是作为Builder和Validator之间的中间人角色帮忙协调:Relay先保管区块内容,直到拿到Validator的承诺才把Builder制作的区块交给Validator。实际的EthereumBeaconChain术语中Builder制作的区块内容称做ExecutionPayload,Validator会从Relay那收到称为ExecutionPayloadHeader的数据,Header可以视为是Payload的commitment,对Header签名就代表对Payload签名。当Validator选好要propose哪个Relay送来的区块时,他就会把该区块的ExecutionPayloadHeader放进Beacon区块中并签名,接着把签名内容交给Relay当作证明,最后Relay就可以放心将区块内容给Validator,让他propose区块。△Builder将区块交给Relay,Relay将Header交给Validator△如果Validator选择该区块,就会将Header放进BeaconBlock里并签名,交给Relay。△Relay接着将完整区块内容交给Validator。如果Validator最后背叛Relay,选择propose另一个区块,此时Relay就可以将当初Validator给他的签名内容公布出去,当作证据证明该Validatorpropose了两个不一样的区块,接着Validator就会因为违反EthereumBeaconChain的规则而被惩罚。△Eve因为propose不一样的区块导致他被slash(一部分质押的ETH被没收)。信任假设在mev-boost中Validator反而必须相信Relay,如果Relay最终揭露的区块内容不合法或是实际Validator收到的钱不符预期,或甚至Relay直接不公布区块内容导致Validator没办法propose区块,此时Validator只能透过链下的机制去反制,例如让其他Validator知道该Relay的恶意行为。CircuitBreakerValidator没办法24小时都有人监控并介入,所以当Validator软件发现(同一个或多个)Relay不断破坏信任时,必须要能做出反应,避免一直因为没有propose区块而损失收益。例如当发现自己超过五个Slot都没propose区块时,要退回使用自己的节点来制作区块内容。相关文件可以参考:https://hackmd.io/@ralexstokes/BJn9N6ThcRelayMonitor为了降低Relay这个角色作恶产生的影响,Flashbot社群也在思考设计针对Relay行为的监控。相关文件可以参考:https://hackmd.io/@ralexstokes/SynPJN_pq?https://github.com/flashbots/mev-boost/issues/142DataAvailabilityCommittee一个防止Relay不公布区块内容的方式是将区块数据交给一群节点所组成的Committee,他们负责保管、确保区块内容可取得,也就是将区块内容保管的职责去中心化。目前有哪些Builder和Relay?

    这里可以看到目前的Builder及Relay:MEV-Boost查阅网址:https://mevboost.pics可以看到虽然身为mev-boost的主要开发团队,Flashbot并未拥有主宰的Relay地位,这是因为Flashbot从一开始便开源开发mev-boost且未在mev-boost软件中将自己设为默认Relay。阅读提示:了解更多请查阅https://twitter.com/bertcmiller/status/15774823191409131532023–04–02针对mev-boostRelay的攻击一个恶意Validator发现Relay的漏洞:Relay只要Validator有签出合法的签名(不论内容是否合法)就会回传Bundle内容给该Validator。因此恶意Validator签了一个不合法的内容(Header某些字段的值不合法),Relay回传Bundle内容后Validator再偷走Bundle里的套利交易,然后propose另一个合法的区块。Relay尝试广播Validator签的Header,但因为内容不合法所以被其他节点拒绝,所以大家只看到Validator自己propose的合法区块。事后Validator因为签了两个不同的Header(给Relay的和自己propose的)而被Slash且被踢出Validator名单,但伤害已经造成。更新后的Relay现在会先尝试广播Validator签的Header,如果成功被其他节点收入就表示Validator签的内容是合法的,而且其他节点会先看到Relay广播的区块,如果Validator尝试偷Bundle内容自己propose的话,要赢过Relay广播的区块会更难(因为已经有很多节点看到Relay广播的区块)。阅读提示1:解释这个攻击的thread及相关证据和Relay补丁可以参考这个thread,详情请查阅:https://twitter.com/samczsun/status/1642848556590723075阅读提示2:恶意Validator除了可以偷走Bundle里的套利交易,还可以攻击进行三明治夹击的套利者:进行三明治夹击的套利者会在受害者交易前后插入自己的交易—抢先受害者买入,并在受害者买入后再卖出,赚取价差,但夹击要能成功必须要前后两笔交易都有执行,否则只有前笔交易被执行的话套利者不但赚不到利差,还会因此赔上自己的资金。但针对这个攻击所做的补丁会增加区块产出的延迟时间,因此在攻击发生后的数天内PoS链的re-org发生次数明显上升,目前有数个方案正在设计及实作当中,来避免MEV-Boost的出块延迟反而造成PoS网络的不稳定。阅读提示:详细介绍可以复制下方链接到浏览器查阅https://www.paradigm.xyz/2023/04/mev-boost-ethereum-consensusFlashbot/mev-boost的影响影响Validator投票效率因为Flashbot/mev-boost,区块从生产到真正被propose的过程经过了更多的关卡,这导致Validatorpropose区块的时间延迟,其他负责投票的Validator就会更晚收到区块,也因此他们投票的时间也就被压缩,这会影响整体PoS网络的安全性。虽然看起来影响不太大:估计投票率减少约2%、正确投票的Validator减少约1%,不过这是2022年10月统计的数据,当时只有1/3的Validator接上MEVRelay。阅读提示:相关信息可参考下方链接文章https://www.attestant.io/posts/exploring-the-impact-of-mev-relays总结与重点MEV的产生无可避免,而区块开发者拥有开采MEV最大的优势。Flashbot让MEV的开采变成一个公开市场,避免矿工中心化影响整个链的安全。mev-boost因应PoS带来的改变而诞生,mev-boost反转Searcher/Builder与Validator间的信任关系,且让竞争更为开放:有多个Builder彼此竞争,有多个Relay彼此竞争,进一步降低Flashbot的中心化风险。下一篇将介绍Proposer-BuilderSeparation(PBS),将mev-boost架构直接整合进Ethereum本身的协议里,而不再是Validator、Builder和Searcher之间私底下的合作,这会让整个MEV生态变得更加去中心化及安全。参考数据与推荐延伸阅读https://docs.flashbots.net/https://blog.bitmex.com/flashbots/https://ethresear.ch/t/mev-boost-merge-ready-flashbots-architecture/11177https://writings.flashbots.net/searching-post-merge/https://writings.flashbots.net/why-run-mevboosthttps://writings.flashbots.net/beginners-guide-mevboost数据统计:https://www.mevboost.org数据统计:https://dune.com/ChainsightAnalytics/mev-after-ethereum-mergehttps://www.youtube.com/watch?v=mXGA-u-sH_w