這兩天加密圈又發生了一件大事!排名位居第二的去中心化交易所Curve受到攻擊,現已造成5200萬美元的損失,可能這會大家的內心OS:這defi協議被黑客攻擊不是很正常的事嘛,隔幾天來一次的,但這次還真不一樣!下面給大家深入講解一下。
誰是“真兇”
Curve受到攻擊的原因是由於舊版本的以太坊編程語言Vyper存在Bug所致,這裡有點涉及專業知識,舉個不巧當的例子,就好比安卓的操作系統出了問題,那這個波及面可就廣了啊,但凡用到安卓操作系統的手機、電腦等都會出現問題,你想想這個嚴重程度,據悉使用Vyper編程語言的有uniswap v1版本、Yearn Finance等。
Vyper 創建於2017 年,在此之前開發人員編寫智能合約最常用的語言是Solidity,它們都是一種面向智能合約的編程語言,可編譯為以太坊虛擬機(EVM)的字節代碼,運行在EVM 上。
要說它們之間有什麼區別的話,那就是Vyper基於Python風格的語法,讓開發者更容易理解和編寫智能合約,而Solidity是由V神推出的,作為一種更為成熟和廣泛使用的編程語言,擁有更豐富的生態系統和更多的工具支持。
截至此次攻擊事件發生後DeFiLlama 最新統計數據顯示:在DeFi 的語言開發門類下,Solidity 以94.91% 的市場份額佔據絕對壟斷地位,而Vyper 以2.08% 的市場份額位列第二名。
不過還好這次出現bug的語言是Vyper而不Solidity,小編可沒有看笑話的意思,從數據也能看出Solidity的應用有多廣泛,例如Aave、Compound、MakerDAO等,它要是出問題了那整個DeFi 世界都岌岌可危呢。
其實Vyper在推出時,主打的就是一個安全性,但也沒想到會發生這樣的事,關於此次的bug,細說起來話是重入攻擊!
什麼是重入攻擊?
據悉Curve 生態中的4 個資金池CRV/ETH、alETH/ETH、msETH/ETH、pETH/ETH被攻擊,超過4500 萬美元的流動性已從借貸協議Alchemix、合成資產Metronome 、NFT 借貸平台JPEG'd的池中流失,近2500 萬美元從CRV/ETH 池中流出。
整個事件的時間線
7 月30 日 Curve 上的pETH-ETH 、msETH-ETH、 alETH-ETH 池子遭受攻擊。
7 月31日,以太坊編程語言Vyper 發推表示,Vyper 0.2.15、0.2.16 和0.3.0 版本版本的重入鎖失效。
7 月31日,Curve 推特發文表示,由於重入鎖故障,使用了Vyper 0.2.15 的穩定幣池(alETH/msETH/pETH) 遭到攻擊,其他池是安全的。
7 月31日,CRV-ETH 被攻擊,鏈上CRV 最低為 0.08 左右。
7月31日,Curve創始人已抵押2.92億CRV並藉出1.1億美元。
8月1日,被標記為“Justin Sun(孫宇晨)”的地址於剛剛向Curve創始人地址轉入200萬枚USDT。
8月1日,黃立成地址(machibigbrother.eth)向Curve 創始人地址轉入150 萬枚USDT,並收到375 萬枚CRV。
8月2日,某Curve疑似攻擊者已被定位,鏈上偵探ZachXBT在推特上嘗試聯繫名為“Michael Razoumovitch(@MichaelRazum)”的推特用戶以進行談判。
Curve被攻擊後,創始人Michael Egorov 開始了鏈上抵押貸款以補全損失金額,據加密研究員0xLoki統計, Michael Egorov主要在以下幾個平台中做了抵押貸款:
- AAVE上抵押了1.9億CRV,借了6500萬美元,清算價0.37美元;
- FRAXlend上抵押4600萬CRV,借了2100萬FRAX,清算價0.4美元,現已還款並取回了750 萬枚CRV;
- Abracadabr存入4000萬CRV,借出1800萬美元,清算價0.39美元;
- Inverse上存入1600萬CRV,借出700萬美元,清算價0.4美元。
整個事件也從側面提醒了DeFi項目方、開發者需要對智能合約進行嚴格的安全審查,並儘可能採用更加成熟且經過驗證的編程語言。