相关概念

MEV(Miner/Maximum Extractable Value):Block的创建者(pow的miner;pos的vilidator)通过对区块中的交易进行插入、排除、重排来获取利益的行为。
FCFS(First Come First Serve):交易系统中的一种运作方式,主要是先到先处理,也就是按照交易的“先后顺序”来对交易进行处理。
Mempool:区块链中的公共交易池,users的交易会先“到”公共交易池中,再由miners选取。
Proposers(提案人):通过与 Searchers 私下合作,Proposers 可以排到前面并获得更多的利益。
Flashbots: 获得用户和 Searchers 提供的独家交易信息,从而获得更多的获利空间,让其变得更强。
Searcher:一般是以下角色(套利和清算机器人、DeFi交易员、具有高级用例的以太坊Dapps),他们会通过不同的方法在链上找到所有可提取的价值,然后将交易捆绑在一起提供给Builder。
Builder:Builder一般是专业的机构(过去14天有36个活跃Builder,前6家垄断超88%的市场份额),他们从Searchers发送的Bundles中挑选最有利可图的打包成Full Block,通过Relay最终发送给Validator。几个Bundle可以组合在一起形成一个Block,也可能包含来自Mempool的其他用户的待处理交易。

数据来源:MEVBoost.pics
数据来源:MEVBoost.pics

Relay(中继器):负责连接Builder和Proposer,验证Builder提交区块的有效性和出价,并将有效的最高出价提交给Proposer。目前是寡头统治格局,活跃的Relay相较于去年同一时间(23.3.14)已经由11个降到了8个,不过Relay并不参与MEV利润的瓜分,属于一个中立的基础设施。
数据来源:MEVBoost.pics
数据来源:MEVBoost.pics

Validator:Validator是ETH2.0的Miner,Validators(Validators中的Proposers)负责向网络提议Block,并将Block添加到链中。目前Validator的竞争格局渐趋稳定,Lido市场份额第一。Validator既可以获得共识奖励(区块奖励),也可以获得执行奖励(MEV+Tips)。
数据来源:MEVBoost.pics
数据来源:MEVBoost.pics

MEV-Boost work:完整tx上链流程如图
MEV-Boost work
MEV-Boost work

什么是MEV

miner收益(pow)

  1. 出块奖励
  2. gas费
  3. MEV

MEV背景

以太坊区块的交易排序自始至终就没有被确定的规则约束, 而是可以根据矿工的偏好来自由修改. Geth 客户端的源码中, 提供了三种示例:

  • 仅根据 Nonce 来排序
  • 根据 gas fee 和 Nonce 来排序 (默认选项)
  • 根据 owner 排序后, 根据 gas fee 和 Nonce 来排序

其实排序完全是个开放题, 矿工可以自由进行调整, 从而捕捉更大的利润, 也就是我们讨论的主角, MEV.
详细可以参考Foresight Ventures: 描绘, 分类, 支配 MEV

MEV来源

tx来源
tx来源

一个交易(tx)在区块链中的生命周期如下:

  • users根据intent进行应用交互,钱包与应用将intent解释成tx,发送到mempool池等(公共tx池)等待处理。
  • MEV searcher(比如miner)会从中选取机会获利,通过发送tx或者刻意排序捕捉MEV。
  • L1的minger(大多数情况下不会是MEV searcher)或者L2的Sequencer聚合交易并出块。
  • 验证者(比如miner)验证区块,交易正式确认。

MEV rabot根据其owner的意图进行链上活动,再将tx包装好后送给miner出块。辩证来说,它们既是保证交易市场稳定和DApp活跃度的重要角色,也是整个mempool的监视者,这对“普通用户”来说是极其不公平的。

MEV基本类型

MEV的基本类型有很多,但最常见的还是清算(Liquidations)和套利(Arbitrage)。
Liquidations: 在Defi借贷协议中,MEV Searcher可以通过对即将接近抵押物“红线”的抵押品进行清算,来获得一部分相关的抵押品。
Arbitrage: 在自动做市商(AMM)中,MEV Searcher可以通过大量交易活动(比如低价买入,然后在其他地方以更高的价格卖出)也就是俗称的“搬砖”,来获取大量收益。

