近期Beosin安全團隊研究發現,通縮代幣引起的安全事件依然頻發,造成眾多項目方資金的損失,因此,Beosin安全團隊準備了這篇詳解通縮代幣的文章,與大家分享。
本文將對通縮代幣與pair結合過程中容易出現的問題以及歷史發生的真實通縮代幣安全事件兩個方面進行介紹,通過本文,我們將徹底搞清楚通縮代幣是什么意思以及通縮代幣發生安全問題所涉及的原理,使我們在之后的項目中避坑。
過程詳情圖
加密研究員:以太坊在合并后將成為通縮型資產:7月22日消息,IntoTheBlock研究主管Lucas Outumuro發推文稱,以太坊在合并(The Merge)后將成為通縮型資產,根據2022年歷史數據預測,以太坊的凈發行量可能在-0.5%到-4.5%之間,具體取決于網絡費用。[2022/7/22 2:31:09]
銷毀問題
該問題主要出現在使用“映射”機制的通縮代幣中,這種代幣的機制是存在兩種代幣余額存儲變量,分別為tOwned和rOwned,而tOwned存儲的是實際代幣數量,rOwned存儲的是通過currentRate變量放大映射之后的值。
rOwned的作用是什么呢?在文章開始說過,通縮代幣能激勵用戶持有代幣,這種激勵目的使用的方式便是對交易者扣除rOwned值,同時扣除rTotal,這樣其他用戶rOwned所占rTotal的比例就會被動增加,實現被動收益。
SilkSwap于8月11日開啟SLK第一次通縮銷毀:據官方消息,SilkSwap-DAO自治委員會通過了SLK銷毀提案,于8月11日開啟SLK第一次通縮銷毀,銷毀數量50069枚。[2021/8/11 1:49:06]
用戶查詢余額的方式有兩種情況,一種是除外地址,直接返回tOwned的值,另一種是非除外地址,返回rOwned/currentRate,而currentRate計算方式為rTotal/tTotal。如果有辦法使得rTotal減小,那么用戶查詢出的實際余額將變大,而如果pair查詢余額變大,則可以通過skim函數將多余的代幣轉移出去。
而該類通縮代幣存在一個deliver()函數,非除外地址可調用,該函數會將調用者的rOwned銷毀,并銷毀相同數量的_rTotal,使得所有非除外地址的余額查詢增加,pair如果非除外的話,便可使用上述方式套利攻擊。
Messari分析師:“通縮”的以太坊可能會超過比特幣,成為最大的加密資產:加密分析公司Messari高級研究分析師Ryan Watkins推測,一旦Eth2和PoS徹底完成,以太坊可能會取代比特幣成為最大的加密資產。3月18日,Watkins在Youtube節目“FinTech Today”上指出,雖然他不知道以太坊“是否或何時”會超過比特幣,但他相信以太坊可能會因Eth2而成為未來最主要的加密資產,他表示:“比特幣作為價值存儲資產,比以太坊更有賣點,歸根結底是它的貨幣政策是可預測的,而且比特幣區塊鏈是非常安全的。我認為,隨著向Eth2和PoS的轉變,以太坊實際上可能比比特幣更安全。”[2021/3/18 18:56:58]
3通縮代幣相關安全事件剖析
AES安全事件
北京時間2023年1月30日,Beosin旗下BeosinEagleEye安全風險監控、預警與阻斷平臺監測到,AES遭受到黑客攻擊,該項目便存在上述的Skim問題。
Victor:MANTA是第一個具備通縮性的功能型隱私資產:2月9日,Manta Network CSO Victor做客MXC抹茶社區,分享Manta網絡的優勢。Victor表示,Manta網絡資產MANTA 是第一個具備通縮性的功能型隱私資產,根據其協議實際隱私保護網絡的使用情況以及在 DeFi 中的增長情況,用戶能夠進行激勵分紅,贖回和通證銷毀等操作。
MANTA總量 1,000,000,000 枚,收入來源在于隱私代幣生成和贖回基本幣的置換費 (0.1%),以及隱私幣支付,不同隱私幣之間交換的手續費 (0.3% — variable)。這些持續收入會使 $MA 通證具備折現價值(discount value)、贖回價值(redeem value)、治理價值(governance value)以及擴展價值(extended value),我們會隨著產品開發逐步披露代幣的使用場景。另外MANTA代幣也可以通過參與平行鏈拍賣質押DOT獲得。[2021/2/9 19:20:15]
AES-USDTpair合約有一個skim函數,該函數可以強制平衡pair的供應量,將多余資金發送給指定地址。
火幣銷毀1.5億枚HT,HT正式進入“絕對通縮”:2月29日,火幣全球站發布公告宣布,火幣將再銷毀1.5億枚HT。本次永久銷毀的1.5億枚HT包括:(1)未發行部分中的HT運營部分9734.23萬枚HT;(2)由2018年1、2季度二級市場回購、投票上幣收入組成的投資者保護基金部分5007.56萬枚HT。后續發生風險事故將由平臺風險保證金承擔,繼續實現對火幣用戶權益的全面保護。在新的HT通證規則下,火幣不再增發HT,員工激勵部分不會流入二級市場,不再有解鎖HT的新增流通,HT從此正式進入“絕對通縮”新階段。本次銷毀后,火幣已累計銷毀近2億枚HT,流通盤僅剩約2.4億枚HT。[2020/2/29]
攻擊者在本次攻擊過程中,首先向pair里面直接轉入了部分AES代幣,導致供應量不平衡,從而攻擊者調用skim函數時,會將多余的這部分代幣轉到攻擊者指定地址,而攻擊者在此處指定了pair合約為接收地址,使得多余的AES又發送到了pair合約,導致強制平衡之后pair合約依然處于不平衡狀態,攻擊者便可重復調用強制平衡函數,而AES發送過程會調用到AES合約的transfer函數,如下圖。
另外一點,當調用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:PAIAIRTOTTALpaid幣在哪能交易AIRDROP幣totmefiPitquidity Capital
上海升級來臨之際,Eth2.0的質押資產提款問題成為需要解決的核心問題之一。以太坊2.0經歷了Beacon鏈的上線、合并之后,即將在3月份迎來又一次重大更新——上海升級.
1900/1/1 0:00:00原文作者:yyy 昨晚Coinbase宣布入場做了一條基于OPStack的L2——@BuildOnBase,一時間「BullishonOptimism」的情緒又再度被點燃.
1900/1/1 0:00:00原文:《Ismodulardesignthefuture?》byRobertMcTague編譯:倩雯,ChainCatcher我們需要擴容方案為現有的區塊鏈提供流動性和用戶服務,從長遠來看.
1900/1/1 0:00:00文/?WilliamM.Peaster,Bankless;譯/金色財經xiaozou 最近一直與OpenSea競爭的NFT市場聚合器Blur2月15日發布了備受期待的BLUR空投.
1900/1/1 0:00:00DeFi數據 1、DeFi代幣總市值:523.32億美元 DeFi總市值及前十代幣數據來源:coingecko2、過去24小時去中心化交易所的交易量47.
1900/1/1 0:00:00原文標題:《HighlightsFromCZ’sValentine’sDayAMA》 撰文:幣安 編譯:Frank.
1900/1/1 0:00:00