以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads
首頁 > 比特幣 > Info

TAL:通縮代幣相關安全問題 教你如何完美避坑

Author:

Time:1900/1/1 0:00:00

近期Beosin安全團隊研究發現,通縮代幣引起的安全事件依然頻發,造成眾多項目方資金的損失,因此,Beosin安全團隊準備了這篇詳解通縮代幣的文章,與大家分享。

本文將對通縮代幣與pair結合過程中容易出現的問題以及歷史發生的真實通縮代幣安全事件兩個方面進行介紹,通過本文,我們將徹底搞清楚通縮代幣是什么意思以及通縮代幣發生安全問題所涉及的原理,使我們在之后的項目中避坑。

過程詳情圖

以太坊自合并以來供應量實現通縮超5900枚ETH:金色財經報道,據Ultrasound.money數據顯示,自2022年9月15日以太坊完成合并以來,以太坊供應量實現通縮,減少約5913.25枚ETH。[2022/11/15 13:06:32]

銷毀問題

該問題主要出現在使用“映射”機制的通縮代幣中,這種代幣的機制是存在兩種代幣余額存儲變量,分別為tOwned和rOwned,而tOwned存儲的是實際代幣數量,rOwned存儲的是通過currentRate變量放大映射之后的值。

rOwned的作用是什么呢?在文章開始說過,通縮代幣能激勵用戶持有代幣,這種激勵目的使用的方式便是對交易者扣除rOwned值,同時扣除rTotal,這樣其他用戶rOwned所占rTotal的比例就會被動增加,實現被動收益。

EDCS代幣決定通縮至6.5億枚:據官方消息,EDCS項目官方將對EDCS 的100億代幣進行極限通縮,數量縮減至6.5億枚。

分配規則如下:5.5億枚屬于通過挖礦產出,1500萬枚屬于社區采用合約封存并通過DAO治理的方式管理,8500萬枚屬于初期貢獻者獲取并采用線性釋放方式,釋放規則不變。[2021/10/10 20:17:45]

用戶查詢余額的方式有兩種情況,一種是除外地址,直接返回tOwned的值,另一種是非除外地址,返回rOwned/currentRate,而currentRate計算方式為rTotal/tTotal。如果有辦法使得rTotal減小,那么用戶查詢出的實際余額將變大,而如果pair查詢余額變大,則可以通過skim函數將多余的代幣轉移出去。

而該類通縮代幣存在一個deliver()函數,非除外地址可調用,該函數會將調用者的rOwned銷毀,并銷毀相同數量的_rTotal,使得所有非除外地址的余額查詢增加,pair如果非除外的話,便可使用上述方式套利攻擊。

SilkSwap已通過SLK通縮銷毀提案:據官方消息,為推進了SilkSwap去中心化發展進程,SilkSwap-DAO自治委員會通過了SLK銷毀提案,將于8月11日開啟SLK第一次通縮銷毀。[2021/7/31 1:26:36]

3通縮代幣相關安全事件剖析

AES安全事件

北京時間2023年1月30日,Beosin旗下BeosinEagleEye安全風險監控、預警與阻斷平臺監測到,AES遭受到黑客攻擊,該項目便存在上述的Skim問題。

AES-USDTpair合約有一個skim函數,該函數可以強制平衡pair的供應量,將多余資金發送給指定地址。

攻擊者在本次攻擊過程中,首先向pair里面直接轉入了部分AES代幣,導致供應量不平衡,從而攻擊者調用skim函數時,會將多余的這部分代幣轉到攻擊者指定地址,而攻擊者在此處指定了pair合約為接收地址,使得多余的AES又發送到了pair合約,導致強制平衡之后pair合約依然處于不平衡狀態,攻擊者便可重復調用強制平衡函數,而AES發送過程會調用到AES合約的transfer函數,如下圖。

波場TRON主網代幣TRX完成歷史首次通縮:據官方消息,2021年3月30日到4月5日的一周時間內,波場TRON主網代幣TRX完成歷史首次通縮,根據波場區塊鏈瀏覽器TRONSCAN數據顯示,總流通量由101,678,790,175枚減少至101,673,029,723枚,累計通縮總量高達:576萬TRX,價值78萬美金(據 Binance 4月6日10:20 (UTC+8)最新價格),至此宣告TRX正式進入通縮時代,完成了由通脹到通縮歷史進程。[2021/4/6 19:50:07]

