【#區(qū)塊鏈# #KyberSwap被黑簡單分析#】
KyberSwap 被黑的事情挺大的,被搞了45m,一開始是以為是4月份的那個問題,因為操縱痕跡上很像。但是仔細分析后發(fā)現(xiàn)不是。所以這里簡單記錄下方便回溯。
核心問題:tick 操控導致的流動重復添加。原因為池本身的 reinvest計算導致tick的計算方式出了問題
分析樣本:https://etherscan.io/tx/0x485e08dc2b6a4b3aeadcb89c3d18a37666dc7d9424961a2091d6b3696792f0f3
4月份問題 ref:https://100proof.org/kyberswap-post-mortem.html
攻擊者首先耗光了池的流動性,把流動性(價格)打到一邊。
KyberSwap Pool 區(qū)別于正常的 UniswapV3 Pool,創(chuàng)新性地把兌換產(chǎn)生的手續(xù)費計入流動性中,使手續(xù)費本身在兌換中也可以產(chǎn)生利息
基于第二點的問題, 攻擊者基于第一點的情況進行小額反向兌換,但兌換不觸發(fā) cross tick,根據(jù)代碼邏輯,流程如下圖:?
由于錯誤的計算了 currentTick,導致兌換結(jié)束后池的更新出現(xiàn)問題
通過結(jié)合具體的 trace 可以驗證我們的想法
核心的問題在于?computeSwapStep
?函數(shù)中,直接看圖?
再看
最后這個得出來的價格再通過?getTickAtSqrtRatio
?函數(shù)一算,tick就完全錯了。
相關(guān)推薦
相關(guān)文章
更多>>資訊排行
同類軟件下載
熱門標簽