
一文简析 SushiSwap 第二次被攻击始末
SushiSwap 再次遭遇攻击,此次问题为 DIGG-WBTC 交易对的手续费被攻击者通过特殊的手段薅走。
By : yudan@慢雾安全团队
背景
2021 年 1 月 27 日,据慢雾区情报,SushiSwap 再次遭遇攻击,此次问题为 DIGG-WBTC 交易对的手续费被攻击者通过特殊的手段薅走。慢雾安全团队在收到情报后立马介入相关事件的分析工作,以下为攻击相关细节。
SushiMaker 是什么
SushiMaker 是 SushiSwap 协议中的一个重要的组件,其用于收集 SushiSwap 每个交易对的手续费,并通过设置每个代币的路由,将不同交易对的手续费最终转换成 sushi 代币,回馈给 sushi 代币的持有者。这个过程就是发生在 SushiMaker 合约上。
说说恒定乘积
恒定乘积的公式很简单,在不计算手续费的情况下,恒定乘积的公式为
也就是说每次兑换,其实都是遵循这个公式,及交易前后 K 值不变,在兑换的过程中,由于要保持 K 值不变,公式的形式会是这个样子
其中 X 代表卖掉的代币,Y 代表要购买的代币,那么每次能兑换到的代币数量会是这个样子(具体的推导过程就不演示了 :D)
从公式上可以看到,当输出代币 Y 的兑换数量上限取决于 Y 代币的数量,而和 X 代币数量的大小无关,反过来说,如果要卖掉的 X 代币数量很大,但是 Y 代币的数量很小,那么就会造成大量的 X 代币只能兑换出少量的 Y 代币,而这个兑换价格相比正常的交易价格会偏离很多,这就是所谓的滑点,是本次攻击中的关键。
攻击流程
2020 年 11 月 30 日,SushiSwap 就曾因为 SushiMaker 的问题出现过一次攻击(详解参阅:以小博大,简析 Sushi Swap 攻击事件始末),本次攻击和第一次攻击相似,但流程上有区别。相较于旧合约,在新的合约中, 手续费在兑换的过程中会通过 bridgeFor 函数为不同交易对中的代币寻找特定的兑换路由,然后进行兑换。
其中,bridgeFor 函数的逻辑如下:
根据 bridgeFor 的逻辑,我们不难发现,如果没有手动设置过特定币种的 bridge,那么默认的 bridge 是 WETH,也就是说,在未设置 bridge 的情况下,默认是将手续费兑换成 WETH。而 DIGG 这个币,就是正好没有通过 setBridge 设置对应的 bridge 的。
但是这里还有一个问题,就是在 swap 的过程中,如果这个交易对不存在,兑换的过程是失败的。本次攻击中,DIGG-WETH 这个交易对一开始并不存在,所以攻击者预先创建一个 DIGG-WETH 的交易对,然后添加少量的流动性。这个时候如果发生手续费兑换,根据前面说的恒定乘积的特性,由于 DIGG-WETH 的流动性很少,也就是 DIGG-WETH 中的 WETH 上限很小,而 SushiMaker 中的要转换的手续费数量相对较大,这样的兑换会导致巨大的滑点。兑换的过程会拉高 DIGG-WETH 交易对中 WETH 兑 DIGG 的价格,并且,DIGG-WETH 的所有 DIGG 手续费收益都到了 DIGG-WETH 交易中。通过观察 DIGG-WETH 交易对的流动性情况,流动性最大的时候也才只有不到 2800 美元的流动性,这个结果也能和公式的推导相互验证。
攻击者在 SushiMaker 完成手续费转换后,由于 DIGG-WETH 交易对中 WETH 兑 DIGG 的价格已经被拉高,导致少量的 WETH 即可兑换大量的 DIGG,而这个 DIGG 的数量,正是 DIGG-WBTC 交易对的大部分手续费收入。
总结
本次攻击和 SushiSwap 第一次攻击类似,都是通过操控交易对的兑换价格来产生获利。但是过程是不一样的。第一次攻击是因为攻击者使用 LP 代币本身和其他代币创建了一个新的交易对,并通过操纵初始流动性操控了这个新的交易对的价格来进行获利,而这次的攻击则利用了 DIGG 本身没有对 WETH 交易对,而攻击者创建了这个交易对并操控了初始的交易价格,导致手续费兑换过程中产生了巨大的滑点,攻击者只需使用少量的 DIGG 和 WETH 提供初始流动性即可获取巨额利润。
相关参考链接如下:
SushiMaker 归集手续费交易:
https://etherscan.io/tx/0x90fb0c9976361f537330a5617a404045ffb3fef5972cf67b531386014eeae7a9
攻击者套利交易:
https://etherscan.io/tx/0x0af5a6d2d8b49f68dcfd4599a0e767450e76e08a5aeba9b3d534a604d308e60b
DIGG-WETH 流动性详情:
https://www.sushiswap.fi/pair/0xf41e354eb138b328d56957b36b7f814826708724
比推快讯
更多 >>- Pantera Capital 已向DAT公司投资逾3亿美元,涵盖八种代币
- 数据:过去 1 小时 Binance 净流出 3,396.92 万 USDT
- 特朗普广泛物色美联储理事人选,耶伦在列
- 美联储巴尔金:中低收入消费者财力吃紧影响通胀
- Circle 拟发行 200 万股 A 类股,卖方股东拟发行 800 万股 A 类股
- 标普 500、纳指均创历史新高,因美联储降息预期推动上涨
- 以太坊短线拉升近100美元,上破4600美元/枚
- 美国财长贝森特为美联储主席职位广纳贤才
- 美财长:美联储应考虑在 9 月降息 50 个基点
- MSCI 全球股票价格指数再创历史新高,日内涨 1%
- 鲸鱼 Regbil 参与 pump.fun 公募获利 285 万美元,还曾参与 XPL 公募
- Andrew Tate 再次加仓 Block,已累计持有价值 15 万美元 Block
- Coinbase 将 WCT 添加至资产上市路线图
- 白宫:特朗普正在考虑就美联储大楼装修问题起诉鲍威尔
- 美股 ProPhase Labs 涨超 35%,市值升至 1578 万美元
- 美联储逆回购操作接纳 574.92 亿美元
- Odin.fun 宣布暂停交易,疑似出现漏洞
- 美股三大股指均涨超 1%,纳指涨 1.2%
- 某新建地址从 Kraken 提取 23,365 枚 ETH,价值 1.04 亿美元
- 借贷协议 Spark 启动第二季积分活动,第一季 SPK 奖励将开放申领
- 美股涨势扩大,新 ETH 财库公司 ETHZilla 盘中涨超 146%
- 数据:ETH 当前全网 8 小时平均资金费率为 0.0024%
- 以太坊持续拉升接近 4500 美元,续创 2021 年 12 月中旬以来新高
- 福克斯:特朗普提名的美国劳工统计局局长曾建议暂停发布月度就业报告
- Polygon 生态 DEX QuickSwap 宣布扩展至 Base 链
- Perplexity 提出 345 亿美元收购 Chrome 浏览器
- Tether CEO:有些公司的策略就像飞蛾扑火
- 分析师:关税传导给 CPI 的影响较小,美联储基本锁定 9 月降息
- Morpho 正式上线 Arbitrum 网络
- 某鲸鱼/机构再度增持 35,237 枚 ETH,价值 1.5506 亿美元
- Sanctum 社区发布提案 CLOUD-005,寻求投资者归属 CLOUD 立即解锁
- 交易员 TheWhiteWhaleHL 位列 Hyperliquid30 日排行榜第一,盈利 4580 万美元
- 特朗普官员考虑由美联储副主席杰斐逊担任美联储主席
- Do Kwon 对共谋诈骗、网络诈骗指控认罪
- Coinbase 集成 Base 网络 DEX 仅 3 日,Base 链即录得 2 月初以来最高 DEX 交易量
- 美联储施密德指出就业市场降温,关税传导作用减弱
- 美联储施密德支持对政策利率保持耐心态度
- 美联储巴尔金:就业与通胀风险平衡尚不明朗
- 美联储施密德称关税对通胀影响有限,维持政策不变
- 特朗普:关税并未导致通货膨胀
- Aave 活跃借款额超 250 亿美元,创历史新高
- 高盛:7 月 CPI 数据符合预期,关注将转向劳动力市场
- Cathie Wood:ARK 维持比特币五年内价格达逾 100 万美元的预测
- 美联储理事米兰称新车通胀无实质性增长
- 采用比特币策略的美股上市公司 Genius Group 考虑在韩国双重上市
- 美联储巴尔金表示政策处于良好位置,灵活应对经济前景
- 美联储巴尔金警告经济可能放缓,因消费者支出收缩
- Hyperliquid 三大巨鲸再次增持空单,总浮亏超 1200 万美元,清算风险加剧
- 特朗普再次敦促降息,威胁对鲍威尔提起重大诉讼
- Sonic 上线测试网 2.1,即将上线主网