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

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

慢雾科技

刚刚

12

背景

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

SushiMaker是什么

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

说说恒定乘积

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

直播|条子哥 > Chainlink如何在一年内将生态扩大了400%?:金色财经 · 直播主办的《 Focus 价值50》深度解析 6 大TOP50 项目,白话分享,刷新共识!6月16日16:30准时开播,本期Chainlink中国区负责人 条子哥将在直播间聊聊“Chainlink如何在一年内将生态扩大了400%?”,该项目刚刚被当选世界经济论坛技术先锋,感兴趣的朋友扫码移步收听![2020/6/16]

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

掌柜调查署 | 竞争之下平台币会如何发展?:4月14日16:00,AAX交易所CEO Thor Chan将携带新上线的平台通证AAB做客金色财经掌柜调查署,一起来看竞争之下,平台币会如何发展。更多详情点击原文链接查看。[2020/4/14]

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

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

动态 | 各国代表在FATF开会讨论如何监管虚拟资产和虚拟资产服务提供商:金色财经报道,据FATF官网消息,1月9日,各国主管开会讨论了如何监督和管理虚拟资产和虚拟资产服务提供商(VASP)。自金融行动特别工作组(FATF)在2019年6月敲定这些新措施以来,这次会议是主管们首次有机会讨论如何实施这些新措施。 论坛讨论了三个主要领域:1.迄今为止,从那些已经建立VASP监督制度并已经开始监督VASP的国家吸取的经验教训。2.起草VASP法律法规时的常见问题。3.管理者有效监管VASP所需的工具、技能、程序和技术。这次会议确定了需要采取进一步行动的若干领域。这些问题将在FATF全体会议和将于2020年5月举行的监督机构论坛的会议上进一步讨论。据此前报道,2019年6月22日,FATF官网发布《基于风险的角度:监管数字资产和数字资产服务商的章程指南》,该指南将帮助各国和虚拟资产服务提供商了解其反和反恐融资义务,并有效实施FATF适用于该行业的要求。[2020/1/11]

攻击流程

新华网分析:区块链如何带来个人数据保护“革命”:新华网今晚发表文章《区块链如何带来个人数据保护“革命”》,文章表示大数据时代,个人的数据被认为是黄金般珍贵。个人数据泄漏令人担忧,但绝大部分人不可能因为害怕数据被收集而切断与互联网的联系,而现阶段有责任保管个人信息的企业、学校、酒店、社交网站等往往担责不力。专家们认为,区块链技术作为一种带有加密、信任、点对点、难篡改等特征的“中间件”,有望解决这个难题。

区块链技术的出现令个人数据掌控权从互联网公司转移到用户自己手中,使人人掌控自己的个人数据成为可能。通过它,用户个人数据可以与个人数字身份证相关联,用户可以选择数字身份证是匿名、化名或公开,还可以随时随地从任何设备访问区块链应用平台,控制他们的互联网个人数据。[2018/4/18]

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

坦桑尼亚银行正在研究如何管理数字货币:随着坦桑尼亚人对数字货币投资的增加,坦桑尼亚银行(BoT)正在研究如何管理新现象。BoT国家支付系统官员Bernard Dadi称,数字货币概念目前仍是新的,全球各地的中央银行仍在研究应对这项技术的对策。数字货币可供任何人使用,这使得监管变得更加困难。[2018/3/8]

其中,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@慢雾安全团队

DeFi

SushiSwap

本文来源:

慢雾科技

文章作者:慢雾安全团队

我要纠错

声明:本文由入驻金色财经的作者撰写,观点仅代表作者本人,绝不代表金色财经赞同其观点或证实其描述。

提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

金色财经>区块链>如何通过恒定乘积黑掉SushiSwap?简析SushiSwap第二次被攻击始末

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

银河链

莱特币最新价格SEC批准比特币ETF的五个原因

如果总统拜登提名加里·根斯勒领导美国证券交易委员会的任命得到确认,那么Gensler应该迅速采取行动,使该机构的工作人员批准比特币交易所交易基金,这表明美国不仅了解加密货币,而且还希望保护投资者.

[0:15ms0-1:563ms