火星链 火星链
Ctrl+D收藏火星链
首页 > LTC > 正文

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

作者:

时间:1900/1/1 0:00:00

作者:yudan@慢雾安全团队

背景

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

SushiMaker是什么

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

说说恒定乘积

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

Terra 2.0 社区已启动就有关如何分配 0.5% 应急资金提案的投票:6月9日消息,Terra 2.0 社区已启动就有关如何分配 0.5% 应急资金提案的投票,该提案建议将这部分资金分配给在 Terra Classic 上推出过符合市场需求的产品,包括产生了一定量的 TVL 和没有产生 TVL 的项目以及尚未推出过符合市场需求产品的项目,并提议向以上三类项目分别分配 250 万枚 LUNA、100 万枚 LUNA 和 150 万枚 LUNA。此外,该提案建议组件一个由部分 Terra 社区的长期成员组成的理事会监督分配工作。[2022/6/9 4:13:09]

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

IOTA代币持有者将投票决定无人认领的代币该如何处置:1月27日消息,IOTA代币持有者将投票决定无人认领的代币应该如何处置。投票选项有两种:1、用于支持和资助对IOTA社区生态系统至关重要的项目和计划,这些资金将完全由社区管理。2、从IOTA分类账中删除,总供应量将减少。

投票过程将分为三个阶段:提案公告;投票(七天);计票(10天)。投票结果将通过参与计数的每个节点以分散的方式生成和验证。每个节点都可以通过API终结点公开其当前和最终结果。

据此前消息,在去年的Chrysalis网络升级期间,IOTA基金会要求IOTA社区决定如何使用超过50个无人认领的IOTA代币。[2022/1/28 9:18:08]

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

美国空军和雷神公司正在研究如何利用DLT技术帮助指挥天空:金色财经报道,美国空军(USAF)持续进行的一系列区块链投资正在进入战斗管理系统领,其已与美国大型国防合约商雷神(Raytheon)签订了近50万美元的合同。该合同的标题是“描述DLT(分布式分类帐技术)在Air C2中的适用性和相关性”。合同的标题表明,雷神公司的先进技术研究人员将考虑DLT如何可以使指挥官密切注视天空以及飞行员。[2020/9/4]

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

攻击流程

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

币情观察室 | 全球经济萧条 如何抓住币圈投资机会:4月2日10:00,金色盘面邀请行情大V币业生做客金色财经《币情观察室》直播间,将分享《全球经济萧条 如何抓住币圈投资机会》,敬请关注,扫描下图二维码即可观看。[2020/4/2]

其中,bridgeFor函数的逻辑如下:

根据bridgeFor的逻辑,我们不难发现,如果没有手动设置过特定币种的bridge,那么默认的bridge是WETH,也就是说,在未设置bridge的情况下,默认是将手续费兑换成WETH。而DIGG这个币,就是正好没有通过setBridge设置对应的bridge的。

声音 | 罗玫:金融机构非常重视如何对加密货币进行计量:据数字金融资产研究中心微信公众号消息,清华经管数字金融资产研究中心主任罗玫称如何对加密数字货币进行计量是国际国内证券监管机构、税务和会计准则制定机构都非常重视的领域,国际会计准则和美国GAAP都没有对加密数字货币的会计计量和确认制定单独准则。建立新的财务报告规范需要会计准则制定委员会的参与,也需要和正在经历变化的加密数字货币的证券规范、以及税务规范同时融合更新。[2018/11/27]

但是这里还有一个问题,就是在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?

标签:IGGDIGETHDIGGJIGG币Digital FilesethnoDOGEDIGGER价格

LTC热门资讯
FRONT:热点丨以太坊黑暗森林中的“捕食者”

作者?|?AlexMenUskin以太坊的黑暗森林怪物并不是开玩笑的。这些Frontrunning的机器人可以分析它们从未在智能合约中使用过的智能合约调用和功能,以获取潜在利润.

1900/1/1 0:00:00
比特币:谷燕西:比特币是所有泡沫之母吗?

最近,美国银行首席投资战略家MichaelHartnett认为,比特币价格的最近的迅速上升比过去几十年中其它的资产泡沫的上升速度都要快.

1900/1/1 0:00:00
VOTE:BM发文解释离开EOS的原因:不希望创新受监管限制

EOS创始人、原Block.oneCTOBM今日在Hive上发文解释自己离开的原因。其表示,BTC、ETH、EOS都被视为脱离技术基本面的货币,都将被监管机构盯上,以至于完全丧失隐私.

1900/1/1 0:00:00
区块链:汽车领域的渐热竞赛:区块链应用

如今的汽车行业,新能源动力、自动驾驶,是众人皆知的风口。接下来,在这个无论市场规模还是投资潜力都是巨无霸的行业,足以形成新产业规模的热点,会有什么?区块链!车辆识别的整车厂动作福特和宝马两家汽车.

1900/1/1 0:00:00
区块链:玲听2021区块链跨年演讲丨微软大中华区副总裁邓贇:区块链助力产业互联

12月28日晚间,“我与无限——玲听2021区块链跨年演讲”在杭州大剧院重磅开启。微软大中华区副总裁,商业企业事业部总经理邓贇受邀出席并进行以《区块链助力产业互联》为主题的分享.

1900/1/1 0:00:00
以太坊:ETH进入通缩?EIP 1559正式进入初审,距离以太坊史上最大升级之一越来越近

以太坊开发人员已经开始审查网络费用定价的算法更改,这有可能导致以太坊总供应量减少。以太坊改进提案1559为网络设置了一种基础费用,该基础费用是根据网络是否拥塞而通过算法计算得出的,会根据情况相应.

1900/1/1 0:00:00