比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

走過最長的路竟是自己的套路:Alchemix事件分析_ETH

Author:

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

By:yudan@慢霧安全團隊

據慢霧區消息,2021年06月16日,以太坊DeFi項目Alchemix的alETH合約疑似出現安全問題。17日,Alchemix發布了事故分析報告,慢霧安全團隊迅速介入分析,并在官方分析報告的基礎上梳理了本次事件的整個脈絡和核心關鍵點,供大家參考。

太長不看系列

本次分析文章很長。這里先說結論,方便大家有個大概的理解。本次事故的主要原因在于Alchemix通過transmuter添加了3次vault,導致收益信息記錄在了一個錯誤的元素上,而在調用transmuter的harvest函數時也沒有傳入正確的index值,導致通過錯誤的元素獲取了錯誤的收益,將錯誤的4300ETH的收益發送到adapter合約,幫助用戶償還了alETH的貸款,造成收益增多的問題,導致了悲劇。

核心分析——Round1

根據官方發布的事故分析報告,本次事故的原因是官方的alETH的部署腳本意外地創建了額外的vaults,導致Alchemix使用了vaults數組中錯誤的索引并計算出了錯誤的獎勵,導致transmuter把所有的獎勵用于償還了用戶的所有負債。我知道單單是這句簡短的分析讓人有點云里霧里,摸不著頭腦,所以我們只能把目標放在官方給出的交易中,看看能不能找到真相。

Coinbase首席財務官將該公司的“非有機增長戰略”描述為“機會主義”:金色財經報道,Coinbase首席財務官Alesia Haas在一次演講中談到了該公司對非有機增長的謹慎態度,強調了該戰略的機會主義性質。Coinbase成功地減少了開支,從而提高了效率和盈利能力,從他們的第二季度財報中可以看出,他們的運營開支大幅下降,調整后的EBITDA有所改善。Coinbase并沒有停止交易,但在繼續降低成本的過程中,它采取了更為謹慎的態度。

Coinbase首席財務官Alesia Haas將該公司的非有機增長戰略描述為“機會主義”。Haas說,“對我們來說,對于并購,我們正在尋找獨特的新技能,無論是增加人才,無論是增加新的產品線,如管理,還是僅僅增加關鍵人才,并購將永遠是一部分,它是機會主義的。”Haas于2018年從對沖基金領域加入該公司。[2023/8/10 16:18:26]

根據官方給出的交易,通過ethtx.info分析工具進行分析,我們不難發現,這筆交易調用了AlchemistEth合約的harvest函數,并且傳入了_vaultId=0這個參數,最后返回了

"4308144937764982868765"和"4308144937764982866415"這兩個值。

Celer cBridge支持ConsenSys L2網絡Linea:7月19日消息,Celer宣布為ConsenSys L2網絡Linea提供cBridge橋接支持。用戶可以在Linea、BNB Chain、Avalanche、Polygon之間進行BNB、BUSD、AVAX和MATIC代幣跨鏈。

據昨日報道,Linea發推稱,已向社區開放主網Alpha版本訪問權限。開發者和RPC端點可以訪問該Rollup和ETH橋UI。支持ERC20的跨鏈橋將在未來幾周內推出。[2023/7/19 11:04:00]

為了更加了解harvest函數的作用,我們需要對整個函數進行分析:

不難發現,harvest函數其實包含兩個重要的操作,分別是收獲獎勵和將獎勵分發給transmuter合約。其中vault是一個library庫合約,其中的harvest邏輯實現如下:

通過代碼分析不難發現,vault庫合約的harvest函數其實是檢查了外部的adapter的總的資金量,然后根據adapter中的資金量減去用戶的充值數量計算出收益的部分。

印度財政部長:加密監管并不意味著技術控制:金色財經報道,印度財政部長 Nirmala Sitharaman?在印度卡納塔克邦的一次互動會議上表示,今天 G20 的共識是可能必須創建一個全球標準。我們所有人都必須為此共同努力,否則監管加密可能不會有效。但這并不意味著我們要控制分布式賬本技術,它有它的優點,有它的潛力。其他亞洲國家,如新加坡,也看到了 DLT 用例的潛力,例如資產標記化和跨境支付,但加密貨幣沒有基本價值。

在技術驅動的加密資產問題上,沒有一個國家能單獨控制它,因為技術是沒有邊界的。國際貨幣基金組織關于加密貨幣及其影響宏觀經濟穩定的方式的文件,以及金融穩定委員會關于加密資產的金融穩定性的報告,將在7月份的G20會議上討論,屆時各國財政部長和中央銀行行長將舉行會議。[2023/4/24 14:24:08]

這里我們可以將這個adapter理解為一個策略池,用于管理用戶的資金和收益。然后我們回到用戶一開始的AlchemistEth合約中的harvest函數,發現返回的"4308144937764982868765"?和?

"4308144937764982866415"這兩個值其實對應的就是vault庫合約的harvest函數計算出的需要提現的代幣數量和從adapter(策略池)中取回的代幣的數量。由于這個adapter對應的收益代幣是WETH,精度為18位,那么?"4308144937764982866415"?這個數值換算過來就是"4308.144937764982866415"?個WETH。

