北京时间4月3日,MEV机器人在以太坊的16964664区块被黑客利用。一名恶意验证者替换了数笔MEV交易,导致约 2538万美元 损失。
MEV机器人会不断追踪用户在mempool (内存池)中的交易,以寻找套利机会。它们经常进行所谓的“三明治攻击”,即在用户交易的前后分别放置一笔交易,将其“夹在中间”。三明治攻击类似于front-run(抢先交易),用户可以通过预测下一轮交易进行获利,但不同之处在于,三明治攻击会在用户交易后发起第二笔交易。
攻击步骤
① 许多MEV机器人正在16964664区块进行 三明治交易 。在以太坊区块16964664中,有 8个MEV 交易被恶意验证者利用。
② 该漏洞主要是由于 验证者权力过于集中 。MEV执行了一个三明治式攻击,他们抢先交易(front-run)然后尾随交易(back-run)了一笔以获利。恶意验证者抢先了MEV的尾随交易。
③ 我们以STG-WETH对 https://etherscan.io/address/0x410fb10ba8af78a1e191fe3067208d3212ded961... 为例:合约0xe73F15想增加交易对中的STG价格。每次试图拉高价格时,MEV机器人就会front-run和 back-run以获取WETH利润。
④ 在一次MEV三明治攻击中,MEV调用swap功能换取STG之后,恶意验证者抢先替换了尾随交易(back-run)。结果导致2,454 WETH通过0xe73F15合约被转移至 https://etherscan.io/address/0x84cb986d0427e48a2a72be89d78f438b3a3c58d1 。
⑤ 总共有大约2500万美元被盗,这也是迄今为止见过的最大的MEV Bot漏洞损失之一。
资金去向
写在最后
本次MEV攻击事件的核心原因是攻击者拿到了bundle的原始信息,对交易进行了替换。虽然MEV机器人的代码并不是开源的,但是验证者一般需要访问某些特定信息来挖掘交易,而恶意验证者其实可以从中诸如公共内存池(mempool)中获取bundle的信息。
Flashbot验证者通常比较可靠,因为他们都要通过MevHUB的KYC验证,以保证数据来源安全可信。在这种情况下,因为验证者掌握了信息,所以能先于MEV Searcher或MEV Bot发起抢先交易。
需要注意的是,该情况仅限于non-atomical 攻击或策略(如三明治攻击),因为恶意验证者无法从发送者身上套利,而只能从策略中获利(如清算)。最终导致原始信息被泄露。
经此一事,日后MEV搜寻者(Searchers)可能会对 non-atomical 策略(如三明治攻击)提高警惕。Flashbot团队或将更可能倾向于使用一些有验证历史记录的“靠谱”验证者。