16萬美元資產被盜竟是烏龍事件? Yeld.finance“閃電貸攻擊”事件簡析
成都链安
2021-02-28 08:36
本文约1576字,阅读全文需要约6分钟
16萬美元資產被盜?虛驚一場。

一、事件概覽

一、事件概覽

https://yeldf.medium.com/the-yeld-dai-earn-vault-has-been-hacked-93f27d475b1b 

二、事件分析

二、事件分析

二、事件分析

圖片描述

如圖1所示,該筆交易是名為0xf0f225e0的用戶,調用了0xe780cab7ca8014543f194fc431e6bf7dc5c16762合約的deposit函數。經確認,0xef80cab7合約正是項目方的DAI池。該筆交易一共產生了6筆代幣轉移,分別用T1到T6表示。那麼,這些代幣轉移究竟是什麼操作導致的呢?下面通過代碼進行分析:

圖片描述

圖片描述

圖片描述

很明顯,第538行代碼,產生導致了序號為T1的代幣轉移,將token(即DAI)轉移到yDAI合約。這是一筆普通的代幣轉賬,表示用戶存入了9,377 DAI到yDAI合約。

△圖3 rebalance函數源碼

圖片描述

第732行代碼會計算newProvider,該函數會調用recommend函數(如圖4所示),recommend函數會調用IEarnAPRWithPool合約查詢4個Defi項目DYDX,COMPOUND,AAVE,FULCRUM中,年利率(APR)最高的項目,查詢結果如圖5所示:

圖片描述

其中dYdX池的APR最高,newProvider被設置為dYdX池。當前池為AAVE池,進入736行的if代碼塊,調用內部函數_withdrawAll。

圖片描述

圖片描述

圖片描述

△圖6 _withdrawAll函數源代碼

值得注意的是,dYdX在該事件中充當了一個“良心商家”的角色,並不是以往閃電貸攻擊中的幫兇。

三、安全建議

三、安全建議

三、安全建議

成都链安
作者文库