近期Beosin安全團隊研究發現,通縮代幣引起的安全事件依然頻發,造成眾多項目方資金的損失,因此,Beosin安全團隊準備了這篇詳解通縮代幣的文章,與大家分享。
本文將對通縮代幣與pair結合過程中容易出現的問題以及歷史發生的真實通縮代幣安全事件兩個方面進行介紹,通過本文,我們將徹底搞清楚通縮代幣是什么意思以及通縮代幣發生安全問題所涉及的原理,使我們在之后的項目中避坑。
過程詳情圖
鏈游平臺WEMIX將實施回購銷毀和代幣通縮策略:12月9日消息,韓國游戲公司Wemade旗下鏈游平臺WEMIX宣布立即實施回購銷毀活動,將在2022年12月9日至2023年3月8日的90天內將回購并銷毀價值1000萬美元的WEMIX代幣。此外,基金會還將采用并實施WEMIX通縮政策,所有WEMIX3.0平臺和基金會產生的投資收入的25%將按季度銷毀。
此前報道,11月24日,韓國數字資產交易平臺聯合協會(DAXA)決定對韓國游戲巨頭 WeMade旗下鏈游平臺代幣WEMIX停止交易支持,以保護投資者。受此影響,Bithumb、Upbit等多家韓國交易所宣布將下架WEMIX。[2022/12/9 21:33:37]
銷毀問題
該問題主要出現在使用“映射”機制的通縮代幣中,這種代幣的機制是存在兩種代幣余額存儲變量,分別為tOwned和rOwned,而tOwned存儲的是實際代幣數量,rOwned存儲的是通過currentRate變量放大映射之后的值。
數據:ETH供應量連續10天通縮:金色財經報道,數據顯示以太坊ETH供應量已連續10天為通縮狀態。另據Glassnode分析顯示,以太坊ETH的交易所存入數量也創下近5年新低。[2022/10/20 16:31:21]
rOwned的作用是什么呢?在文章開始說過,通縮代幣能激勵用戶持有代幣,這種激勵目的使用的方式便是對交易者扣除rOwned值,同時扣除rTotal,這樣其他用戶rOwned所占rTotal的比例就會被動增加,實現被動收益。
用戶查詢余額的方式有兩種情況,一種是除外地址,直接返回tOwned的值,另一種是非除外地址,返回rOwned/currentRate,而currentRate計算方式為rTotal/tTotal。如果有辦法使得rTotal減小,那么用戶查詢出的實際余額將變大,而如果pair查詢余額變大,則可以通過skim函數將多余的代幣轉移出去。
波場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]
而該類通縮代幣存在一個deliver()函數,非除外地址可調用,該函數會將調用者的rOwned銷毀,并銷毀相同數量的_rTotal,使得所有非除外地址的余額查詢增加,pair如果非除外的話,便可使用上述方式套利攻擊。
3通縮代幣相關安全事件剖析
Beosin已完成對永久通縮協議Mimosa代碼審計:12月28日消息。據官方通告,區塊鏈安全公司Beosin(LianAnTech)宣布已完成對永久通縮協議Mimosa的審計工作,審計項包括協議安全性評估、代碼漏洞審查等,確認了MIMO在以太坊鏈上傳輸,通過扣除轉賬手續費的形式進行代幣銷毀,手續費比例可在有效范圍0-100%內修改,當手續費比例為100%時轉賬數量全部銷毀;目前手續費為默認5%。[2020/12/28 15:54:14]
AES安全事件
北京時間2023年1月30日,Beosin旗下BeosinEagleEye安全風險監控、預警與阻斷平臺監測到,AES遭受到黑客攻擊,該項目便存在上述的Skim問題。
AES-USDTpair合約有一個skim函數,該函數可以強制平衡pair的供應量,將多余資金發送給指定地址。
聲音 | 火幣七爺:HT將實現絕對通縮:2月19日,火幣全球站CEO七爺在媒體直播中表示,銷毀非流通盤的做法有助于提升市場對于流通盤不再增加的心理預期,是一種通證模型的改進,火幣不會忽視任何一次改進的機會。關于HT非流通盤的銷毀,火幣已形成銷毀的具體方案,HT將實現絕對通縮。
七爺認為,平臺幣的內生價值來源于平臺的盈利能力和真金白銀的投入。對非流通盤的考量固然重要,但更本質性的做法應是提升平臺基本面,加大對流通盤的通縮力度。HT從2020年1月起銷毀周期將由季度調整為月度,可進一步加大對流通盤的通縮力度。火幣1月份幣幣+合約整體交易量月環比2019年12月提升 65%;火幣1月份銷毀405萬枚HT,比上季度月均銷毀水平提高51%,如果月均通縮率穩定在這一水平,年內HT實際流通盤通縮率將超過15%。[2020/2/19]
攻擊者在本次攻擊過程中,首先向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:PAIAIRTALTOTpaint幣的介紹Shiba Floki TrillionaireMetaLaunchPadTOTEM
撰文:Tyrogued 編譯:Blockunicorn在加密貨幣中賺錢的最佳方式之一,就是在加密邪教投機熱潮出現之前,提前了解清楚它們,然后在龐氏騙局即將歸零時,提前拋售加密邪教投機代幣.
1900/1/1 0:00:00金色財經報道,SuperRare創始人JonathanPerkins在NFT巴黎會議期間表示,向創作者付費的決定早在五年前就已做出.
1900/1/1 0:00:00金色財經報道,在加密貨幣交易所巨頭Binance日益重要的推動下,TrueUSD(TUSD)穩定幣已成為按市值計算的第五大穩定幣.
1900/1/1 0:00:00從VC錢包中發現獲利的機會,排名前20的加密貨幣基金總共有1200多個錢包。整個一月/二月我一直在密切關注它們。在這里我將介紹8家最大的風險投資公司,他們最大的持股和近期投資.
1900/1/1 0:00:00以太坊質押作為服務的提供商接受客戶的存款并部署節點,使他們的用戶可以通過驗證和保護網絡獲得獎勵。用戶按其質押收益的百分比或每個節點的固定費用支付服務費用.
1900/1/1 0:00:00作者:菠菜菠菜 百億市值的穩定幣BUSD說關就關?美國在加密行業的影響力可以有多大?BUSD被關停意味著什么?穩定幣有多重要?穩定幣存在的意義是什么?菠菜來聊聊穩定幣這個大家再熟悉不過的東西.
1900/1/1 0:00:00