北京時間2021年8月27日20點50分左右,以太坊突然出現分叉。我們通過分析Geth的代碼版本修改和這筆造成分叉的交易厘清了以太坊分叉的根本原因:Geth舊版本在處理預編譯合約調用時,并未考慮特殊情況下參數值的處理,從而引發重疊拷貝,導致返回值異常。該漏洞已提交Geth官方,目前尚未披露細節,但攻擊者已經利用漏洞實施了攻擊。我們認為及時的分析和披露是必要的,也希望我們的分析能夠為社區提供必要的理解和幫助。
攻擊分析
運用我們的在線分析工具,可以看出:
以太坊將引入新的交易格式來降低交易費用:2月6日消息,近日,以太坊創始人Vitalik提出了一種解決方案,即在分片之前暫時緩解第 2 層的可擴展性問題和交易費用,新的更新可以捆綁并添加到上海硬分叉中。 Vitalik 稱,近期硬分叉的計劃已經在制定中,來引入“攜帶 blob 的交易”(“blob-carrying transactions”),這將提高Rollup的可擴展性。通過實現將用于分片但不實際分片交易的格式,這個 EIP 將提供一個權宜之計,直到交易格式用于分片。Vitalik稱 ,通過此次新的分叉,以太坊交易費用或將在 2022 年底降低至目前的五分之一。[2022/2/6 9:33:49]
圖一
以太坊未確認交易為232,643筆:金色財經消息,據OKLink數據顯示,以太坊未確認交易232,643筆,當前全網算力為880.06TH/s,全網難度為11.76P,當前持幣地址為71,752,510個,同比增加141,139個,24h鏈上交易量為1,765,458ETH,當前平均出塊時間為13s。[2021/12/24 8:02:19]
這筆交易執行了一個精心構造的STATICCALL,攻擊者將addr設為0x04,inOffset為0,inSize為32,retOffset為7,retSize為32。
研究:價值10億美元的以太坊代幣易遭到假冒存款攻擊:金色財經報道,根據北京大學、北京郵電大學、浙江大學和昆士蘭大學的研究人員的一項新研究,以太坊區塊鏈上價值超過10億美元的代幣缺少2017年發布的一項軟件標準,使這些代幣容易被劫持并從交易所流失。該軟件漏洞被稱為假冒存款(fake deposit)漏洞,已在7772個ERC-20代幣發行商處被發現。該研究表明,通過操縱使用了不足的交易驗證方法的ERC-20代幣智能合約中的代碼,黑客幾乎可以無成本騙取大量資金。假冒的存款攻擊隨后可能會使交易所崩潰,導致ERC-20代幣和其他加密貨幣持有人損失其資金。[2020/8/25]
圖二
由于STATICCALL的目標地址是預編譯合約,所以會執行圖二中的RunPrecompiledContract。
圖三
圖四
根據圖三和圖四的代碼,可以看到預編譯合約0x04真正執行的邏輯只是簡單地把in返回。
圖五
圖六
圖五是STATICCALL的執行過程,753行是執行預編譯合約的入口,751行的args指向EVM的Memory中inOffset~inOffset+inSize這篇區域的指針,也就是說args指向Mem。
根據圖六以及前文對預編譯合約0x04的分析,我們可以知道753行的返回值ret是與args完全相同的指針,也指向Mem。
在1.10.7版本的Geth中:762行將ret指向的值賦給EVM的Memory中retOffset~retOffset+retOffset這篇區域,也就是將Mem的值賦給Mem,而由于ret是一個指向Mem的指針,這次Memory.Set修改了Mem的值,也就修改了ret所指的值。所以在第771行返回的ret已經不是預編譯合約執行結束時的ret了。在1.10.8版本的Geth中:增加了766行:ret=common.CopyBytes,將Mem中的值做了一次深拷貝賦給ret,那么在767行執行的Memory.Set只會修改Memory而不會修改ret,在771行返回的ret就是正確的ret。總結
通過對整個攻擊流程的梳理和Geth源代碼的分析,我們認為根本原因在于Geth舊版本在處理預編譯合約的調用時并未考慮異常值的處理,導致攻擊者利用該漏洞實施了重疊拷貝,影響了返回值,最終導致分叉的出現。由于Geth是BSC、HECO、Polygon等公鏈的基礎,因此該漏洞影響范圍甚廣。目前各公鏈也先后推出了升級和補丁,我們也呼吁各相關節點盡早升級打上補丁,以確保基礎設施的安全。
要點: DuneAnalytics在由聯合廣場風投領投的A輪融資中籌集了800萬美元。該公司首席執行官FredrikHaga表示,Dune希望擴大其團隊,推出新的數據平臺,并支持更多區塊鏈.
1900/1/1 0:00:00巴比特訊,9月2日,Twitter旗下短視頻共享應用Vine的聯合創始人DomHofmann發推表示,將對所有以太坊地址推出合成Loot代幣.
1900/1/1 0:00:00據dailyhodl9月6日消息,美國國家橄欖球聯盟(NFL)暫時禁止球隊出售不可替代的代幣(NFT)并與加密交易公司達成贊助協議.
1900/1/1 0:00:00在過去的幾天里,美國參議院的議員們都崩潰了,特別是在crypto領域方面。最近一項名為“美國投資法案”的立法被反復推敲,希望兩黨的意見可以達成一致.
1900/1/1 0:00:00巴比特訊,8月31日消息,以太坊2.0質押協議Lido關于向以太坊秘密共享驗證器網絡Obol和非托管開源Eth2質押網站BloxStaking各投入10萬美元的LDO代幣用于SSV的研究的投票已.
1900/1/1 0:00:00金色財經報道,薩爾瓦多央行在8月17日已出臺兩份草案,指導銀行和金融機構如何為客戶提供BTC相關服務.
1900/1/1 0:00:00