基于Solana的NFT系列Okay Bears與RED合作為全球衛生工作提供資金:金色財經報道,基于Solana的NFT系列Okay Bears周二表示,它正在與全球衛生組織(RED)合作籌集資金,以抗擊艾滋病和全球衛生不公正現象。這兩個實體正在合作開發商品系列,利用兩個品牌的知識產權(IP)發布連帽衫、T恤和腕帶。部分收益將捐贈給全球基金,這是一個致力于為抗擊艾滋病提供資源的組織。Okay Bears首席傳播官彼得古爾德在一份新聞稿中表示,NFT系列是該領域“文化轉變”的象征,利用NFT為慈善事業提供動力。古爾德說,“我們很自豪能與(RED)合作,并在我們使用商品和數字收藏品解決我們這個時代最重要的人權問題的共同歷史的基礎上。”RED的開發業務主管Greg Sheps表示,他將鏈上藝術視為一種創新的籌款工具。[2023/4/14 14:02:46]

也就是說,本次harvest操作,收益了超過4300個ETH的收益,然后這個收益在下一步中通過_distributeToTransmuter函數給到了transmuter合約進行分發,我們看下分發過程中的邏輯是怎樣的:

_distributeToTransmuter函數的邏輯只有簡單的3行,我們主要關注的是最后的外部調用——lowerHashMinted函數。該函數所對應的xtoken在這里指的是alETH本身。因為alETH本身是用戶通過借貸借出來的,所以lowerHashMinted這里的操作其實是使用harvest的收益將alETH總的貸出數量減少了,從而減少了每個用戶的貸款。總結來說就是用harvest4300ETH的收益償還用戶的alETH貸款。

CME比特幣期貨未平倉總量自14957張下降至12849張:據KingData數據監控,CFTC7月27日至8月2日CME比特幣期貨持倉周報顯示:未平倉總量自14,957張下降至12,849張。機構多頭頭寸9,409張,空頭頭寸10,204張,多空持倉比例1:1.1,機構多空力量均衡,整體偏向看空;大戶多頭頭寸1,085張,空頭頭寸627張,多空持倉比例1.7:1,大戶顯著偏向看漲;散戶多頭頭寸1,085張,空頭頭寸748張,多空持倉比例1.5:1,散戶偏向看漲。[2022/8/8 12:09:25]

打個小總結

這里先總結下這個流程,就是AlchemistEth合約通過harvest函數,得到了4300ETH的收益,并將這個收益分發出去了,用于償還用戶的alETH貸款,導致了我們看到的情況——已經貸出alETH的用戶在不需要還款的情況下就可以拿回他們質押的ETH。那究竟是為什么,會有這4300ETH的收益呢?這多出來的4300ETH的收益是怎么來的?針對這個問題,我們開始下一輪的分析。

核心分析——Round2

要了解為什么會多出來4300ETH,就必須了解AlchemistEth的資金存儲過程。在AlchemistEth合約中,合約總的充值情況是使用Vaultlibrary庫的Data結構體進行記錄的,然后通過flushActiveVault函數更新對應的充值數量(totalDeposit)。

然后depositAll函數會將充值的代幣金額打到對應的adapter(策略池)中,那么在下一次harvest的時候,通過adapter(策略池)獲取的totalValue,就會是用戶的本金加上策略池的收益。為了計算收益過程中的本金部分,我們對官方給出的交易進行debug,發現本金僅為9000ETH,從adapter獲取的收益加上本金共有13000ETH,也就是說9000ETH的本金產生了4300ETH的收益。

但是,按照上面分析的邏輯,用戶的本金是不會產生那么大的收益的,問題肯定是出在了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操作的時候,要記得檢查好業務邏輯中的每一個流程,防止意外的發生,在必要的時候可以聯系專業的安全團隊進行專業的安全審計,防止事故的發生。

Tags:ETHTERVESTESTETHER價格Pixer EternityVESTA價格ALL BEST ICO SATOSHI

以太坊價格今日行情
DeFi技術是否容易適應于非金融行業?_DEFI

去中心化金融是加密資產領域中最熱門的話題,被吹捧為通過代幣讓人發財的方式,也是一種可以把你存放在冷錢包中的加密貨幣拿出來使用的工具,用來賺取高昂利率的利息.

1900/1/1 0:00:00
為什么美國還沒有為比特幣 ETF 做好準備?_ETF

隨著加密貨幣的日益普及,想要投資數字資產的機構和傳統投資者數量也逐漸增加。但是目前,他們無法通過ETF做到這一點,多個ETF仍在等待美國證券監管委員會的批準.

1900/1/1 0:00:00
比特幣兇相試煉薩爾瓦多貨幣新局_INE

自6月9日薩爾瓦多國會批準比特幣成為本國法定貨幣以來,這個中美洲小國開始在比特幣支付和挖礦兩方面積極布局.

1900/1/1 0:00:00
觀點丨別陷入美聯儲通脹的“甜蜜”陷阱,也別把它當做選擇比特幣的理由_比特幣

注:原文來自BitcoinMagazine,以下為全文編譯: 為什么比特幣持有者需要遠離1970年代的通脹理論下面繪制的第一張圖表看似簡單,但卻極為重要.

1900/1/1 0:00:00
金色沙龍第64期線上版:聯盟鏈-創新場景應用的偶然與必然_OSM

由金色財經主辦金色的沙龍第64期線上版:“聯盟鏈-創新場景應用的偶然與必然”即將于6月23日?14:00在金色財經直播平臺&微信V64直播間內舉辦.

1900/1/1 0:00:00
哈薩克斯坦開啟電力消耗征稅對礦企影響幾何?_加密貨幣

據哈薩克斯坦本地媒體KURSIV消息,哈薩克斯正發起一系列稅法修正案,擬對比特幣礦工消耗的電力征稅,每千瓦每小時征稅1哈薩克斯坦堅戈。該法案目前正在參議院進行審查.

1900/1/1 0:00:00
ads