三明治攻击,一种悄无声息的抢先交易手段,每年可能让交易者损失百万美金。矿工能够窥视所有未打包的暂存交易,一旦发现有利可图,便会在其中插入对自己有利的交易。他们通过贿赂的方式,提高gas费用,让自己的交易优先处理。然而,这种攻击并非总是可行,只有在特定情况下,考虑到贿赂成本和交易手续费,才可能有所盈利。大多数情况下,三明治攻击是由MEV机器人发起的。迷因币因其低流动性、快速交易和高滑点特性,更容易遭受此类攻击。为了防止三明治攻击,可以采取设定滑点限制和使用专门的服务(钱包、RPC)等措施。
据估算,每年三明治攻击可能给交易者带来百万至数百万美元的损失。
如果你对三明治攻击一无所知,那么你可能正成为其受害者。
鉴于如此巨大的市场机会,抗MEV技术也应运而生。2023年,Telegram Bot领域火热,其中不乏具备MEV防护功能的机器人,帮助用户避免在炒币过程中遭受损失。
或者,从DeFi协议的层面来预防MEV,例如,采用能够防止三明治攻击的去中心化交易所。
三明治攻击究竟是什么?下面通过两张示意图来解释。
在这个例子中,原本只需花费63.8美元就能购买1000个狗狗币,但实际上却花费了64美元,因为被矿工抢先交易,从中获利。
虽然这0.2美元的差距看起来微不足道,但实际情况中,差距可能达到5%、10%甚至更高。交易金额越大,被赚取的利润也就越多。
简单来说,三明治攻击就是插队。矿工在有利可图的交易前后,抢先插入其他交易。例如,在你打算买入之前,他们先买入,将价格拉高后转卖给你;或者在你打算卖出之前,他们先卖出,将价格压低后再从你手中买回。
在你的交易之前抢先交易,从而获取利润。
为什么会出现三明治攻击?这是基于区块链的运作机制。
当我们在链上发起一笔交易时,这笔交易会被送到公开的交易池暂存,称为mempool。等到共识机制选出下一个要负责打包区块的矿工,该矿工就会从mempool中选出交易打包成区块上链。一旦上链后,交易就不能更改了。
在发送到mempool之后,到打包成区块之前,这段时间差让矿工有机会赚钱,这被称为MEV(Miner Extractable Value)矿工可提取价值。
一句话来说,MEV就是矿工在交易被打包成区块上链之间,通过调整交易顺序或在交易之间添加交易的方式能够赚取的利润。
MEV不仅能通过三明治攻击获利,还包括套利和清算。这些都是在链上发现获利机会后,在交易打包之前添加对自己有利的额外交易来获利。
关于三明治攻击的一些常见问题:
为什么我的交易会被矿工看到?因为mempool是公开的,所有链上矿工、验证者都能看到。
为什么矿工可以插入额外交易?因为处理交易的顺序取决于矿工,他们可以通过提高gas费用来影响交易处理顺序,也就是说,可以通过提高手续费来贿赂打包区块的矿工,使其优先处理自己的交易。
三明治攻击的实际流程是怎样的?有人发起一笔交易,根据区块链的运作流程,交易在被打包进区块前会先被发送到mempool暂存池公开广播。某矿工发现有利可图,在这笔交易前后插入对自己有利的交易,将这些交易打包成bundle(打包交易),贿赂负责打包区块的矿工处理接受这个bundle,区块打包上链,交易完成,从而赚取收益。
为什么速度如此快,人类跟得上吗?实际上是由机器人执行的。许多MEV机器人随时在寻找赚钱机会,不仅寻找三明治攻击机会,还进行套利和清算。
为什么迷因币玩家最怕三明治攻击?这是因为迷因币具有以下特点:低流动性、快速交易和高滑点。
迷因币是指源自互联网梗图、搞笑图或其他幽默元素特征的加密货币。2013年底,一位软件工程师带着开玩笑的本意采用Doge这个网络梗图来发行了狗狗币,从此开启了迷因币的热潮。
尽管开创原因无厘头,但在市场中,迷因币因其“社群共识”而带来大幅流量,进而导致FOMO(恐惧错过)心态。迷因币动辄百倍、千倍的涨幅,造就了迷因币玩家“不怕买错,就怕错过”的心态。
然而,迷因币毕竟是小币种居多,不是主流知名币种。通常,它们还没上主流交易所,还在相对冷门的链或DEX中才能交易,流动性通常都不足。
买卖迷因币时的两个特性:低流动性和怕错过的心态。怕错过就会抢快,没有耐心分批小额下单买卖,总是想快速完成一笔交易。没有耐心细看交易设定,立刻就要下单成交。所以在交易时,交易者常常会调高滑点以增加交易成功率,以便能够最早买到。
低流动性让交易容易发生滑点,特定人士想要操控价格也相对容易。矿工更容易拉高价格,更容易拉高三明治攻击的利润。
综合起来,三明治攻击更容易发生在迷因币市场,更有获利空间。有位链上匿名交易者,就靠着针对迷因币的三明治攻击,两天内赚了两百万美元。
预防三明治攻击的方法之一是在下单时设定滑点限制。
三明治攻击是一种链上交易的攻击。如果是在中心化交易所交易,就不会有这个问题。在去中心化交易所交易时,通常可以设定该笔交易可以接受的最大滑点。切记,不要设定太高,滑点设定越高,该笔交易金额越大,越容易遭受三明治攻击。
以交易所DODO为例,在交易Swap界面右方小齿轮按下去可以进行进阶设置,其中就可以设定最大滑点限制。
或者在Balancer交易所,在Swap右方小齿轮按进去也可以设定滑点限制。
这目前已经是大多数去中心化交易所的基本功能,在发送交易前务必要设定。切记:滑点设定越高,该笔交易金额越大,越容易遭受三明治攻击。
但设定太低也会导致难以成交,关键还是不要在流动性不足的市场中做大额交易,宁可小额分批买入。
使用防MEV的服务(如BOT、DEX、RPC)也是预防三明治攻击的有效方法。
直接使用提供MEV保护的工具,例如文章前段提到的,2023年火热的Telegram Bot中就有数个机器人提供MEV保护功能。
或者在提供MEV保护的去中心化交易所进行交易,例如CowSwap。
更进阶的方式是使用抗MEV的RPC(Remote Procedure Call)。RPC是区块链中的一种远程交互协议,用于将我们的交易发送到mempool暂存池。某些抗MEV的服务会提供不同的RPC,将交易直接发送给矿工处理,而不是发送到公开的mempool,以此来避免被三明治攻击。
做法是找到对应的RPC后,自行在小狐狸钱包Metamask中设置更改。
可用的协议例如FlashBots,或知名去中心化聚合器1inch推出的抗MEV服务RabbitHole,都可以直接在Metamask中添加它们的RPC来实现抗MEV。
这需要一定的加密钱包知识,不建议新手使用。
标签: 区块链