如何通过恒定乘积黑掉 SushiSwap ?简析 SushiSwap 第二次被攻击始末
背景
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 函数为不同交易对中的代币寻找特定的兑换路由,然后进行兑换。
其中,brdigeFor 函数的逻辑如下:
根据 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
Sushi 第一次被攻击详解:
https://mp.weixin.qq.com/s/-Vp9bPSqxE0yw2hk_yogFw
By : yudan@慢雾安全团队
2020 年 11 月 30 日,SushiSwap 就曾因为 SushiMaker 的问题出现过一次攻击(详解参阅:以小博大,简析 Sushi Swap 攻击事件始末),本次攻击和第一次攻击相似,但流程上有区别。相较于旧合约,在新的合约中, 手续费在兑换的过程中会通过 bridgeFor 函数为不同交易对中的代币寻找特定的兑换路由,然后进行兑换。
相关参考链接如下:
SushiMaker 归集手续费交易:
https://etherscan.io/tx/0x90fb0c9976361f537330a5617a404045ffb3fef5972cf67b531386014eeae7a9
攻击者套利交易:
https://etherscan.io/tx/0x0af5a6d2d8b49f68dcfd4599a0e767450e76e08a5aeba9b3d534a604d308e60b
DIGG-WETH 流动性详情:
https://www.sushiswap.fi/pair/0xf41e354eb138b328d56957b36b7f814826708724
Sushi 第一次被攻击详解:
https://mp.weixin.qq.com/s/-Vp9bPSqxE0yw2hk_yogFw
By : yudan@慢雾安全团队
布鲁金斯学会:全球监管机构之间没有就如何处理加密货币达成协议:据福布斯消息,布鲁金斯学会昨日发布关于央行和加密货币的研究报告。报告指出,世界各地的银行监管机构并未采取统一的方式来规范加密货币。该报告还指出,目前的大型经济体中,没有任何一个国家的央行认真考虑是否推出自己的加密货币。然而,美联储、日本央行、加拿大央行、英国央行和欧洲央行均表示正在评估央行加密货币的利与弊。研究表明,央行领导人目前主要对于加密货币潜在的逃税和可能表示担心。[2018/4/18]
美国证券交易所:加密货币交易所没有透露是否对一些用户提供了优先服务 以及平台如何挑选加密货币:据华尔街日报,美国证券交易所今天发布了有关加密货币交易所存在不规范问题的公告。SEC在公告中表明,加密货币交易所存在非法运营的风险,这是因为他们没有透露如何优先考虑投资者的订单或如何选择在其平台交易何种加密货币。前SEC官员,现任由投资者支持的健康市场协会的执行董事Tyler Gellasch透露:“SEC不仅要管理产品,还要管理他们交易和交易的地点。”SEC没有在其声明中提及具体的加密货币交易所,但提醒投资者,监管机构对交易所的实际运作方式知之甚少,不知道它们是否为其中一些交易者提供了优先于其他交易者的服务。SEC表示,虽然其中一些平台声称采用严格的标准来挑选高质量的加密货币资产进行交易,但SEC并没有审查过这些标准。[2018/3/8]
芬兰政府因不知如何存放没收的比特币犯难:芬兰政府正为如何存放没收来的2000余个比特币而犯难。根据该国政府周二发布的指导方针,执法机构和人员不得持有没收的加密货币,执法人员不得将没收的加密货币存储在交易所里,必须要保持它们处于离线状态且不能在互联网上被访问。此外,该文件还指出,当局不能将比特币等加密货币视为货币,也不能作为支付手段。[2018/2/21]
标签:
区块链热门资讯
“我多次说过,人在哪儿,宣传思想工作的重点就在哪儿,网络空间已经成为人们生产生活的新空间,那就也应该成为我们党凝聚共识的新空间。” “当今世界,科学技术发展确实很快,可以说是突飞猛进、一日千里。我看了不少介绍世界科技发展的材料,一些新突破新趋势值得我们高度关注。
2021/1/27 17:37:32以太坊网络的拥堵问题由来已久,DeFi的热潮再次使Gas费价格飙升,1月初以太坊Gas价格甚至最高突破600 Gwei,以太坊EIP-1559提案被快速提上日程。目前代码已经基本全部完成,但是争议却甚嚣尘上,近期一些以太坊矿池甚至联合阻止EIP-1559的推出,市场情绪明显分为截然不同的两派。
2021/1/27 17:31:58NFT(Non-Fungible Token)是指非同质化代币,不可替换且不可分割,独一无二。区别于常见的同质化代币,例如BTC、ETH、BCH等,每个NFT都拥有与众不同的ID标识。因此,NFT可实现链下物理环境中诸多物品的价值对标,如不动产、艺术收藏品,同时,还能体现IP权益、游戏装备及认证信息等抽象物的价值。
2021/1/27 17:26:24作为加密数字资产市场的入场券,USDT一直备受争议。一方面,在价格波动巨大的加密数字资产市场,USDT以其价格的稳定而成为用户进行加密数字资产交易的重要媒介;另一方面,USDT又时常与贩、、网等黑产“纠缠不清”。
2021/1/27 17:26:14什么是 Blong Cash? Blong Cash 是建立在火币生态 Heco 链上的复合算法稳定币协议。通过此协议,可以动态调整令牌的供应,以满足稳定币 BOC 的稳定值。与其他项目不同,Blong Cash采用了一种名为“四无”模式,即没有预挖,没有保留,没有基石,没有团队共享来确保项目的公平启动。
2021/1/27 17:20:40在被美SEC起诉后,XRP加密货币的发行商Ripple Labs又被美国佛罗里达买主Tyler Toomey起诉。 原告指控Ripple Labs在没有施加任何限制的情况下向散户提供XRP,从而违反了《佛罗里达证券和投资者保护法》。 据悉,Ripple无法支付公司业务费用,迫使其在控制供应和流动性的同时尽可能地大量出售代币。
2021/1/27 16:48:30