hao86下載站:值得大家信賴的游戲下載站!

首頁 > 區(qū)塊鏈 > 又現(xiàn)價(jià)格操縱 —— Arbitrum鏈上WooPPV2合約項(xiàng)目被攻擊分析

又現(xiàn)價(jià)格操縱 —— Arbitrum鏈上WooPPV2合約項(xiàng)目被攻擊分析

時(shí)間:2024-03-07 10:43:09
來源:hao86下載
區(qū)塊鏈

【#區(qū)塊鏈# #又現(xiàn)價(jià)格操縱 —— Arbitrum鏈上WooPPV2合約項(xiàng)目被攻擊分析#】

報(bào)道:

來源:Beosin

北京時(shí)間2024年3月5日深夜,據(jù)Beosin Trace平臺顯示,Arbitrum鏈上的WooPPV2合約項(xiàng)目受到價(jià)格操控攻擊,造成約850萬美元的損失。黑客利用閃電貸借出USDC.e和Woo代幣,然后通過WooPPV2合約進(jìn)行頻繁的代幣兌換。由于WooPPV2合約的價(jià)格計(jì)算存在缺陷,黑客能夠操控兌換過程中的價(jià)格,導(dǎo)致大量Woo代幣被盜。Beosin安全團(tuán)隊(duì)第一時(shí)間對本次事件進(jìn)行了分析。

漏洞分析

WooPPV2合約中存在一個(gè)swap函數(shù),用戶可以調(diào)用該函數(shù)進(jìn)行代幣兌換,這里主要是USDC.e和Woo兩者的兌換(下文均按USDC.e與Woo之間的兌換來分析),其中函數(shù)中的quoteToken變量表示的就是USDC.e。

_sellQuote函數(shù)和_sellBase函數(shù)邏輯差不多,都是根據(jù)價(jià)格計(jì)算兌換的代幣數(shù)量,再將代幣發(fā)送給調(diào)用者。_sellQuote是當(dāng)調(diào)用者用USDC.e來兌換Woo代幣時(shí)調(diào)用的函數(shù),其中主要的函數(shù)是state以及_calcBaseAmountSellQuote,state是用于返回保存Woo價(jià)格的結(jié)構(gòu)體,_calcBaseAmountSellQuote是用戶計(jì)算兌換數(shù)量以及新價(jià)格的函數(shù)。

接下來我們看_calcBaseAmountSellQuote函數(shù)實(shí)現(xiàn)邏輯,baseAmount為計(jì)算出來的兌換數(shù)量,其中主要邏輯是USDC.e數(shù)量除以Woo的價(jià)格,得到能兌換出的Woo的數(shù)量,接下來根據(jù)當(dāng)前價(jià)格以及兌換數(shù)量計(jì)算出兌換之后的新價(jià)格。

_sellBase函數(shù)與_sellQuote函數(shù)相同,只是_calcQuoteAmountSellBase函數(shù)有些許不同,主要邏輯是Woo數(shù)量乘以Woo的價(jià)格,得到能兌換出的USDC.e的數(shù)量。

根據(jù)兌換邏輯我們能發(fā)現(xiàn)一個(gè)問題,這種兌換數(shù)量的計(jì)算邏輯與Uniswap等傳統(tǒng)swap的乘積恒定模型不同,這種模式是直接根據(jù)價(jià)格做乘除來計(jì)算數(shù)量,使得兌換過程不存在滑點(diǎn),但價(jià)格又會隨著兌換而變化。如果調(diào)用者精心計(jì)算,就能將里面的代幣套取出來。

舉個(gè)例子:

如果池子里面初始存在1000個(gè)A代幣和1000個(gè)B代幣,B代幣價(jià)格為1。那么如果使用500個(gè)A代幣,便能兌換出500個(gè)B代幣,此時(shí)池子變?yōu)?500:500,B代幣價(jià)格將上漲,例如變?yōu)?。接下來,使用兌換出的500個(gè)B代幣,將兌換出1000個(gè)A代幣,最終池子變?yōu)?00:1000,憑空套出500A代幣。

此次事件,攻擊者便是使用了該安全問題,我們來看看攻擊者是如何進(jìn)行攻擊的。

攻擊流程

本次事件攻擊者通過多次相同的手法進(jìn)行攻擊,這里以

0xe80a16678b5008d5be1484ec6e9e77dc6307632030553405863ffb38c1f94266這筆交易為例。

1.攻擊者通過閃電貸借出1000多萬枚USDC.e以及272萬枚Woo代幣。

2.接下來,攻擊者分三次使用10萬枚USDC.e兌換Woo代幣,此時(shí)可以看到Woo價(jià)格還處于正常價(jià)格,攻擊者目前持有800多萬枚Woo。

3.緊接著,攻擊者直接使用800多萬枚Woo代幣去兌換USDC.e,由于上述問題,此時(shí)800多萬枚Woo是全部按照正常價(jià)格進(jìn)行兌換的,兌換了200多萬枚USDC.e,并且根據(jù)上述公式計(jì)算出此時(shí)Woo的價(jià)格為7,縮小了近1000萬倍。

4.最后,由于Woo代幣價(jià)格極小,導(dǎo)致攻擊者使用極少的USDC.e就將800多萬枚Woo代幣兌換出來,最后歸還閃電貸離場。

資金追蹤

黑客攻擊后,攻擊者將200枚ETH通過跨鏈橋轉(zhuǎn)至以太坊鏈上的地址上,其余2000多枚ETH保存在Arbitrum鏈的地址上,截止發(fā)稿時(shí),資金均未移動。

鑒于此次在Arbitrum鏈上發(fā)生的價(jià)格操控攻擊事件,我們必須認(rèn)識到在虛擬資產(chǎn)領(lǐng)域中安全風(fēng)險(xiǎn)的重要性。

小編推薦下載

相關(guān)文章

更多>>

資訊排行

同類軟件下載