
想象一下:你正在Uniswap上用50,000美元的ETH兑换某种代币。你点击确认后,你的交易进入了内存池,就在它被“挖掘”之前的那一瞬间,一个机器人看到你的交易,计算出你的价格影响,并开始行动。
这个机器人在你之前购买代币,推动价格上升。你的交易在这个膨胀的价格下执行。然后,机器人立即以你创造的高点卖出,赚取差价。你是区块中的第47,892次交易,夹在47,891和47,893之间,这两笔交易都是同一个机器人下的。
这就是所谓的三明治攻击,它可能是最赚钱的MEV策略。据EigenPhi的研究,这种攻击在2023年单年就从DeFi用户中提取了超过9亿美元,相当于每天250万美元。
特别棘手的是,大多数受害者甚至不知道自己被攻击了。他们看到略高的滑点并认为“去中心化交易所就是这样的”。他们没有意识到一个机器人截获了他们的交易,并设计了滑点来提取最大价值。
三明治攻击发生在机器人在你的交易之前和之后分别下单,夹住你的交易以从中获利。
这是一个三步过程。首先,机器人抢先买入你要买的代币,推高价格。其次,你的交易在这个膨胀的价格下执行。第三,机器人尾随卖出,利用你的购买推动的高价。
与简单的抢先交易不同,三明治攻击控制了价格的两端,使其更具盈利性和破坏性。
假设你想在Uniswap上购买50,000美元的LINK。你以2%的滑点容忍度提交交易,并设置30gwei的gas费用。你的交易进入内存池并变得可见。
三明治机器人始终保持监控。当它们发现你的50,000美元订单时,计算出你的交易将把价格移动约1.5%,考虑到流动池的流动性。这是一个完美的目标。
机器人提交自己的100,000美元LINK买单,gas费为31gwei——比你的gas费略高,确保优先被“挖掘”。机器人的购买将LINK从0.005 ETH推升至0.00515 ETH。
现在你的交易在这个膨胀的价格下执行。你的10 ETH只买到1,942个LINK,而非预期的2,000个。你的购买将价格推升到0.00525 ETH。
最后,机器人以0.00523 ETH出售所有购买的LINK。机器人以0.00515购买,以0.00523出售,扣除gas后净赚约1,450美元。你多付了3%的费用,损失了约58个LINK代币,价值约1,400美元。
整个过程仅需12秒。几乎没有风险。完全合法。
三明治攻击利用了去中心化交易所设计的三个基础。首先,价格影响——大笔交易会移动流动性的价格。其次,交易排序由gas费用决定,因此机器人总是可以出价超过你。第三,你的滑点容忍度告诉DEX“我接受最多X%的价格恶化”。机器人将这作为他们的利润上限。
如果你设置2%的滑点,技艺高超的机器人可以提取最多1.9%,留下足够的空间让你的交易成功。根据Flashbots的研究,经验丰富的三明治机器人成功率超过95%——他们已经掌握了在保持容忍度的情况下最大化提取。
还记得jaredfromsubway.eth吗?这是一个在2023年臭名昭著的MEV机器人。仅在四月份,它利用超过12万个三明治提取了630万美元。最大的一次三明治净赚50万美元。那个月机器人支付了120万美元的gas费用,但依然大获成功。
运营者保持匿名。机器人至今仍在运行。
还有一个大型投资者在Uniswap上用5,000万美元USDC换ETH,滑点为3%。一个三明治机器人抢先投入2,000万美元,让大型投资者的交易执行,然后尾随。机器人的利润为180万美元。这位投资者本可以通过拆分交易或使用私人内存池来避免这种情况。
这些机器人由独立运营者、像Wintermute和Jump Crypto这样的MEV公司运营,越来越多的是由可以在不接触公共内存池的情况下执行三明治的验证者运营。
降低你的滑点容忍度。大多数三明治攻击利用高滑点。改用0.5%而非3%,以减少机器人的操作空间。缺点是,如果价格真正波动,你的交易可能失败,因此先用小金额测试。
拆分大型交易。与其进行一笔10万美元的交换,不如分成五笔2万美元的小额交换。小额交易的价格影响较小。机器人可能会忽视只有50-100美元潜在利润的交易。虽然你需要支付更多gas费用,但避开提取会节省更多。
使用私人内存池。类似Flashbots Protect的服务将交易直接发送给区块构建者,绕过公共内存池。如果机器人看不到你待处理的交易,就无法进行三明治攻击。验证者仍能攻击,但第三方机器人不能。
使用对MEV更有抵抗力的协议。CoW Swap 使用批量拍卖,其中批量内的交易无法相互攻击。解决方案提供商竞争最佳价格,保护数十亿的交易量。1inch Fusion也提供了意图为基础的交换和内置的MEV保护。
使用限价单。许多去中心化交易所现在通过Uniswap X等协议支持限价单。设定你的价格,交易只会在这个价格或更好时执行。机器人无法超过你的限制膨胀价格。
二层解决方案如Arbitrum和Optimism也有帮助。许多L2使用集中式排序器,按先到先得而非最高出价排序交易,减少了三明治的风险。
这是盗窃还是市场效率?DeFi社区对此意见不一。
有些人视其为掠夺性提取,因为你并未同意被拦截。这破坏了DeFi公平性的承诺。另一些人认为内存池可见性是公开的,交易排序是区块链设计,机器人优化了市场效率。如果不想被三明治攻击,利用保护措施。
有一种中间观点:三明治源于公共内存池和自动做市商中的设计缺陷。这不是盗窃,但也不理想。解决方法是更好的基础设施——加密内存池、批量拍卖、公平排序——而不是责怪用户或机器人。
在传统金融中,抢先交易是违法的。三明治攻击是否该受监管?监管机构正在探索这一点,但区块链的透明度使这种“非法信息访问”变得逻辑上复杂。
未来可能会不同。像Shutter Network这样的项目正在实现加密内存池,其中交易在执行前保持隐藏,消除了基于内存池的三明治攻击。
一些二层实验在按提交时间、随机排序或门限加密等公正排序交易上进行实验,从而同时解密所有交易。
通过ERC-4337和基于意图的协议进行账户抽象可能会将交易从公共交易中转移开。不再是“兑换A为B”,而是广播一个意图。解决者竞争填补,只有最终结算上链。没有可三明治的内存池交易。
还有MEV再分配的动向。如果三明治利润流向流动性提供者或交易者会怎样?Eden Network等项目正在探索验证者将MEV利润与用户分享的可能性。
三明治攻击是真实的、盈利的、持续的。但你并非无能为力。尽量使用私人内存池,保持紧缩的滑点,拆分大宗交易,并考虑对MEV具有抵抗力的协议。基础设施已经存在——你只需加以利用。
现在你知道为什么你的交易成本超出了预期。更重要的是,你知道如何进行反击。
References:
免责声明: 本文仅供教育目的使用,不构成财务或投资建议。在进行DeFi交易时,请始终使用适当的工具和策略保护自己。