MEV的分类

1:Front Running

Front Running
Front Running

如图所示;
当MEV Bot发现某tx(tx4)有利可图时,MEV Bot就可以通过支付更高的gas fee在tx4之前执行一笔差不多的交易tx3,这样tx4就会因为tx3的执行导致交易失败或者是价格变动。
同时MEV Bot还可以在tx4执行后将开始tx3买入的“资产”售出,来获取相应利益。
这类MEV主要还是因为MEV捕捉者与普通用户之间的“信息不对等”而产生的。
一般来说,此类MEV可以被算作“中性”或者是“恶性”。
注:“中性”是因为MEV Bot的tx插了队,所以无法被算作良,而如果对后续交易产生了不好的影响,比如交易失败或者是执行出了更差的结果,那就算是“恶性”。

2:Back Running

Back Running
Back Running

当MEV Bot发现一笔交易造成大幅度价格错位时,就可以通过一系列操作(如:套利、清算、交易)来“扳平”其造成的影响。
例如:
当一个交易所(如:uni)中出现了一大笔ETH买单,导致uni中ETH的价格从市价2100$变更到了2300$,那么MEV Bot就可以通过从其它交易所以2100$的价格买入一定数量的ETH,然后再将其在uni中以2300$卖出去。
对于这类MEV来说,在牟取“利益”的同时,又维持了市场的稳定和持续运作,所以这一类的MEV基本被认为属于良性。

3:Sandwich Attack

Sandwich Attack.jpg
Sandwich Attack.jpg

Sandwich Attack 是前两种攻击的结合, 对交易进行前后夹击. 通常被称为夹子。
例如:
MEV Bot在交易前放一个买单, 在交易后放一个卖单, 让用户的交易在更差的价格执行,而MEV Bot则可以以此牟利。
所以,这类MEV也普遍被认为是恶意的,但同时也可以鞭策用户使用更合适的滑点进行交易,从而提升网络的整体利益。

4:Time-Bandit Attack

Time-Bandit Attack
Time-Bandit Attack

用一句简洁的话来描述就是“未来影响过去”。
时间盗贼攻击(Time-Bandit Attack)是在区块生成之后, 矿工重新挖取区块导致区块链 reorg, 同时在自己挖出的区块中提取价值。
如图:
George通过重新挖矿使最长链发生了改动,这也就意味着原本4、5区块(红色)中的交易将全部“失效”,也就是说用户发生了真实的利益交换,却没有被记录到区块链上,这样的情况对于用户的利益损失是极其巨大的。
当然“最长链”的原则主要还是应用于Bticoin中,对于使用pos的ETH来说,发生这种情况的概率无疑还会小很多,但还是存在发生的可能性。
所以这类MEV是最恶性的 MEV, 会导致用户交易无效。
同时它发生的可能性是微乎其微的, 不过仍有发生的可能存在。
更多的介绍可以阅读此篇文章

5:Clogging

6:Non-Broadcast Transactions

解决方案

MEV其实是存在很多争议的,虽然大多数MEV都是“恶性”,但类似于back running这种对维护链上交易运行还是由很大帮助的。

Flashbots Auction

Flashbots Auction在以太坊用户和Validators之间提供了一个私人通信渠道,用于在区块内有效地传达首选交易顺序。通过这类产品可以让链上交易用户实现Pre-trade Privacy、Failed trade privacy、Finality protection等。

Flashbots Protect RPC

这是一个让用户可以实现Front-Running Protection的RPC端点产品,用户可以将其添加到他们的钱包中,从而使他们的交易提交给Flashbots Auction。对于用户而言,和普通的交易没有感知上的区别,但从结果上可以实现Front Running Protection、Failed trade Privacy等。

MEV-Boost

PoS时期,Validator可以自行去Mempool为交易排序,将其打包,也可以选择MEV-Boost推送过来的经过Builder排序过的拥有更高MEV收入的区块。通过MEV-Boost,Validator的收入可以获得大幅增加,所以大部分Validator会选择接入MEV-Boost,而不是自己排序。

MEV-Boost
MEV-Boost

参考文献