風險提示:防範以"虛擬貨幣""區塊鏈"名義進行非法集資的風險。——銀保監會等五部門
資訊
發現
搜索
登錄
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
查看行情
從技術角度解析:為什麼通縮機制的代幣易受攻擊
Eocene
特邀专栏作者
2023-03-12 02:42
本文約1422字,閱讀全文需要約3分鐘
本文將討論並分析通縮代幣受到攻擊的原因,並給出相應的防禦方案。

概述

一級標題

概述

在區塊鏈上具有通縮機制的代幣最近經常受到攻擊。本文將討論並分析通縮機制代幣受到攻擊的原因,並給出相應的防禦方案。

一級標題

一級標題

在代幣中實現通縮機制通常有兩種方式,一種是燃燒機制,另一種是反射機制。下面我們將分析這兩種實現方式以及可能存在的問題。

一級標題

燃燒機制

通常,具有燃燒機制的代幣將在其_transfer 函數中實現燃燒的邏輯。有時候會存在發送者承擔手續費的情況。在這種情況下,接收方收到的代幣數量不會發生變化,但發送方需要支付更多代幣,因為其需要承擔手續費。下面是一個簡單的例子:

然後我們討論這種情況下可能存在的風險。

如果單看代幣合約,我們會發現這種寫法其實沒有什麼問題,但是區塊鏈中有很多複雜的情況,需要我們考慮很多方面。WDOGE) :

其中,在Uniswap 中,有一個函數skim,它會將流動性池中兩種代幣的餘額和儲備金的差值轉移給調用方,以平衡餘額和儲備金:

一個真實的攻擊案例,winner doge(

一級標題

一級標題

在WDOGE 合約的_transfer函數中,當block.timestamp > closingTime時,進入else 循環。在代碼第21 行中,轉賬金額從發送方的餘額中扣除,在代碼第31 行中,發送方又被燃燒了tokensToBurn 數量的代幣。攻擊者利用這種手續費的機制,通過上述的攻擊方式竊取流動性池中的所有價值代幣(WBNB)。

一級標題

反射機制

在反射機制中,用戶每次交易都會收取手續費,用於獎勵持有代幣的用戶,但不會觸發轉賬,只是單純修改一個係數。

在這個機制中,用戶有兩種類型的代幣數量,tAmount 和rAmount。 tAmount 為實際代幣數量,rAmount 為反映後的代幣數量,比率為tTotal / rTotal,一般的代碼實現如下:

反射機制的代幣中一般有一個叫做deliver的函數,會銷毀調用者的代幣,降低rTotal 的值,所以比率會增加,其他用戶反射後的代幣數量也會增加:

攻擊者註意到這個函數,並用它來攻擊相應的Uniswap 的流動性池。BEVO):

那他該如何進行利用呢?同樣從Uniswap 的skim 函數開始:

Uniswap 中reserve 是儲備金,與token.balanceOf(address(this))不同。

攻擊者先調用deliver 函數銷毀自己的代幣,導致rTotal 的值減少,比率隨之增加,所以反射後的代幣的值也會增加,token.balanceOf(address(this))也會相應變大,與reserve 的值出現了差距。

一個真實的攻擊案例,BEVO NFT Art Token(SHEEP):

而當代幣合約中存在burn 函數時,存在了另外一種相似的攻擊手法:

總結

總結

總結

一級標題

At Eocene Research, we provide the insights of intentions and security behind everything you know or don’t know of blockchain, and empower every individual and organization to answer complex questions we hadn’t even dreamed of back then.

了解更多:Website | Medium | Twitter

技術
AI總結
返回頂部
本文將討論並分析通縮代幣受到攻擊的原因,並給出相應的防禦方案。
作者文庫
Eocene
下載Odaily星球日報app
讓一部分人先讀懂 Web3.0
IOS
Android