三明治攻击是什么?一文读懂MEV中的夹击式套利风险
什么是三明治攻击
三明治攻击(Sandwich Attack)是 MEV(最大可提取价值)中的一种典型策略,攻击者通过在受害者交易前后分别插入自己的交易,把目标交易“夹”在中间,从而借助价格波动获利。[2][3][4]
它最常发生在 AMM(自动化做市商)类去中心化交易中,尤其是当用户设置了较高的滑点容忍度、提交了较大金额交易,或交易对流动性较浅时,攻击者更容易利用交易排序和价格影响实现套利。[1][2][6]
三明治攻击的运作机制
从机制上看,三明治攻击依赖的是链上交易的公开性和交易排序权。攻击者会持续监控待处理交易,当发现一笔可能推动价格变化的订单时,先用更高优先级提交“前置交易”买入或卖出相关资产,迫使市场价格朝对自己有利的方向移动。[2][3][4][6]
随后,受害者交易在被抬高或压低后的价格环境中成交,通常会付出更差的执行价格;紧接着,攻击者再提交“后置交易”反向平仓,把先前持有的资产卖出或买回,从价差中锁定利润。[2][3][4]
这类攻击之所以有效,核心不在于“黑入”账户,而在于抢占交易顺序并放大目标交易的滑点成本。[2][4][7]
为什么三明治攻击屡见不鲜
三明治攻击不是偶发漏洞,而是由区块链透明性、公开内存池和排序竞争共同塑造的系统性问题。[2][3][5]
一方面,待确认交易在某些网络环境中对外可见,攻击者可以借助自动化机器人快速识别大额交易;另一方面,矿工费、优先费或打包策略会让“谁先上链”变成一场竞价,攻击者只要愿意支付更高成本,就可能抢先把交易塞进区块。[2][6]
因此,在 Uniswap、Solana 等活跃生态中,只要用户交易具备足够的可预测价格冲击,就可能成为三明治攻击的目标。[2][5]
用户为什么会受损
受害者表面上看到的是“交易成功”,但实际成交价格可能已经显著偏离预期,这种损失往往被包装成滑点、价差或执行质量下降,而不是显性的资产被盗。[2][3][6]
- 成交价变差:用户买入更贵、卖出更便宜。
- 滑点扩大:交易原本可接受的价格区间被攻击者提前拉开。
- 隐性成本上升:用户未必立刻察觉损失,但长期会累积为更高交易成本。
对普通交易者来说,这类损失尤其隐蔽,因为最终链上记录显示交易是“按规则执行”的,真正的问题出在执行前后的排序被操纵。[2][4][7]
哪些交易更容易被夹击
并非所有交易都会成为目标。攻击者通常更偏好那些可被预测、能引发明显价格冲击、且利润足以覆盖打包成本的交易。[1][2][4]
- 大额兑换交易,尤其是低流动性交易对。
- 滑点设置过高的交易。
- 在 AMM 上进行的简单买卖,而非复杂的路径聚合交易。
- 在内存池中暴露时间较长、便于机器人监控的订单。
如何降低被三明治攻击的概率
防范三明治攻击的关键,是尽量减少交易被公开监控和被提前预测的机会,同时压缩攻击者可利用的滑点空间。[2][3][6]
- 降低滑点容忍度:滑点越小,攻击者可操作空间越有限。[1][3]
- 拆分大额交易:把单笔大交易拆成多笔小交易,降低单次价格冲击。[2][4]
- 使用更优路由:优先选择聚合器或更深流动性的交易路径,减少对单一池子的冲击。[3][4]
- 关注交易确认方式:尽量使用能减少公共内存池暴露的提交机制。[2][5]
- 避免在低流动性时段交易:流动性越差,越容易被价格操纵。[1][2]
三明治攻击背后的行业影响
从更宏观的角度看,三明治攻击反映的是 DeFi 市场基础设施中的公平性问题:当交易排序本身可以被套利,普通用户就会在无形中为链上透明性和去中心化设计付出额外成本。[2][5][7]
这也是为什么 MEV 一直是行业争议焦点。对交易执行者来说,MEV 代表效率与机会;对普通用户来说,它可能意味着更差成交、更高摩擦和更弱的体验。[2][7][8]
对于像币安这样面向全球用户的加密资产平台而言,持续普及滑点控制、交易风险认知和链上执行机制,能够帮助用户更理性地理解 DeFi 交易中的真实成本。[6]
三明治攻击与普通套利的区别
普通套利通常利用不同市场之间的价差,不一定直接伤害某个特定用户;而三明治攻击则是针对性地利用受害者交易制造价格偏差,并从受害者的执行劣势中获利。[2][4][6]
换句话说,普通套利更多是“发现效率差”,三明治攻击则是“利用排序优势放大他人成本”。[2][7]
核心问题集
三明治攻击是什么?
三明治攻击是 MEV 的一种形式,攻击者把目标用户的交易夹在自己的前置交易和后置交易之间,利用价格变化获利。[2][3][4]
Q.01三明治攻击主要发生在哪些场景?
它通常发生在 AMM 类 DEX、低流动性交易对、大额兑换和滑点较高的交易场景中。[1][2][4]
Q.02为什么滑点高更容易被攻击?
因为滑点越高,攻击者可操纵的价格空间越大,更容易在不触发失败的情况下完成夹击。[1][3]
Q.03三明治攻击算不算盗币?
通常不属于直接盗币,而是通过交易排序和价格操纵让受害者以更差价格成交,从而间接造成损失。[2][4][7]
Q.04如何判断自己是否被三明治攻击了?
如果交易成交价格明显劣于预期,且链上前后出现与该交易相关的夹击型买卖行为,就可能存在三明治攻击迹象。[2][4][7]
Q.05降低滑点能完全避免三明治攻击吗?
不能完全避免,但能显著减少攻击者可利用的空间,是最直接有效的防护手段之一。[1][3]
Q.06大额交易为什么更容易被盯上?
因为大额交易更容易推动价格变化,攻击者更有机会通过前置和后置交易从价差中获利。[2][4][6]
Q.07普通用户在 DeFi 里该如何自我保护?
建议控制滑点、拆分大额交易、选择流动性更深的交易路径,并尽量减少订单在公共内存池中暴露的机会。[2][3][6]
Q.08