以太坊?OpenEthereum?單客戶端在區塊?#12244294?處發生的Bug導致當時的以太坊網絡停機,并在問題區塊產生后無法與網絡保持同步。那么造成這個事故的原因究竟是什么呢?
先看觸發了這個事故的交易:
https://eth.tokenview.com/cn/tx/0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247
FDIC:花費200億美元處理硅谷銀行倒閉:金色財經報道,美國聯邦存款保險公司(FDIC)主席馬丁·格倫伯格當地時間3月27日表示,FDIC花費了200億美元處理硅谷銀行倒閉事件,另花費25億美元處理簽名銀行倒閉事件。馬丁·格倫伯格指出,200億美元中的約88%即180億美元用于支付硅谷銀行未投保存款的成本,而25億美元中的約三分之二即16億美元用于支付簽名銀行未投保存款的成本,但這些估計有不確定性,很可能發生變化。[2023/3/28 13:29:42]
這是一筆合約調用交易,是從KuCoin交易所向其他地址分發ETH。
Cboe加入Pyth網絡并將ErisX更名為Cboe Digital:金色財經報道,市場基礎設施提供商Cboe已加入Pyth網絡,它還將今年收購的數字資產交易所ErisX更名為Cboe Digital。通過在Pyth網絡上提供一些實時定價,Cboe Global Markets正在涉足去中心化金融。根據公司發布的消息,Cboe將從第四季度開始發布10個符號的有限衍生股票市場數據。該網絡建立在Solana區塊鏈上,將市場數據提供給鏈上項目和協議。它利用了來自70多家值得信賴的供應商的數據,包括Jane Street、Virtu Financial和Two Sigma Securities。(the block)[2022/10/6 18:40:32]
我們仔細分析一下合約調用過程:
預測市場PredictIt起訴CFTC下令關閉網站:金色財經報道,PredictIt的一些交易員和學術用戶以及技術提供商已經提起訴訟,試圖阻止商品期貨交易委員會 (CFTC) 關閉這個受歡迎的選舉投注網站。
此前報道,CFTC強制關閉預測市場PredictIt在美國地區的商店。[2022/9/15 6:59:24]
在瀏覽器的“數據輸入”欄展示的是合約調用的參數,第一行表示地址列表從“40”(16進制)字節,也就是64字節開始,圖中第4行,第二行表示轉移數額的列表從“1a0”(16進制)字節,也就是416字節開始,數據輸入欄第15行。
轉賬是按照地址列表的順序進行的,往每個地址轉入的數額和轉移數據的列表一一對應的。
現在我們開始遍歷地址列表,看第三行的“10”(16進制),表示的是即將為接下來的16個地址轉入ETH。
按照圖上順序,當數到第11個地址的時候,發現值是“10”。這個值會被認為是地址列表中的第11個地址,然而事實上是表示轉移數額的列表長度。那么按照第三行的指示,應該向16個地址轉入,合約會把“0x10”當成地址繼續執行轉賬操作,向地址“0x10”轉入0個ETH。
注意,“0x10”是EVM“特殊地址”之一,它完全處在EVM的預編譯合約列表內。它是一個由EIP-2537斷言的預編譯合約,是為BLS配對密碼學程序而設的,但這個EIP還未部署到主網上。
那么在柏林硬分叉中給“0x10”發送0ETH會造成什么呢?會造成Gas消耗產生分歧。
“0x10”地址的Gas消耗分歧
柏林硬分叉改變了EVM中Gas消耗量的計量方法。在EIP-2929實施后,如果在一筆交易中對同一個存儲槽多次執行狀態存儲操作,第一次執行會消耗更多Gas,后續執行的消耗會更少。
這就是OpenEthereum在區塊#12244294處發生Bug的根源:OpenEthereum包含了EVM已實現的預編譯列表。所以OpenEthereum會對該筆交易中訪問了“0x10”的交易給gas折扣。但網絡的絕大部分活躍客戶端都不是這樣實現EIP-2929的,它們只會給訪問了已激活預編譯合約的交易提供gas折扣。
由此,OpenEthereum客戶端對該交易消耗了多少Gas的計算與網絡中其他客戶端發生了分歧。
這場由Gas消耗分歧引起的OpenEthereum單客戶端停機,雖沒有嚴重到導致重大的鏈分叉,但也提醒我們利用多客戶端實現來提升節點穩定性。
不可否認,區塊鏈技術仍然處于不斷嘗試不斷前進的過程中,2021年爆發的Defi和NFT也以前所未有的速度普及給更多的受眾,Tokenview希望攜手更多的開發者打造更好的區塊鏈世界。
盡管機構對比特幣的價值存儲能力贊不絕口,但事實是,許多公司都接受比特幣作為支付手段。隨著比特幣價格和受歡迎程度的持續提高,近幾個月來比特幣的大規模采用率直線上升.
1900/1/1 0:00:00在最近的加密數字貨幣大幅下跌的期間,我在幣乎社區做了一個小的問卷調查,了解社區用戶在此期間比特幣的買賣情況。發現問卷回答的調查者當中,更多人在此期間增持了比特幣.
1900/1/1 0:00:00尊敬的用戶: AOFEX將于4月27日上線XCH,具體時間安排如下:交易時間:4月27日19:00充提業務:將于XCH主網上線.
1900/1/1 0:00:00在上一個文章筆者寫道,比特幣在120日線附近已經嚴重超跌,已經是底部了,可以在那里附近接點現貨以及重倉做多了,如我所料,到了這個位置基本上止跌觸底,今天開啟了日線級別的大反彈了.
1900/1/1 0:00:00尊敬的用戶: 以下是Chia瓦特云算力免責聲明:1、您已對購買云算力的風險、產出和收益有充分了解,自愿承擔WBF云算力的購買費用以及購買云算力后運行云算力所產生的技術服務費.
1900/1/1 0:00:00特斯拉周二大跌4.53%,市值一夜蒸發321億美元,約合人民幣2082億元,目前總市值6764億美元。特斯拉大跌主要原因還是周一盤后的那份第一季度財報.
1900/1/1 0:00:00