相对于 Web1 和 Web2 ,Web3 应对「MEV」负外部性已经做得很好了。
撰文:msfew
Maximal extractable value (MEV) refers to the maximum value that can be extracted from block production in excess of the standard block reward and gas fees by including, excluding, and changing the order of transactions in a block.
以太坊区块的交易排序自始至终就没有被确定的规则约束, 而是可以根据矿工的偏好来自由修改。Geth 客户端的源码中, 提供了三种示例:
其实排序完全是个开放题, 矿工可以自由进行调整, 从而捕捉更大的利润, 也就是我们讨论的主角, MEV。
在 MEV 被称为 MEV 之前, 它的 Alpha 就早已被矿工持续挖掘。flashfish0x 讲述了一个 MEV 的故事。
在 2020 年 8 月之前, Compound 的喂价由特殊的预言机 tx 来更新, 于是会有矿工监控 Mempool, 寻找可以被清算的账户, 利用闪电贷等手段进行套利。因只有套利 tx 正好在价格更新 tx 之后执行才能套利成功, 且普通矿工 ( 当时 ) 会随机排序相同 gas fee 的套利 tx, 所以套利者会以与预言机价格更新 tx 相同的 gas fee 来发送交易, 和其他套利者博取一个随机概率。
2020 年 8 月 11 日之后, Geth 发布了新版本, 预言机价格更新 tx 后到达网络的第一个 tx 将成功套利, 于是获得 tx 信息的速度也被计入了竞争的考量中。
好景不长, 2020 年 8 月 17 日, Compound 切换到了更去中心化的预言机。于是 MEV 捕捉者们的竞赛变成了纯粹的 gas war。他们尽量出到比其他人更高的价格 gas, 直到这个清算操作捕捉不到任何利润, 或者某个人胜出。
区块链网络从一开始就是这么个暗流涌动的黑暗森林, 机器人在未知的环境里和看不见的对手争夺榨取潜在利润的机会。
在正式解读 MEV 的定义之前, 我们可以看看关于 MEV 的一些数据, 这样就能直观地感受它的存在和影响。
2022 年 5 月, Uniswap 上超过一半的交易量是由 MEV 机器人贡献的, 而只有少于 20% 的交易量是来自于 Uniswap 的前端页面。
dex.guru 的数据也显示, 以太坊上 AMM 的交易量很大一部分都是 MEV 机器人所贡献。
MEV 机器人在区块链的黑暗森林里无处不在, 并且始终占据着主导地位。
那么一个 MEV 活动是如何产生的呢?
一个 tx 在危机四伏的区块链中的生命周期如下:
MEV 机器人根据它们 owner 的旨意进行着链上活动, 将 tx 包装好后送给不知情的矿工出块。从好的角度来看, 它们是保证市场稳定和 DApp 活跃度的重要角色; 从不好的角度来看, 它们以自己天生的优势 ( 可以监视整个 Mempool), 对「普通用户」进行着不平等的剥削。
MEV 这个词有两个官方的解释, 它全称可以是:
当我们把两个解释结合在一起, 会得到一个最容易理解的概念: MEV 就是矿工可提取的最大价值, 是对于在一个区块特定位置插入 tx 的 incentive。
个人认为, 更全面的 MEV 定义指的是矿工 /Validator/ 机器人 / 预言机 / 除了普通用户之外的角色, 利用矿工的不对称信息, 可提取的最大价值。非普通用户的角色 ( 懂代码, 懂网络机制, 懂使用 MEV), 通过自己的「特权」来额外提取价值, 从而获利, 其实都可以算是广义的 MEV:
MEV 提取者的额外利润源自于区块内的其他交易 ( 几乎就是普通用户发出的 ), 且挤占了每个区块的一部分空间 ( 尽管 gas fee 缺乏弹性需求, 他们的交易通常是区块内首个, 不会直接影响用户 tx), 因此大多数 MEV 通常被视为加在用户身上的隐性税收。
以下是 0xminion 对 MEV 活动的清晰图解:
以目的来分的话, MEV 操作可以被分为: 各种套利, 单纯抢先交易, 夹子攻击等。
这些操作的大部分都会是套利操作, 基本都是机器人来发起, 这些机器人都为 gas 的优化做了非常多的功夫, 比如它们通常在钱包里会有无数个代币, 每个都只有一点点数量。这主要是利用了 EIP-2200, 当用户接收 ERC-20 代币时, 如果钱包内有这个代币, 则比没有省更多的 gas。还有就是让地址拥有更多的零。当然以上的套利优化操作与 MEV 本身关系不大。
MEV 本身主要分为以下六种:
Front Running 是 MEV 机器人支付稍高的 gas fee 来抢先在 Mempool 的某交易前执行交易, 比如以更低的价格 Swap 代币。
当这类 MEV 活动没有造成后续的「伤亡」时, 可以被算作中性 ( 不算良性因为主要还是插了队 ); 但很多时候通常会让后续的交易失败或者执行出更差的效果, 因此会被算作恶性。
目前有很多服务专注于提升这类 MEV 的捕捉, 比如 bioXroute ( 类似于黑手党征收保护费后提供更快更隐私的 Mempool, 从而加快 tx 的确认效率以及对外部 Front Running 的防御 )。
问题的核心主要还是这类 MEV 很直接地体现出了 MEV 捕捉者和普通用户的信息不对等。然而, 大家不可能彻底完全公开, 透明, 和统一地对交易排序的方式和算法达成共识。
Back Running 是机器人在一笔交易造成价格大幅错位之后尝试不同的套利, 清算, 或交易。
最典型的例子就是我们之前提到的清算套利操作, 这类 MEV 活动整体可以被认为是良性的, 能保证市场的稳定和持续运转。
在 Cosmos 这种多链架构的网络上, 这类 MEV 活动尤其做好, 因为网络非常多, 需要这样的活动来让 DeFi 应用保证时刻运转和高效。
Sandwich Attack 是前两种攻击的结合, 对交易进行前后夹击。通常被称为夹子。例如 MEV 机器人在交易前放一个买单, 在交易后放一个卖单, 让用户的交易在更差的价格执行。
这种攻击有时候可以非常复杂同时伤害可能会非常大, 下图是有机器人通过 1 亿枚 DAI 来夹 Curve 的用户:
它可以普遍被认为是恶性的, 但某种程度上像高速公路的测速仪一样鞭策着用户使用更合理的滑点, 从而提升网络整体利益。
时间盗贼攻击是在区块生成之后, 矿工重新挖取区块导致区块链 reorg, 同时在自己挖出的区块中提取价值。这是最恶性的 MEV, 会导致用户交易无效。同时这虽然微乎其微, 但也有发生的可能性。
中本聪共识下的区块链网络由于最长链原则, 区块 reorg 发生非常频繁 ( 延迟也大 ), 因此这类 MEV 很可能被捕获。而在 Tendermint 或者 PoS 的以太坊中, 这类 MEV 的发生会极大程度上被减少。
关于时间盗贼 MEV 很酷的点是: 未来的事件可以影响过去 ( 将「未来」的交易包含到「过去」的区块中 )。
但在简单的量化下, 此类攻击的预期回报率是不高的, 同时会因为蓄意破坏区块链网络的稳定性受到谴责 ( 如 Reorg-as-a-Service), 所以很少会发生。
任何 NFT, 资产, 和 Rollup 交易的有效性其实都是通过购买区块链网络上某个区块的某个空间所保证的。以下是区块链区块空间市场的供需:
Clogging 就是通过连续垄断区块全部的空间来赢得例如 Fomo3D 游戏的胜利。
还记得最开头的 Geth 源码吗? 由于大约 70% 的以太坊矿工都是根据默认的 gas fee 排序对交易进行排序, 因此才产生了 Clogging。
但是目前来说, 因为基础设施的完备, 如预言机和 Rollup 等都会风雨无阻地进行交易的提交, MEV 机器人在网络活跃时期进行这样的活动, 成本会比较高。
前面几种活动的发起者基本都是 MEV 机器人, 而不是出块矿工本人。
Non-Broadcast Transactions 则是出块矿工偷偷提交的 tx, 也就是在矿工知道自己能出块的时候, 瞬间去给区块塞入一些交易, 从而捕捉 MEV。
以太坊上大约 2% 的交易都是这样的形式产生的。
前面的分析中我们探讨了不同种类的 MEV, 穿插着我们对每种的评价和好坏与否的评判。那么整体来说, 到底 MEV 是好还是坏? 我们该怎么应对它? 不同的网络会怎么以不同的方式应对它?
MEV 的好坏:
从分类数量来看 MEV 貌似是一个不好不坏的中立角色, 但是当考量了 MEV 的本质 (incentive to insert tx into block), 这个 incentive 过于巨大, 会导致追逐坏的 MEV 造成的伤害远大于好的 MEV 的好处。除此之外, MEV 的产生也是源于信息和知识的不对等, 区块链网络里只有 equality 而没有 equity。
综上所述, MEV 的黑市原理 + 巨大利益驱使 + 复杂情况和分类 = 区块链网络的负外部性。
MEV 是坏的, 需要削减。
在分类探讨针对 MEV 的策略之前, 我们需要明确一个点, 就是任何情境下的信息不对称和外部性都是无法被完全消除的, 我们只能去更好的处理它们。
MEV 是不透明的信息和知识而造成的黑市 ( 或者说黑暗森林 ), 这个黑市创造了巨大的利益。我们将通过这个角度来思考针对 MEV 的策略。
整个世界的黑市估值大约为 1。8 亿美元, 且是一种无法消除的必然邪恶。MEV 的市场也远比我们所能观测到的大。
既然这个黑市是必然存在的, 那么何不让它暴露在阳光之下, 让大家都可以自由捕捉和保护自身的 MEV, 这样普通用户就可以形成合力, 且可以削弱 MEV 捕捉者针对用户的对抗。
Flashbots 提出了以下五种市场方案来限制 MEV 的提取, 从而减小 MEV 的总体负外部性:
这些 MEV 削减方案其实类似, 但相同的缺点就是可能会导致区块空间被浪费以及出块的中心化。
在我们探索 Rollup 网络的文章中, 我们了解到了单体的 Layer1 和在其之上建立的 Layer2 Rollup 的区别。
Rollup 作为一个「加强版的智能合约」以及「中心化的可信区块链网络」目前均有着中心化的出块和排序机制, 因此有不同的 MEV 表现。目前中心化的 Sequencer ( 也就是只有一个节点 ) 导致所有的 MEV 都可以被 Rollup 捕捉。随着越来越多的流动性和链上活动转移到 L2, L1 矿工所可以获得的收入 ( 包括 MEV) 其实就被转移到了 L2 的 Sequencer。
当然 Rollup 网络自己也意识到且解决了这个问题, 它们对 tx 的公平排序体现了 MEV 的处理。不同 Rollup 对于 MEV 的策略并不相同, 对网络参与者来说意义也就完全不同:
当 L2 步入去中心化且模块化区块链的实现更加盛行后, MEV 的问题需要更多的研究和思考。例如以太坊与 Celestia 的模块化版图就会有所不同。目前来说, 以太坊上的 Rollup 均为 Secured Rollup, 只需构建 n 个双向可信的跨链桥 ( 它们本职就是造这样的桥 ), 共同结算在以太坊上, 而 Celestia 所鼓励的 Sovereign Rollup 各自为政, DA 很可能各不相同, 可能需要 n^2 个桥梁或者类似 IBC 或 XCM 的协议才可以完全打通。这样就建立了完全不同的 MEV 市场和捕捉机会。
由 L2 MEV 的问题, 我们也可以引申出对 L1 和 L2 价值关系的思考, 本文中不做额外展开。
为了更快, Solana 是没有公开的 Mempool 的, 而是通过一个类似只有预计将出块的矿工看得到的 Gulf Stream 来作为 Mempool ( 这也是它宕机的原因…)。这就意味着 MEV Bot 是没办法捕捉 MEV 的, 只有运行一个 Validator, 且即将出块的矿工才在理论上有机会对交易进行排序或者发送新的交易从而捕捉 MEV。但结合 Solana 的矿工利润低的情况, 这样的设计其实就导致了矿工的收入更低。于是现在就有 Jito Labs 做类似 Flashbot 的 mev-geth 的客户端, 来让矿工对自己的区块空间进行拍卖, 让 MEV 形成公开的自由市场。同时 Solana 也有 QUIC 和 per account fee market 的解决方案。
对于 MEV 这个话题, 本文仅仅是表层的分析, 有非常多有趣的东西由于篇幅的问题没有被提及 (SGX, PBS 等 ), 推荐你深入阅读文末的 50 余个相关链接。
在一个理想的网络里:
而 MEV 的存在让鱼和熊掌不可兼得:
不过不用太担心, Web1 或者 Web2 或者现实世界一样没有彻底解决「MEV」的负外部性, Web3 的各种方案已经做得非常好。MEV 一直是个开放问题, 没有完全正确的解。
那么 Web3 的我们该咋办?
Links
https://thedailyape.notion.site/MEV-8713cb4c2df24f8483a02135d657a221
0a:
https://ethereum.stackexchange.com/questions/6107/what-is-the-default-ordering-of-transactions-during-mining
https://github.com/ethereum/go-ethereum/blob/290e851f57f5d27a1d5f0f7ad784c836e017c337/miner/worker.go
https://twitter.com/flashfish0x/status/1516378083628093447
0b:
https://twitter.com/sui414/status/1532088483296120832
0c:
https://twitter.com/thegostep/status/1521104235114508289
0d:
https://docs.flashbots.net/flashbots-protect/rpc/quick-start/
https://twitter.com/blockworksres/status/1532782392569606145
https://twitter.com/_anishagnihotri/status/1520579207478267905
http://mint.fun
https://www.recvc.com/mev-2-0-the-rise-of-mpsvs/
https://twitter.com/hasufl/status/1439938607142277121
1:
https://rileygmi.substack.com/p/what-is-mev-a-simple-guide
https://twitter.com/0xminion/status/1418059536712167432
https://twitter.com/libevm/status/1474870665773682692
https://medium.com/coinmonks/on-efficient-ethereum-addresses-3fef0596e263
1a:
https://rekt.news/return-to-the-dark-forest/
https://medium.com/offchainlabs/five-theses-about-transaction-ordering-mev-and-front-running-5ebf52bc0cbe
1b:
https://twitter.com/thyborg_/status/1547898785933639684
1c:
https://twitter.com/bertcmiller/status/1527757146716348416
https://twitter.com/tarunchitra/status/1549134678036303873
1e:
https://www.longhash.com/en/news/2280/With-Just-20-Billion-Ethereum-Network](https://www.longhash.com/en/news/2280/With-Just-$
https://twitter.com/Leorzhang/status/1374383287309758476
1d:
https://www.paradigm.xyz/2021/07/ethereum-reorgs-after-the-merge
https://www.paradigm.xyz/2022/07/consensus-throughput
https://twitter.com/0x9116/status/1413687410941169666
https://femboy.capital/mev-time-turner
https://twitter.com/SiegeRhino2/status/1416311471303188481
1f:
https://medium.com/blockchannel/life-cycle-of-an-ethereum-transaction-e5c66bae0f6e
2:
https://docs.google.com/presentation/d/13q_cmaznKdAElherLI6fsBexJILYwTj2ddQlMTGUipU/edit#slide=id.g10d8f164256_0_0
2a:
https://twitter.com/mohakagr/status/1417143241812561930
https://docs.google.com/presentation/d/13q_cmaznKdAElherLI6fsBexJILYwTj2ddQlMTGUipU/edit#slide=id.g45d315b027c424f1_13
2b:
https://pdaian.com/blog/mev-wat-do/
3a:
https://twitter.com/mohakagr/status/1417143241812561930
https://docs.google.com/presentation/d/13q_cmaznKdAElherLI6fsBexJILYwTj2ddQlMTGUipU/edit#slide=id.g45d315b027c424f1_13
3b:
https://mp.weixin.qq.com/s/GT4Yfw8VPhBikME4mKCTNQ
https://twitter.com/j0hnwang/status/1489268470973878272
https://ethresear.ch/t/mev-auction-auctioning-transaction-ordering-rights-as-a-solution-to-miner-extractable-value/6788
https://ethresear.ch/t/mev-resistant-zk-rollups-with-practical-vde-pvde/12677
https://twitter.com/j0hnwang/status/1489268486358671364
https://www.youtube.com/watch?v=lLuHFFbYv0Y&t=10s
https://twitter.com/benjaminsimon97/status/1380291321286569986
https://twitter.com/apriori0x/status/1546464783318372353
https://twitter.com/0xmisaka/status/1511370043501785091
https://twitter.com/jon_charb/status/1546501633856634880
https://twitter.com/sreeramkannan/status/1550572765899472896
https://twitter.com/barnabemonnot/status/1550346797494800384
4:
https://twitter.com/bertcmiller/status/1399737488151830538
https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance
https://twitter.com/0xmisaka/status/1511370037306834954
https://pdaian.com/blog/mev-wat-do/
https://medium.com/flashbots/frontrunning-the-mev-crisis-40629a613752
Not Included but Recommended to Read:
https://twitter.com/0xElan/status/1547026528235429894
https://twitter.com/uriklarman/status/1546971147018948609
https://twitter.com/Thyborg_/status/1547898785933639684
https://twitter.com/0xcacti/status/1548470752071913472
https://twitter.com/sxysun1/status/1483860078331584512
https://theknower.substack.com/p/its-all-a-dark-forest
https://flashbots.mirror.xyz/NayGRPko-vFnauN5WOn6rQHgMEUqCpmlPPDfKRXJriU
https://learnblockchain.cn/article/3163
https://ethereum.org/en/developers/docs/mev/
【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。