聚幣Jubi 11月JT回購月通縮率達1.5190%:據官方消息,聚幣Jubi已于2020年11月23日(UTC+8)完成JT的11月HRP溢價回購。11月JT總計回購數量為 1,436,067.4827 JT。其中二級市場回購796,359.7368 JT,回購池回購639,707.7459 JT。本月所有回購JT已轉入官方公示銷毀地址(0x0000000000000000000000000000000000000000)并全數銷毀。 聚幣Jubi在平臺通證JT的新型通縮模型下,JT回購月通縮率已達1.5190%。[2020/11/23 21:50:26]

另外一點,當調用AES代幣合約的transfer函數時,若發送者為合約設置的pair合約時,會將一部分費用記錄在swapFeeTotal之中,在最后的時候可以統一調用distributeFee函數將swapFeeTotal記錄的費用從pair中轉出,這里相比上述的過程,攻擊者可以不用做sync函數調用操作,而是在最后將費用轉移出去之后調用一次sync函數即可。

攻擊者經過反復的強制平衡操作,費用記錄變得異常大,基本接近pair的總余額,最后攻擊者調用distributeFee函數將pair里面的AES轉出,pair的AES余額變得非常少,導致攻擊者利用少量AES兌換了大量的USDT。

BevoToken安全事件

北京時間2023年1月30日,Beosin旗下BeosinEagleEye安全風險監控、預警與阻斷平臺監測到,BevoToken遭受到閃電貸攻擊,該項目便是上面所說的“映射”機制通縮代幣。

由于BevoToken合約的balanceOf函數并非ERC20標準的函數,該函數在經過一些計算處理后再返回余額,而轉賬或其他操作可能使前后計算返回的余額不一致,當攻擊者在swap操作前后可憑借這個問題來操控pair合約的余額,從而skim出多余的代幣。

攻擊者首先在pancake貸出192.5個BNB,之后換成約302,877個BEVO代幣,再調用被攻擊合約的deliver函數,此時_rTotal的值減小,_rTotal的值減小會導致_getRate中計算的值偏小,此時balanceOf返回的余額則會偏大,導致攻擊者能skim出多余的BEVO。

之后,攻擊者再將skim出的代幣進行deliver,此時_rTotal的值已經很小了,在進行_getRate計算時,會減去除外地址的rOwned,此值固定且被攻擊者在之前通過burn異常放大的,在最開始_rTotal正常的時候,減去該值對結果的影響不大,但是現在_rTotal被攻擊者操控得異常小,再減去這個異常放大的固定值后,對結果產生了巨大的影響,第一次deliver導致pair計算結果偏大3倍,而第二次deliver之后,pair計算結果則偏大了數百倍,這也是為什么攻擊者獲得的代幣要比自己銷毀的代幣多得多的原因。

4Beosin總結

通縮項目在業務設計的時候一定要考慮到與pair交互的情況,自身的通縮機制是否會對pair產生影響。我們也建議相關項目上線前尋找專業的安全審計機構進行全面的代碼以及業務的安全審計工作。

Tags:PAIAIRTOTTALMPAIMAIR價格TOTOFO價格MetaLand Shares

比特幣
比特幣:金色Web3.0日報 | 工信部:加快布局元宇宙等前沿領域

DeFi數據 1、DeFi代幣總市值:518.55億美元 DeFi總市值及前十代幣數據來源:coingecko2、過去24小時去中心化交易所的交易量26.

1900/1/1 0:00:00
NFT:如何通過 NFT 中的注意力經濟來建設產品

NFT領域正在迅速發展,其副產品是進一步的碎片化。這就提出了一個問題:產品如何定位自己以滿足用戶的需求,以及用戶如何在這些產品中分配他們的時間。答案可以歸結為注意力.

1900/1/1 0:00:00
ETH:以太坊基金會2022年四季度捐贈55個項目一覽

2023年2月22日,以太坊基金會在官方網站上公布了2022年四季度捐贈的項目名單,總共55個項目.

1900/1/1 0:00:00
ELD:解析 BNB Greenfield 被低估了嗎?

撰文:Linnn 去中心化存儲正臨風口! 2月17日,Filecoin生態增長負責人“HQHan.eth”發布推文稱,去中心化存儲項目Filecoin將于3月23日推出智能合約.

1900/1/1 0:00:00
NFT:BTC NFT:Ordinals 變革及比特幣可擴展性討論

作者:Jelly,RedlineDAO編輯:Alyson,RedlineDAO 引言 Ordinals是什么?自2022年12月底以來.

1900/1/1 0:00:00
WEB3:回歸Web3價值本質 10億級用戶應用將從哪里誕生?

原文:《CGVResearch|TheRoadtoOneBillionUsersofWeb3Applications》 作者:Shigeru 來源:CGVFoF 如今.

1900/1/1 0:00:00
ads