剛花了一些時間檢查 $9M @yearnfi 的 yeth 攻擊。雖然大多數人指出黑客用少量的 wei 代幣鑄造了大量的 yeth (P1),但我認為這並不是唯一的根本原因。 原因是?黑客實際上並沒有提取鑄造的 yeth,只是在 yETH-ETH 池中出售了部分,獲得了 1000 ETH (~3M),遠低於黑客的實際利潤 (P2)。 在我看來有兩個根本原因(或攻擊向量): (免責聲明:這只是基於我初步分析的分析。我可能會並且有時會犯錯!) (1)四捨五入錯誤導致近乎無限的 yETH 鑄造。 這實際上類似於平衡器的黑客攻擊。縮放因子(在 yETH 中稱為 rate)是一個約為 1e18+x% 的數字,乘法-除法使虛擬餘額打破不變性。該代碼實際上使用四捨五入的虛擬餘額來計算 yETH 的新總供應量,並將鑄造的 (new_supply - old_supply) 轉給攻擊者 (P3)。 (2)update_rate 函數導致 yETH 保險庫的巨大損失。 實際上,攻擊者在包裝的 OETH 和 yETH 上調用了 "update_rates" 兩次,每次損失約 1000 ETH(其中 yETH 是從 st-yeth 保險庫中燒毀的,P4)。-> 6M 損失。加上出售的 yETH 總利潤約為 ~9M。 這可能是由於不變性計算錯誤而不是單純的四捨五入錯誤所造成的。 ---- 我會在這條推文的評論中更新我對這次攻擊的新理解。
@yearnfi 更新 (1),我因為試圖在 @yearnfi 的 Discord 中提供幫助而被禁言 🤣
@yearnfi 更新,上面的連結不是官方的私訊。但我認為它已經揭示了根本原因,並指出了脆弱的代碼。
28.6K