当前位置:首页区块链如何用常数积来遮住?苏轼第二次进攻浅析

如何用常数积来遮住?苏轼第二次进攻浅析

SushiSwap再次遭遇攻击,此次问题为DIGG-WBTC交易对的手续费被攻击者通过特殊的手段薅走。

作者:于丹@慢雾安全团队

背景

2021年1月27日,根据慢雾区情报,苏轼再次遭到袭击。这一次,问题是digg-wbtc事务对的处理费用是由攻击者通过特殊手段收取的。接到情报后,慢雾安保小组立即介入相关事件分析。以下是这次袭击的细节。

寿司师是什么

Sushimaker是sushiswap协议的重要组成部分。用于收取每对掉期交易的手续费。通过设置每个代币的路由,将不同交易对的服务费最终转换成sushi代币并反馈给sushi代币持有者。这个过程发生在寿司Maker的合同上。

谈常数积

常数积的公式很简单。在不收取手续费的情况下,常数积的公式为

如何用常数积来遮住?苏轼第二次进攻浅析

也就是说,每笔交易都遵循这个公式,交易前后K值保持不变。在交换过程中,由于K的值保持不变,所以公式是这样的

如何用常数积来遮住?苏轼第二次进攻浅析1

其中X表示要出售的代币,Y表示要购买的代币,那么每次可以交换的代币数量将如下所示(具体的派生过程将不演示:D)

如何用常数积来遮住?苏轼第二次进攻浅析2

从公式中可以看出,输出代币y的交换量上限取决于y代币的数量,而与X代币的数量无关。反之,如果要卖出的X代币数量大,而Y代币数量少,那么大量的X代币只能换成少量的Y代币代币,交换价格会与正常交易价格有很大的偏离,这就是所谓的滑动点,也是这次攻击的关键。

攻击过程

2020年11月30日,由于寿司制造者的问题,寿司店发生了一起攻击事件(详见:小伯达寿司店攻击始末简析)。此攻击与第一次攻击类似,但过程不同。与旧合约相比,在新合约中,服务费会通过bridgefor功能为不同交易对中的代币找到具体的交换路径,然后进行交换。

如何用常数积来遮住?苏轼第二次进攻浅析3

bridgefor函数的逻辑如下:

如何用常数积来遮住?苏轼第二次进攻浅析4

根据bridgefor的逻辑不难发现,如果没有手动设置特定货币的桥,则默认桥为wETH。也就是说,如果没有设置过桥,默认情况是将手续费转换为湿费。Digg没有通过立根桥设置相应的桥梁。

如何用常数积来遮住?苏轼第二次进攻浅析5

但这里还有一个问题,就是在交换过程中,如果交易对不存在,交换过程就会失败。在这种攻击中,digg-wet一开始并不存在,因此攻击者提前创建digg-wet事务对,然后添加少量的流动性。此时,如果有手续费交换,根据上述不变产品的特点,由于迪格威思的流动性较低,即迪格威思的手续费上限很小,而在寿司店兑换的手续费金额相对较大,这种交换将导致一个巨大的滑动点。交换的过程将使digg wETH到digg wETH的交易价格上涨,digg wETH的digg服务费收入将全部归digg wETH交易。通过观察digg-wETH交易对的流动性,我们发现当流动性最高时,2800美元以下的流动性最高。这一结果也可以通过公式的推导得到验证。

如何用常数积来遮住?苏轼第二次进攻浅析6

攻击者在sushimaker中完成交易费用转换后,digg-wETH交易对中wETH到digg的价格被抬高,导致少量的wETH可以转换成大量的digg,而digg的金额恰恰是digg-wbtc交易对交易费用收入的大部分。

如何用常数积来遮住?苏轼第二次进攻浅析7

总结

这种攻击与sushiswap的第一次攻击相似,它操纵交易对的交换价格来产生利润。但过程不同。第一次攻击是因为攻击者利用LP token本身和其他token创建新的交易对,并通过操纵初始流动性操纵新交易对的价格来获利。然而,这种攻击利用了Digg无法控制攻击者是否创建交易对和控制初始交易价格的优势,导致了费用交换过程中的巨大滑动点。攻击者只需使用少量的Digg和wETH来提供初始流动性即可获得巨额利润。

相关参考链接如下:

寿司制作收费交易:

https://ETHerscan.io/tx/0x90fb0c9976361f537330a5617a404045ffb3fef5972cf67b531386014eeae7a9

攻击者套利交易:

https://ETHerscan.io/tx/0x0af5a6d2d8b49f68dcfd4599a0e767450e76e08a5aeba9b3d534a60d308e60b‌

Digg wETH流动性详情:

https://www.sushiswap.fi/pair/0xf41e354eb138b328d56957b36b7f814826708724‌

寿司第一次攻击的细节:

https://mp.weixin.qq.com/s/-Vp9bPSqxE0yw2hk青奥会

温馨提示:

文章标题:如何用常数积来遮住?苏轼第二次进攻浅析

文章链接:https://www.btchangqing.cn/186338.html

更新时间:2021年01月28日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链

从eth2.0看POS机制下的四个问题

2021-1-28 14:54:03

区块链

了解plasma:Boca上的eth 2.0

2021-1-28 15:02:05

5 条回复 A文章作者 M管理员
  1. BlockNews

    大佬出报告,牛逼吹起来 让后出货》韭菜接嘛?

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索