免责声明:金色财经所有资讯仅代表作者个人观点,不构成任何投资理财建议。请确保访问网址为(jinse.cn) 举报

    KyberSwap 被黑简单分析

    前言

    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. 由于错误的计算了 currentTick,导致兑换结束后池的更新出现问题

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

    核心问题函数分析

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

    再看

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

    jinse.cn 4
    好文章,需要你的鼓励
    jinse.cn 4
    好文章,需要你的鼓励
    参与评论
    0/140
    提交评论
    文章作者: / 责任编辑:

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

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

    金色财经 > 蛋蛋的区块链笔记 > KyberSwap 被黑简单分析
    • 寻求报道
    • 金色财经中国版App下载
      金色财经APP
      iOS & Android
    • 加入社群
      Telegram
    • 意见反馈
    • 返回顶部
    • 返回底部