- Published on
【Free MEV系列】| 如何研究 MEV
- Authors
- Name
- thinkingchaindotapp
如何研究MEV
截止至撰写本文为止(2024-10-22),MEV的研究已经十分的成熟,如果想涉足该领域(我想任何领域都是一样),最佳的实践方式就是站在巨人的肩膀上进行研究:在现有的前沿理论查看行业发展,然后结合自身的情况制定合理的学习路线。
MEV是一个很有趣、但也非常复杂、竞争非常激烈的游戏,由于区块链的准入门槛低,网络上充斥着各式各样的经验见解。但我认为,在做MEV之前,应该对其历史、发展、未来有着清晰的认识。我的方法是,查看著名的论文,了解成熟的系统性方法论。
论文1: Flash Boys 2.0: Frontrunning, Transaction Reordering, and Consensus Instability in Decentralized Exchanges
此论文研究的是PoW时期的MEV情况,核心是围绕DEX买卖交易进行建模。虽然里面的实验已经过时(在以太坊2.0转入PoS之后,它不再以Gas费用来作为排序条件,而是转入了以flashbot引领的验证者贿赂模式),但是仍然非常值得研究。
论文围绕如下的模式进行建模:从某个交易所买入token,然后在另外一个交易所卖出token,赚取价格差,这就是经典的套利。
我们以一个案例来理解bot之间是如何竞争MEV的:下图中,两个bot同时发现了一个MEV机会,然后它们都想获得它,然后他们在memory pool中发出交易。他们不知道自己的交易何时会被打包上链,但是他们能看得到其他用户也想获得这个MEV机会。然后竞争就开始了。这两个bot的竞争一个持续了13秒,他们每次看到别人比自己出价更高的gas,则自己会提高gas重新发布交易。在第5秒的时候,矿工就已经决定了打包的顺序(绿色圈住的内容),只是此时由于P2P网络的延时性bot还不知道矿工打算打包这两笔交易了。最终,红色圈住的交易全部失效,作废在memory pool中,永远不会再上链了。
这其实就是bot们和矿工之间的博弈。
利润是一定的,越来越多的bot想来分一杯羹,那么竞争就会越来越激烈。它们只能不断地升级博弈的策略,寻找不同的MEV机会。如下图所示,可以看到绿色线的机器人持续了不久就不再活跃了,这是因为它没有及时地更新自己的策略而放弃竞争。也有一些bot比如蓝色线,其策略不佳导致盈利是亏损的,这是因为收益无法覆盖gas费用。
并且你可以发现一个很有趣的规律:比如06-18之后的蓝色和橙色,一个提高的时候,另外一个就下降,它们之间可以理解为不断地竞争并更新自己的策略。这是一个持续的战争!
这个故事发生在2018年的11月15日,时到今日竞争只会更加的激烈,因为会有专业的团队、专业的理论、更多的参与者。
然后论文就根据PoW中gas竞争的概念进行建模,这是论文量化研究这个gas排序DEX套利的模型。
论文2: Quantifying Blockchain Extractable Value: How dark is the forest?
这篇论文研究的是PoS时期的以太坊MEV情况,它更加的全面,包含了最常见的MEV:清算、三明治攻击、DEX套利、抢跑重放。
论文阐述了在EVM串行的交易顺序中,各种MEV方式有着以下的几种顺序:
- Destructive Front-Running:破坏性抢跑,意思是你把自己的交易插队到别人的前面,导致别人的交易revert失败。比如:黑客A发现某个协议可以攻击,然后黑客B发现黑客A在memory pool中的交易,然后黑客A复制交易抢跑,导致黑客B的交易失败。
- Tolerating Front-Running:容忍性抢跑,意思是你把自己的交易插队到别人的前面,别人的交易仍然成功,但是效果不一样(一般是不盈利了)。比如:用户A准备做一个三明治攻击,用户B抢先A之前做三明治攻击,最终用户B成功执行并盈利,拿走了所有利润空间,而用户A的数笔买卖仍然成功但是亏损了
- Back-Running:后跑,意思是在某笔特定的交易之后紧跟自己的交易,以此来获利。比如:预言机更新价格之后,某个头寸可以被清算,那么谁先清算,谁就可以获利
- Clogging:意思是恶意者通过发送大量交易来堵塞区块链,从而妨碍其他用户和机器人发出交易。这种攻击可以被视为一种“抑制”,目的是通过占用区块空间或增加网络拥堵,延迟或阻止竞争对手的交易被及时打包进区块
这四种顺序中,常见的MEV有如下的要求:
类型 | 是否需要特定的区块状态 | 是否需要特定的内存池状态 |
---|---|---|
三明治攻击 | ✅ | |
清算 | ✅ | ✅ |
DEX套利 | ✅ | ✅ |
抢跑重放 | ✅ |
论文中做这些MEV的市场有如下:
- DEX套利:Uniswap V1, Uniswap V2, Uniswap V3, Sushiswap V2, Curve, Swerve, 1inch, Bancor
- 清算:AAVE V1,AAVE V2,Compound,dYdX
其中存在一种特殊的方式:用户与矿工合作,用户提交gas为0的交易但仍然打包上链。
抢跑重放的原理如下:本地维护好一个全节点,然后从memory pool中拿交易出来本地模拟,查看是否获利,如果获利则发送相同的内容进行抢跑。如何修改别人的交易呢:我们需要维护一个token损益表,记录交易涉及到的所有账户地址和token,然后对比交易前后,这些账户在token损益表中的获利情况。正常情况下,我们想要抢跑的交易中,会有一个beneficiary,我们将这个交易的raw calldata的所有beneficiary替换为我们自己的地址,然后抢跑。同时有个小问题,如果beneficiary某个token增加了而另外的token减少了,那么如何判断:我们需要维护一个DEX聚合器工具,将所有的收益转换为ETH来衡量,最终以ETH来作为是否盈利的标准。
上面所说的所有情况,都视为MEV。随着PoS的到来,flashbot引领的拍卖游戏彻底打破了以往PoW以gas竞价的方式。flashbot引入了一个黑盒拍卖机制,它承诺:(1)不会泄漏用户的交易详情,只有在成功上链之后其他人才能看到该用户交易;(2)不成功上链,不会消耗gas;(3)同一个区块的拍卖中,如果具有相同的/冲突的交易内容,则贿赂给flashbot更高的交易将会被打包;(4)flashbot这一类机构称之为builder,他会收取一定的手续费而提供隐私的捆绑包交易,这一承诺建立在flashbot和矿工不会作恶的情况下。
论文采集了大量的数据来证明上述理论的正确性,并说明了MEV竞争激烈。
制定计划
MEV的游戏在至少2018年就开始了,它越来越激烈并趋向于饱和。于是,EVM链上的MEV,逐渐向其他非EVM链进行迁移,比如Solana,sui等。虽然链等架构不同,但是游戏理念我认为是基本上相通的。作为个人,我认为研究MEV只能作为学习,而不是以盈利为目标,因为个人一般无法和专业的团队竞争(机器成本、不断更换策略和深刻关注链上变化的时间成本)。因此,我的目标是通过学习MEV,深入地了解EVM上MEV运作,同时学习Rust,因为顶级的MEV bot要求极高的速度,Rust的特性和生态符合这个前提。
我大致预设以下几个目标:
- 将所有的MEV教程都阅读完毕
- 学习flashbot等builder,学会使用捆绑交易和隐私交易
- 阅读先进的论文,掌握成熟的MEV方法论,帮助自己制定MEV bot策略
- 阅读大量的开源库,学习他们的交易策略
- 通过阅读rust编写的开源库 + chatGPT的方式,提升Rust能力
- 编写易懂、高效的本地交易模拟器
- 分析大量的MEV案例,理解背后的机制
- 收集中上流行的DeFi项目,熟悉它们的经济模型,为书写策略做准备
理想情况下,我们最终会做出一个能够勉强盈利的MEV机器人🤖