IGG:如何通过恒定乘积黑掉SushiSwap?简析SushiSwap第二次被攻击始末

By:yudan@慢雾安全团队背景

2021年1月27日,据慢雾区情报,SushiSwap再次遭遇攻击,此次问题为DIGG-WBTC交易对的手续费被攻击者通过特殊的手段薅走。慢雾安全团队在收到情报后立马介入相关事件的分析工作,以下为攻击相关细节。SushiMaker是什么

SushiMaker是SushiSwap协议中的一个重要的组件,其用于收集SushiSwap每个交易对的手续费,并通过设置每个代币的路由,将不同交易对的手续费最终转换成sushi代币,回馈给sushi代币的持有者。这个过程就是发生在SushiMaker合约上。说说恒定乘积

恒定乘积的公式很简单,在不计算手续费的情况下,恒定乘积的公式为

萨尔瓦多居民仍对如何使用比特币和Chivo钱包感到困惑:11月27日消息,萨尔瓦多政府此前通过Chivo钱包向当地居民发放了价值30美元的比特币,两个月后,许多人仍然对如何使用比特币和该应用感到困惑,他们在花掉或兑现比特币后,已经完全放弃使用Chivo。其他人则表示,他们仍在坐等价格上涨。30岁的机修工Luis Mauricio表示:“Chivo还不能完全运作,但我希望随着时间的推移,它能得到修复,这会让人们对它的使用更有信心。”他补充说,自己在周末使用Chivo ATM机时也遇到了问题。

此前消息,数百名萨尔瓦多人10月底表示,有黑客用其身份证号码打开了Chivo钱包,以获得政府提供的30美元比特币奖励。(Decrypt)[2021/11/28 12:36:42]

Curve社区讨论如何分配Synthetix跨资产交易费:根据YFI创始人Andre Cronje此前发布的链接,在Curve用900万USDT兑换895.3万枚sUSD,随后利用这些sUSD在Synthetix交易所完成交易,获得6689.94枚sETH。有社区成员指出,26859美元的费用收入将分配给Synthetix(SNX)质押者。

Curve团队成员向社区征求意见,Curve跨资产互换将Synthetix作为桥梁,Synthetix将小部分交易费返给Curve,如何分配这些费用?其中列出四个选项:veCRV持有者、LP、两者都分配、两者都不分配。[2021/1/21 16:41:10]

也就是说每次兑换,其实都是遵循这个公式,及交易前后K值不变,在兑换的过程中,由于要保持K值不变,公式的形式会是这个样子

币情观察室 | 如何从小白蜕变成合格的交易者:4月2日11:00,金色盘面邀请行情大V李明成做客金色财经《币情观察室》直播间,将分享《如何从小白蜕变成合格的交易者》,敬请关注,扫描下图二维码即可观看。[2020/4/2]

其中X代表卖掉的代币,Y代表要购买的代币,那么每次能兑换到的代币数量会是这个样子(具体的推导过程就不演示了:D)

从公式上可以看到,当输出代币Y的兑换数量上限取决于Y代币的数量,而和X代币数量的大小无关,反过来说,如果要卖掉的X代币数量很大,但是Y代币的数量很小,那么就会造成大量的X代币只能兑换出少量的Y代币,而这个兑换价格相比正常的交易价格会偏离很多,这就是所谓的滑点,是本次攻击中的关键。攻击流程

声音 | Circle首席执行官:加密和区块链产业是对公民社会最终如何运作基础的再设计:据Cointelegraph消息,Circle首席执行官Jeremy Allaire在世界银行集团和国际货币基金组织(IMF)2019年春季会议上表示,加密和区块链产业是对公民社会最终如何运作的基础根本性的重新设计。Allaire认为,加密和区块链产业不仅关乎数字支付,还关乎一种新的基础设施,用于记录重要信息,并为构建解决方案提供一个更加去中心化、更具弹性的基础。[2019/4/12]

2020年11月30日,SushiSwap就曾因为SushiMaker的问题出现过一次攻击(详解参阅:以小博大,简析SushiSwap攻击事件始末),本次攻击和第一次攻击相似,但流程上有区别。相较于旧合约,在新的合约中,手续费在兑换的过程中会通过bridgeFor函数为不同交易对中的代币寻找特定的兑换路由,然后进行兑换。

在美国众议院听证会乔治城大学法学教授表示:监管的重点应该在于数字代币如何被对待:在美国众议院金融服务委员会《检查加密货币和ICO市场》的听证会上,乔治城大学法学教授Chris Brummer博士表示,ICO将会成为区块链行业的主要融资方式,但监管的重点应该在于数字代币如何被对待,以及系统如何被监管。他还表示,许多ICO欺诈非常明显,需要监管机构介入,更新法律法规,并且提供ICO白皮书指导。[2018/3/14]

其中,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/0x0af5a6d2d8b49f68dcfd4599a0e767450e76e08a5aeba9b3d534a604d308e60bDIGG-WETH流动性详情:https://www.sushiswap.fi/pair/0xf41e354eb138b328d56957b36b7f814826708724Sushi第一次被攻击详解:https://mp.weixin.qq.com/s/-Vp9bPSqxE0yw2hk_yogFw

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

FILSUSHI:SushiSwap的蓝筹逆袭

编者按:本文来自IOSG,Odaily星球日报经授权转载。Sushiswap的潜力:相较Uniswap,Sushiswap因为早期的公平启动分发拥有更强大的社区基础支持.

[0:0ms0-1:25ms