损失2500万美元,MEV机器人是如何被人“黑吃黑”的?
原文:《》
2023年4月3日,据Beosin-Eagle Eye态势感知平台消息,MEV机器人遭受恶意三明治攻击,损失约2500万美元。
什么是三明治攻击?本次攻击又是如何发生,Beosin安全团队第一时间对事件进行了分析,结果如下。
攻击block:
https://etherscan.io/block/16964664
攻击者:
https://etherscan.io/address/0x3c98d617db017f51c6a73a13e80e1fe14cd1d8eb
Mev bug git link:
https://github.com/flashbots/mev-boost-relay/pull/330
Bundles analyze@samczsun:
Block 16964664: A user managed to drain five MEV bots by exploiting a bug in mev-boost-relay.
Here's the block: https://t.co/ruSz8YzAJR
Here's the user: https://t.co/VY4gpmX0L8
Here's the patch: https://t.co/TPO80i3dz5
Here's the longer explanation: pic.twitter.com/NIe2QJxNGE— samczsun (@samczsun) April 3, 2023
攻击简介:
恶意节点利用MEV-boost-relay相关漏洞,然后通过恶意三明治攻击价格操纵并最终获利。
MEVbot介绍:
最大可提取价值 (MEV) 是指通过在区块中添加和排除交易并更改区块中的交易顺序,可以从区块生产中提取的超过标准区块奖励和燃料费用的最大值。
在区块链数据上运行复杂的算法来检测盈利的 MEV 机会,有机器人自动将这些盈利交易提交到网络。
MEVbot有许多策略,dex中通过币价差套利,清算,NFT MEV等等而本次攻击中涉及的三明治交易,为了实现这样的功能,MEV bot会监视内存池内 DEX 的交易并且计算影响,抢先下单低价买入,然后在用户交易后卖出获利。最近FlashBots等 MEV 服务的兴起现在允许交易者创建“三明治捆绑包”,其中所有 3 笔交易都执行,或者都不执行。与此同时,矿工交易团队也有所增加,他们将三明治包直接挖到他们的区块中。
三明治攻击(sandwich attacks)是DeFi里流行的抢先交易技术的一种。为了形成一个“三明治”交易,攻击者(或者我们叫他掠夺性交易员)会找到一个待处理的受害者交易,然后试图通过前后的交易夹击该受害者。这种策略来源于买卖资产从而操作资产价格的方法。
三明治攻击介绍:
三明治攻击(sandwich attacks)是DeFi里流行的抢先交易技术的一种。为了形成一个“三明治”交易,攻击者(或者我们叫他掠夺性交易员)会找到一个待处理的受害者交易,然后试图通过前后的交易夹击该受害者。这种策略来源于买卖资产从而操作资产价格的方法。
三明治交易的目标是利用意外受害者的滑点,同时也有许多诱饵机器人反过来利用MEVBot的策略,例如恶意的诱饵代币,或者转账函数中特殊的金额指定等,而本次攻击利用了MEVBot相关漏洞。
链下BUG描述:
正常情况下恶意提议者很难修改bundles,这是因为双签惩罚,但是攻击parent_root和state_root被恶意设置为0x00,会导致PublishBlock返回error,但是由于旧版本没有对返回的error进行处理,从而获取已经披露的Bundles,才导致了事件的发生,下图是git中对该漏洞的修复。
链上攻击流程:
1.其中一次攻击为例,攻击者首先将目标瞄准到流动性很低的池子,并试探MEV机器人是否会抢跑交易。例如下图中,我们可以看到攻击者通过0.04 WETH试探MEV机器人,勾引MEV机器人进行抢跑套利。发现池子确实有MEV机器人进行监控,并且MEV机器人会使用其所有的资金进行套利。
2.攻击者试探成功之后使用预先在Uniswap V3中兑换出来的大量代币在低流动性的V2池内进行兑换操作,勾引MEV使用全部的WETH进行抢跑购买不值钱的代币。然而被抢跑的交易其实才是瞄准了MEV的攻击交易,使用了大量的代币换出MEV刚刚进行抢跑的所有WETH。
3.这时由于MEV进行抢跑的WETH已经被攻击交易兑换出来,所以MEV机器人想要重新换回WETH的操作会执行失败。
例如
总结
一是因为攻击者利用MEVbot相关Bug,这是攻击能够完成的主要原因。
二是因为MEV每次在低流动性池中套利仍然会使用自身所有的资金,这是攻击损失如此大的可能原因。
三是因为在uniswap V3中可以用少量资金获得同样的代币,而其价值在V2池中已经被操纵失衡,这是攻击中使用的主要手法。
部分参考:
https://github.com/flashbots/mev-boost-relay/pull/330
感谢twitter@samczsun
资金追踪:
截止发稿前,Beosin KYT反洗钱分析平台发现目前主要被盗资金位于地址
0x3c98d617db017f51c6a73a13e80e1fe14cd1d8eb($20,051,175.47),
0x5B04db6Dd290F680Ae15D1107FCC06A4763905b6($2,334,519.51),
0x27bf8f099Ad1eBb2307DF1A7973026565f9C8f69($2,971,393.59)。
约2520万美元。