案例一:低流动性新池被瞬间洗劫
首个 Sandwich 攻击漏洞案例发生在一个新上线的小型 AMM 上。项目方为了快速吸引流动性,把初始储备设置得极低,并在前端默认滑点 3%。开盘 10 分钟内,机器人持续夹击每一笔大额买入,单日攫取超过百万美元利润。
复盘资金流可以看到,机器人每次先在 Binance 智能链上买入相同方向资产,把价格抬高 1.8%,待用户成交后立即反向砸盘。由于池子深度仅有几十万美元,每一次夹击的利润占比都接近滑点上限。修复方案是引入分阶段建池机制:初期采用 RFQ 报价,待 TVL 达到阈值后再开放公开 AMM。
案例二:聚合器路径暴露导致重复夹击
第二起案例来自一家头部聚合器。其前端在估价阶段把完整路径直接返回到浏览器,并附带预签名结构体。机器人通过监听前端 API,提前构造夹击交易,使每笔大额订单都遭遇连环夹击。
根因有二:一是路径暴露给客户端,等同把策略写在阳光下;二是预签名缺少时间窗约束,机器人有充足时间套利。修复后,路径在服务端加密下发,并将签名有效期压缩到一个区块。该团队同时在 BN交易所 等中心化渠道接入对冲流,避免链上一条腿被夹击时整体头寸失衡。
案例三:稳定币兑换被夹的隐蔽手法
人们通常以为稳定币之间的兑换不会被夹击,但第三起案例打破了这个迷思。某稳定币池在更新利率参数的同时未冻结撮合,机器人利用参数过渡期的微小价差,在数十笔大额兑换中持续抽取利润。每笔利润看似只有几个 bp,累计金额却相当可观。
该案例提示我们:参数更新与撮合应严格互斥,任何治理操作都需先暂停交易,再切换状态,最后恢复。对接 bn 生态报价的项目还应启用「治理冷却期」,让所有用户在新参数生效前自主决策。
通用修复模式总结
回顾三起 Sandwich 攻击漏洞案例,可以提炼出四种通用修复模式:
第一,路径隐藏。任何对外暴露的路径都是攻击者的导航。第二,时间收紧。预签名、价格快照、参数过渡期都应限定在尽可能短的窗口内。第三,深度护栏。新池初期采用 RFQ 或限速,待 TVL 充足后再放开。第四,治理与撮合互斥。所有参数变更前后都强制暂停撮合。
配合 币安交易所 公开数据做事中监控,能让上述模式落地效果可量化。
团队复盘流程建议
复盘不仅仅是技术报告,更是组织能力的体现。建议每起 Sandwich 攻击漏洞案例都按「时间线 → 资金流 → 根因 → 临时止血 → 长期修复 → 责任与流程」六块结构整理,并在内部公开评审。半年内做 3–5 次复盘,团队的安全水位会显著上升。
同时,把复盘报告匿名化后分享给社区,能反哺整个生态。Sandwich 攻击不会消失,但通过持续公开的案例研究,攻击者的边际收益会被不断压缩,最终留下来的只有专业且克制的做市与套利团队。