KyberSwap 被黑简单分析

2023-11-25 211 其它文章

前言

KyberSwap 被黑的事情挺大的,被搞了45m,一开始是以为是4月份的那个问题,因为操纵痕迹上很像。但是仔细分析后发现不是。所以这里简单记录下方便回溯。

简单技术分析

TDLR;

核心问题:tick 操控导致的流动重复添加。原因为池本身的 reinvest计算导致tick的计算方式出了问题

分析样本:https://etherscan.io/tx/0x485e08dc2b6a4b3aeadcb89c3d18a37666dc7d9424961a2091d6b3696792f0f3

4月份问题 ref:https://100proof.org/kyberswap-post-mortem.html

攻击流程&原理分析

  1. 攻击者首先耗光了池的流动性,把流动性(价格)打到一边。

  2. KyberSwap Pool 区别于正常的 UniswapV3 Pool,创新性地把兑换产生的手续费计入流动性中,使手续费本身在兑换中也可以产生利息

  3. 基于第二点的问题, 攻击者基于第一点的情况进行小额反向兑换,但兑换不触发 cross tick,根据代码逻辑,流程如下图: 

  4. KyberSwap 被黑简单分析

  5. 由于错误的计算了 currentTick,导致兑换结束后池的更新出现问题

  6. KyberSwap 被黑简单分析

  7. 通过结合具体的 trace 可以验证我们的想法

KyberSwap 被黑简单分析

核心问题函数分析

核心的问题在于 computeSwapStep 函数中,直接看图 

KyberSwap 被黑简单分析

再看

KyberSwap 被黑简单分析

最后这个得出来的价格再通过 getTickAtSqrtRatio 函数一算,tick就完全错了。

币币情登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。

交易平台最新公告查看更多>
成交额排行榜
  • 交易所
  • 币种
排名 交易所 成交额
1 币安网币安网 ¥8,141.51亿
2 欧易OKX欧易OKX ¥3,504.73亿
3 HTXHTX ¥620.43亿
4 CoinbaseCoinbase ¥157.10亿
5 芝麻开门芝麻开门 ¥2,385.81亿
6 BitgetBitget ¥2,378.40亿
7 BybitBybit ¥2,759.70亿
8 Crypto.comCrypto.com ¥344.79亿
9 BitfinexBitfinex ¥15.20亿
10 抹茶抹茶 ¥2,190.11亿