背景
2021年1月27日,据慢雾区情报,SushiSwap再次遭遇攻击,此次问题为DIGG-WBTC交易对的手续费被攻击者通过特殊的手段薅走。慢雾安全团队在收到情报后立马介入相关事件的分析工作,以下为攻击相关细节。
SushiMaker是什么
SushiMaker是SushiSwap协议中的一个重要的组件,其用于收集SushiSwap每个交易对的手续费,并通过设置每个代币的路由,将不同交易对的手续费最终转换成sushi代币,回馈给sushi代币的持有者。这个过程就是发生在SushiMaker合约上。
说说恒定乘积
恒定乘积的公式很简单,在不计算手续费的情况下,恒定乘积的公式为
亚马逊Prime播放的新纪录片展示比特币如何改变非洲:关于南非比特币先驱的新纪录片《非洲银行业:比特币革命》正在亚马逊Prime上推出。一同发布的还有一份研究报告,该报告介绍了有关非洲加密货币的全面和最新信息。(Decrypt)[2020/5/20]
也就是说每次兑换,其实都是遵循这个公式,及交易前后K值不变,在兑换的过程中,由于要保持K值不变,公式的形式会是这个样子
其中X代表卖掉的代币,Y代表要购买的代币,那么每次能兑换到的代币数量会是这个样子(具体的推导过程就不演示了:D)
从公式上可以看到,当输出代币Y的兑换数量上限取决于Y代币的数量,而和X代币数量的大小无关,反过来说,如果要卖掉的X代币数量很大,但是Y代币的数量很小,那么就会造成大量的X代币只能兑换出少量的Y代币,而这个兑换价格相比正常的交易价格会偏离很多,这就是所谓的滑点,是本次攻击中的关键。
动态 | 200余名全球执法人员参加国际犯罪会议,探讨如何制止加密犯罪:据TheNextWeb报道,本周,根据澳大利亚联邦警察(AFP)的声明,超过200名来自世界各地的执法人员将出席在布里斯班举行的国际犯罪会议,共同探讨寻找加密犯罪的方法。AFP代理局长Justine Gough表示,加密货币和加密通信等技术的进步已经改变了罪犯获取和隐藏资产的方式,抓住并消除犯罪阻止他们获利,是打击有组织的犯罪网络最有效的方法之一。[2019/11/14]
攻击流程
2020年11月30日,SushiSwap就曾因为SushiMaker的问题出现过一次攻击(详解参阅:以小博大,简析SushiSwap攻击事件始末),本次攻击和第一次攻击相似,但流程上有区别。相较于旧合约,在新的合约中,手续费在兑换的过程中会通过bridgeFor函数为不同交易对中的代币寻找特定的兑换路由,然后进行兑换。
动态 | Cryptopia清算跟进:总资产为170万美元 清算人需向法院咨询如何支付欠款:据rnz消息,Cryptopia清算公司Grant Thornton需要就如何现款支付客户欠款向法庭寻求法律咨询,因为世界上还未有任何法律先例。来自Grant Thornton的清算人David Ruscoe和David Ruscoe发布报告称,Cryptopia目前欠款超过400万美元,而总资产为170万美元。本周,法院下达命令,允许他们使用该公司持有的比特币为清算提供资金。 据此前消息,Grant Thornton发布清算报告显示,Cryptopia欠69名无担保债权人债务超过210万美元,有担保债权人的债务超过140万美元。此外,该公司欠员工未付工资、假期工资以及无担保债务近60万美元,预计无担保债权人的数量将会增加。在今年1月份遭黑客入侵损失1600万美元后,Cryptopia目前已申请美国破产保护。[2019/6/1]
其中,brdigeFor函数的逻辑如下:
动态 | 人民网:区块链与实业结合应注意如何界定算法和物理设备权责体系:今日人民网发文表示,区块链与实业的结合与我国“数字化”的趋势一致,这一融合过程需要注意三个问题。一是算法和物理设备权责体系如何界定;二是智能制造标准制定思路是否应该转变;三是5G会给边缘计算、区块链和物联网带来什么冲击。[2018/8/24]
根据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:?慢雾安全团队
链闻消息,OKEx宣布将上线波卡生态中的热门项目MXC、POLS和PHA。根据OKEx官方发布的公告,OKEx将于1月27日14点(HKT)开放MXC/USDT、POLS/USDT、PHA/US.
亲爱的大币网(Dcoin)用户:MeetPle(MPT)将于1月31日上线大币网(Dcoin),具体时间安排如下.
自2020年10月下旬,比特币进入疯涨阶段,2021年1月2日和1月8日,比特币先后站上30000美元和40000美元.
StaFi将于近日正式上线旨在解决ETH2.0Staking质押流动性产品rETH,现开启OriginalValidator招募计划.
乔·拜登成为美国新任财政部长珍妮特·耶伦的选择明确了她对比特币和加密货币的立场。这是她在参议院听证会上发表讲话时所说的,当时她说加密货币主要用于非法融资.
马拉松专利集团周一宣布,以价值1.5亿美元的价格购买了4,813枚比特币。该公司加入了越来越多的持有比特币的上市公司名单.