By:yudan@慢雾安全团队2020年11月30日,据慢雾区情报,以太坊AMM代币兑换协议SushiSwap遭遇攻击,损失约1.5万美元。慢雾安全团队第一时间介入分析,并以简讯的形式分享,供大家参考。背景提要
SushiSwap项目中SushiMaker合约的作用是用于存放SushiSwap中每个交易对产生的手续费。其中手续费会以SLP(流动性证明)的形式存放在合约中。SushiMaker合约中有一个convert函数,用于将从每一个交易对中收集的手续费通过调用各自交易对的burn函数获得对应的代币,然后将这些代币转换成sushi代币,添加到SushiBar合约中,为SushiBar中抵押sushi代币的用户增加收益,而此次的问题就出在SushiMaker合约。攻击流程
1、攻击者选中SushiSwap中的一个交易对,如USDT/WETH,然后添加流动性获得对应的SLP(USDT/WETH流动性证明,以下简称SLP),使用获得的SLP和另外的少量WETH创建一个新的SushiSwap交易对,然后得到新代币池的SLP1(WETH/SLP(USDT/WETH)流动性证明,以下简称SLP1)转入SushiMaker合约中。2、调用SushiSwap的convert函数,传入的token0为第一步获得的SLP,token1为WETH。调用convert函数后,SushiMaker合约会调用token0和token1构成的代币池的burn函数燃烧SLP1,燃烧掉攻击者在第一步中打入SushiMaker合约中的SLP1,得到WETH和SLP。
3、SushiMaker合约的convert函数紧接着会调用内部的_toWETH函数将burn获得的代币转换成WETH,由于在第二步SushiMaker合约通过burn获得了SLP和WETH。其中WETH无需转换,只需转换SLP。此时,转换将会通过调用SLP/WETH交易对进行转换,也就是攻击者在第一步创建的交易对。由于SushiMaker合约在转换时会将所有的balanceOf(token0)转换成WETH,这里传入的token0为SLP,于是合约将合约中所有的SLP通过SLP/WETH交易对进行兑换(兑换的SLP包含USDT/WETH交易对每次swap产生的收益和在第二步合约通过burn函数获得的SLP)。而SLP/WETH代币池是攻击者创建的,攻击者只需在初始化的时候添加少量的WETH,就可以在SushiMaker交易对进行兑换的过程中,用少量的WETH换取SushiMaker合约中对应交易对的所有的SLP。
4、攻击者使用burn函数在SLP/WETH交易对中燃烧掉自己的SLP1,拿到大量的SLP和小量的WETH,并继续对其他流动性池重复该过程,持续获利。总结
攻击者使用SLP和WETH创建一个新的代币池,使用新代币池的SLP1在SushiMaker中进行convert,使用少量的SLP将SushiMaker合约中的所有SLP转到自己创建的代币池中,即将对应交易对一段时间内的所有手续费收入囊中。并对其他交易对重复这个过程,持续获利。
标签:SLPUSHSUSHISHIslp币怎么样brt币价格likerushbiSushiBytesshib币价格今日行情美元
编者按:本文来自链闻ChainNews,撰文:RyanWatkins,Messari研究分析师,翻译:卢江飞,星球日报经授权发布.
在链下世界中,“数字身份”指各个平台搜集的用户网上行为数据。比如用户的搜索记录、社交媒体记录、交易记录、用户名和密码、电话通信记录、社保卡号、生日、信贷记录以及医疗记录等各种重要的数据都会在网上.
原地址:https://cointelegraph.com/ 文:AndrewThurman编译:北墨合成资产是去中心化金融(DeFi)最有前景的用例之一.
灰度再次将矛头指向黄金。12月1日,灰度决定第二次在美国所有主要电视网络上投放反黄金广告“DropGold”.
北京时间12月1日晚8点左右,以太坊2.0信标链的创世区块终于诞生,阶段0信标链正式上线。这标志着以太坊正式从PoW的共识机制向PoS的共识机制转变.
近期,PlusToken案二审刑事裁定书终于公布。据裁定书中显示,执法部门自该大案中共查获了194775枚BTC、833083枚ETH、140万枚LTC、2760万枚EOS、74,167枚D.