By:慢霧安全團隊
據慢霧區消息,2021年06月16日,以太坊DeFi項目Alchemix的alETH合約疑似出現安全問題。17日,Alchemix發布了事故分析報告,慢霧安全團隊迅速介入分析,并在官方分析報告的基礎上梳理了本次事件的整個脈絡和核心關鍵點,供大家參考。
太長不看系列
本次分析文章很長。這里先說結論,方便大家有個大概的理解。本次事故的主要原因在于Alchemix通過transmuter添加了3次vault,導致收益信息記錄在了一個錯誤的元素上,而在調用transmuter的harvest函數時也沒有傳入正確的index值,導致通過錯誤的元素獲取了錯誤的收益,將錯誤的4300ETH的收益發送到adapter合約,幫助用戶償還了alETH的貸款,造成收益增多的問題,導致了悲劇。
核心分析——Round1
根據官方發布的事故分析報告,本次事故的原因是官方的alETH的部署腳本意外地創建了額外的vaults,導致Alchemix使用了vaults數組中錯誤的索引并計算出了錯誤的獎勵,導致transmuter把所有的獎勵用于償還了用戶的所有負債。我知道單單是這句簡短的分析讓人有點云里霧里,摸不著頭腦,所以我們只能把目標放在官方給出的交易中,看看能不能找到真相。
根據官方給出的交易,通過ethtx.info分析工具進行分析,我們不難發現,這筆交易調用了AlchemistEth合約的harvest函數,并且傳入了_vaultId=0這個參數,最后返回了
Bigg Digital Assets將以約2000萬美元收購元宇宙公司TerraZero:8月25日消息,加密貨幣公司Bigg Digital Assets將收購元宇宙公司TerraZero所有發行股票共6200萬股,收購價約2000萬美元,當前已簽訂最終并購協議。交易結束后,現有的BIGG和TerraZero股東將分別持有BIGG約80%和20%股份。
2023年Q1和Q2,TerraZero總收入約150萬美元,同比增長161%。TerraZero計劃在2023年下半年擴展其商業版圖,專注于開發自研的可擴展Intraverse技術生態系統,將于2024年Q1推出。[2023/8/25 10:03:14]
"4308144937764982868765"和"4308144937764982866415"這兩個值。
為了更加了解harvest函數的作用,我們需要對整個函數進行分析:
不難發現,harvest函數其實包含兩個重要的操作,分別是收獲獎勵和將獎勵分發給transmuter合約。其中vault是一個library庫合約,其中的harvest邏輯實現如下:
通過代碼分析不難發現,vault庫合約的harvest函數其實是檢查了外部的adapter的總的資金量,然后根據adapter中的資金量減去用戶的充值數量計算出收益的部分。
這里我們可以將這個adapter理解為一個策略池,用于管理用戶的資金和收益。然后我們回到用戶一開始的AlchemistEth合約中的harvest函數,發現返回的"4308144937764982868765"和
Cosmos生態公鏈Canto日活地址和交易量在2月份均下降了89%:2月23日消息,區塊鏈分析公司Artemis的數據顯示,Cosmos生態公鏈Canto每日活躍地址和交易數量在年初都顯示出高度波動。截至2月3日,發送至少一筆鏈上交易的唯一錢包地址數量約27,000個,較1月1日的244個增長10,965%。同一時期,在鏈上注冊的日交易總數為119,000筆,較1月1日的2,400筆增長4858%。
不過,Artemis的最新數據顯示,Canto的每日活躍地址和交易量在2月份分別下降了89%,分別約為2,400和22,700。雖然每日活躍地址和交易量仍同比增長,但兩個月的下降表明這個Canto網絡的活動已經降溫。
此外DeFiLlama的數據顯示,Canto的總價值鎖定 (TVL) 穩定在1.89億美元左右,其中65.82%的TVL來自Canto鏈上最大的DEX。Canto的TVL自2月初以來增長了約28%,自1月1日以來增長了182%,這突顯出即使在活動減少的時候,用戶仍然有興趣將他們的資產存入layer 1區塊鏈。[2023/2/23 12:24:46]
"4308144937764982866415"這兩個值其實對應的就是vault庫合約的harvest函數計算出的需要提現的代幣數量和從adapter(策略池)中取回的代幣的數量。由于這個adapter對應的收益代幣是WETH,精度為18位,那么"4308144937764982866415"這個數值換算過來就是"4308.144937764982866415"個WETH。
安全團隊:Midas Capital攻擊者的初始Gas費來自HitBTC,被盜的66萬枚MATIC已轉移至多個地址:金色財經報道,據慢霧監測,Tribe DAO生態跨鏈貨幣市場解決方案Midas Capital的攻擊者的初始Gas費來自加密交易所HitBTC,目前被盜資金(約66萬枚MATIC)已被分配到多個錢包地址。
此前報道,跨鏈貨幣市場解決方案Midas Capital在穩定幣協議Jarvis的Polygon流動性池被攻擊利用并損失65萬美元,已暫停借貸功能。[2023/1/16 11:13:54]
也就是說,本次harvest操作,收益了超過4300個ETH的收益,然后這個收益在下一步中通過_distributeToTransmuter函數給到了transmuter合約進行分發,我們看下分發過程中的邏輯是怎樣的:
_distributeToTransmuter函數的邏輯只有簡單的3行,我們主要關注的是最后的外部調用——lowerHashMinted函數。該函數所對應的xtoken在這里指的是alETH本身。因為alETH本身是用戶通過借貸借出來的,所以lowerHashMinted這里的操作其實是使用harvest的收益將alETH總的貸出數量減少了,從而減少了每個用戶的貸款。總結來說就是用harvest4300ETH的收益償還用戶的alETH貸款。
打個小總結
這里先總結下這個流程,就是AlchemistEth合約通過harvest函數,得到了4300ETH的收益,并將這個收益分發出去了,用于償還用戶的alETH貸款,導致了我們看到的情況——已經貸出alETH的用戶在不需要還款的情況下就可以拿回他們質押的ETH。那究竟是為什么,會有這4300ETH的收益呢?這多出來的4300ETH的收益是怎么來的?針對這個問題,我們開始下一輪的分析。
風險投資家Kevin O’Leary:因監管顧慮放棄救助FTX:金色財經報道,風險投資家Kevin O'Leary表示,在加密交易所FTX申請破產前他曾考慮救助,但遭到美國證券交易委員會(SEC)主席Gary Gensler言論的阻撓,Gensler當時表示,加密行業“嚴重不合規”,需要更多監管。
Kevin O'Leary稱,“在監管懸而未決的情況下,無法彌補FTX資產負債表的漏洞。” O'Leary是FTX International和FTX.US的股東,他表示,該交易所的倒閉“將加速監管”,但在此之前需要釋放很多“附帶傷害”,O'Leary說,“我們不知道還有多少多米諾骨牌會倒下,需要時間驗證。”(Coindesk)[2022/11/15 13:05:52]
核心分析——Round2
要了解為什么會多出來4300ETH,就必須了解AlchemistEth的資金存儲過程。在AlchemistEth合約中,合約總的充值情況是使用Vaultlibrary庫的Data結構體進行記錄的,然后通過flushActiveVault函數更新對應的充值數量(totalDeposit)。
然后depositAll函數會將充值的代幣金額打到對應的adapter(策略池)中,那么在下一次harvest的時候,通過adapter(策略池)獲取的totalValue,就會是用戶的本金加上策略池的收益。為了計算收益過程中的本金部分,我們對官方給出的交易進行debug,發現本金僅為9000ETH,從adapter獲取的收益加上本金共有13000ETH,也就是說9000ETH的本金產生了4300ETH的收益。
Gabor Gurbacs:美國應該欣賞和支持Tether:金色財經報道,紐約投資管理公司VanEck數字資產戰略總監Gabor Gurbacs發推特表示,美國應該欣賞和支持Tether。因為Tether是國債的買家,這支持了美元體系。一些高級別的決策者了解并欣賞這一點。[2022/9/22 7:12:11]
但是,按照上面分析的邏輯,用戶的本金是不會產生那么大的收益的,問題肯定是出在了adapter獲取的totalValue。也就是說adapter不止只有AlchemistEth充值代幣,還存在其他的收益渠道。為了驗證我們的想法,慢霧安全團隊分析了adapter的所有代幣收入,果然發現了一筆異常的轉入行為,并且金額也能剛好對上多出的4300ETH的收益。也就是說,問題就在這里了。
通過查看交易數據,發現這是一筆調用harvest操作的交易,調用的合約是transmuter合約:
也就是說,是這個harvest函數出問題了,harvest函數的邏輯如下:
同樣是調用了vault的harvest函數,熟悉的配方,熟悉的味道。我們再次進行debug,發現一個驚人的事實——在進行收益的時候,vault的totalDeposit竟然為0,導致4300ETH的收益直接分發給了adapter,導致了adapter獲取的totalValue錯誤了,多了4300個ETH,原因就是在這里。
到了這里,我們已經很接近真相了,剩下要解決的就是為什么totalDeposit會為0?我們查詢了transmuter合約中能改變totalDeposit的地方,發現只有_plantOrRecallExcessFunds函數可以改變這個值,而這個函數上層調用的又是distribute函數。而transmuter合約的distribute函數是AlchemistEth合約在收益的時候進行調用的。也就是說本身的流程應該是:
1.AlchemistEth合約調用harvest進行收益
2.AlchemistEth合約調用transmuter合約的distribute函數記錄收益情況,并把收益部分給adapter
3.adapter收到了transmuter的收益,根據收益償還用戶的alETH的貸款
但是問題就出在了_plantOrRecallExcessFunds函數中。由于在記錄充值信息的時候,用的是_vaults.last()來獲取最新的vault,所以其實充值信息疊加在了最后一個元素上。但是項目方調用了三次setActiveVault函數,所以其實充值信息是疊加到了_vaults數組的3號元素,也就是index為2的vault元素上。但是在transmuter合約在harvest的時候傳入的_vaultId卻是0,0號元素是沒有任何充值記錄的,所以transmuter合約就誤將所有的收益都給了adapter了。導致了悲劇的發生。
總結
到這里,整個事情已經變得很清晰了,Alchemix項目方由于某種原因,通過transmuter添加了3次vault,導致收益信息記錄在了一個錯誤的元素上,而在調用transmuter的harvest函數時也沒有傳入正確的index值,導致通過錯誤的元素獲取了錯誤的收益,錯誤收益被發送到adapter合約,造成收益增多,導致了悲劇。
慢霧安全團隊在此提醒,DeFi是一個復雜的系統,在進行DeFi操作的時候,要記得檢查好業務邏輯中的每一個流程,防止意外的發生,在必要的時候可以聯系專業的安全團隊進行專業的安全審計,防止事故的發生。
__
官方事故分析報告:
___https://forum.alchemix.fi/public/d/137-incident-report-06162021_
收益計算錯誤交易:https://etherscan.io/tx/0x3cc071f9f40294bb250fc7b9aa6b2d7e6ca5707ce4d6d222157d7a0feef618b3
__
往期回顧
HPOOL入駐慢霧區,發布「安全漏洞與威脅情報賞金計劃」
重磅!慢霧的安全審計結果已集成到CoinMarketCap
Tokenlon入駐慢霧區,發布「安全漏洞與威脅情報賞金計劃」我竟騙了我自己?——BurgerSwap被黑分析
代幣閃崩,差點歸零-PancakeBunny被黑簡析
慢霧導航
慢霧科技官網
https://www.slowmist.com/
慢霧區官網
https://slowmist.io/
慢霧GitHub
https://github.com/slowmist
Telegram
https://t.me/slowmistteam
https://twitter.com/@slowmist_team
Medium
https://medium.com/@slowmist
幣乎
https://bihu.com/people/586104
知識星球
https://t.zsxq.com/Q3zNvvF
火星號
http://t.cn/AiRkv4Gz
鏈聞號
https://www.chainnews.com/u/958260692213.htm
免責聲明:作為區塊鏈信息平臺,本站所發布文章僅代表作者個人觀點,與鏈聞ChainNews立場無關。文章內的信息、意見等均僅供參考,并非作為或被視為實際投資建議。
本文來源于非小號媒體平臺:
慢霧科技
現已在非小號資訊平臺發布68篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/10084665.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
SendingLabs完成1250萬美元種子輪融資,以構建「Web3通信堆棧」
尊敬的ZT用戶: ????第九期投票上幣項目CAT成功投票304447枚ZTB成功上線。參與投票的用戶可瓜分1,300,000,000,000枚CAT代幣.
1900/1/1 0:00:00尊敬的用戶: 為了提升用戶體驗,保障用戶資產安全。CoinBene已更新BTC和OMNI-USDT充值地址。并已經暫停BTC和OMNI-USDT舊地址充值服務,因此強烈推薦您及時更新充值地址.
1900/1/1 0:00:00尊敬的用戶: 幣虎將于2021年6月16日18:00上線礦池HAM,FWATCH,X2P產品,并開展礦池禮包第一期活動,具體信息如下: 一、幣虎礦池: 申購模式:固定份額,售完為止.
1900/1/1 0:00:00親愛的用戶:幣安將于2021年06月18日14:00至2021年06月18日16:00對流動性挖礦進行系統升級,期間將暫停流動性挖礦的添加、贖回及交易功能.
1900/1/1 0:00:00大家好我是紫獅財經CEO,Hyrik老師,伴隨著端午節的喜慶,比特幣大盤在14號一舉突破40000刀大關后,就開始在為尋求站穩40000刀大關而開始震蕩蓄勢了.
1900/1/1 0:00:00尊敬的用戶, WBF于2021年6月12日-2021年6月15日舉辦的”端午狂歡海量AIB任性狂撒“活動獎勵已經發放,請獲獎用戶及時查看資產。如有疑問,請聯系WBF官方客服.
1900/1/1 0:00:00