Curve遭受重創,其背後“真兇”到底是誰?

這兩天加密圈又發生了一件大事!排名位居第二的去中心化交易所Curve受到攻擊,現已造成5200萬美元的損失,可能這會大家的內心OS:這defi協議被黑客攻擊不是很正常的事嘛,隔幾天來一次的,但這次還真不一樣!下面給大家深入講解一下。

Curve遭受重創,其背後“真兇”到底是誰?

誰是“真兇”

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% 的市場份額位列第二名。

Curve遭受重創,其背後“真兇”到底是誰?

不過還好這次出現bug的語言是Vyper而不Solidity,小編可沒有看笑話的意思,從數據也能看出Solidity的應用有多廣泛,例如Aave、Compound、MakerDAO等,它要是出問題了那整個DeFi 世界都岌岌可危呢。

其實Vyper在推出時,主打的就是一個安全性,但也沒想到會發生這樣的事,關於此次的bug,細說起來話是重入攻擊!

什麼是重入攻擊?

重入攻擊是指攻擊者在智能合約的一個函數調用完成之前,反複調用該函數,利用合約的邏輯來竊取資金或操縱數據。
例如,如果一個合約在更新余額之前就發送資金給用戶,那麼攻擊者就可以多次調用該函數,從而獲得比實際餘額更多的資金,你也可以簡單粗暴的理解為撈不完錢的聚寶盆。

Curve遭受重創,其背後“真兇”到底是誰?

據悉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主要在以下幾個平台中做了抵押貸款:

  1. AAVE上抵押了1.9億CRV,借了6500萬美元,清算價0.37美元;
  2. FRAXlend上抵押4600萬CRV,借了2100萬FRAX,清算價0.4美元,現已還款並取回了750 萬枚CRV;
  3. Abracadabr存入4000萬CRV,借出1800萬美元,清算價0.39美元;
  4. Inverse上存入1600萬CRV,借出700萬美元,清算價0.4美元。

整個事件也從側面提醒了DeFi項目方、開發者需要對智能合約進行嚴格的安全審查,並儘可能採用更加成熟且經過驗證的編程語言。