以太坊?OpenEthereum?單客戶端在區塊?#12244294?處發生的 Bug 導致當時的以太坊網絡停機,并在問題區塊產生后無法與網絡保持同步。那么造成這個事故的原因究竟是什么呢?
先看觸發了這個事故的交易:
https://eth.tokenview.com/cn/tx/0x7006f38fa2e6654fae1a781aefc5885fe0cb8f778b1add10636eaf7e34279247
這是一筆合約調用交易,是從 KuCoin 交易所向其他地址分發ETH。
四名男子因涉嫌欺詐和清洗2600萬美元加密貨幣被英國一法院判處15年監禁:1月17日消息,英國皇家檢察署(CPS)發布聲明稱,四名男子因從澳大利亞一家加密貨幣交易平臺欺詐性地獲取和清洗價值約 2600 萬美元的比特幣和其他加密貨幣而被英國法院判處 15 年監禁,罪名包括欺詐、轉換和轉移犯罪財產罪。 據悉,這四名男子與 James Parker 合作,后者發現并利用了這家加密貨幣交易平臺上的一個漏洞,并在 2017 年 10 月至 2018 年 1 月策劃了一個陰謀,使其和其同伙能夠以不當方式獲得價值 2100 萬英鎊的信貸。James Parker 已于 2021 年 1 月去世。[2023/1/17 11:17:00]
BitKeep:7.2.9 APK相關版本用戶需盡快轉移資金:12月26日消息,Web3 多鏈錢包 BitKeep 發布公告稱:因 7.2.9 APK 版本被黑客劫持,請 APP 為以下版本號的用戶盡快轉移資金:7.2.9 com.bitkeep.w4、7.2.9 com.bitkeep.wallet5、7.2.9 io.bitkeep.wallet、7.2.9 com.bitkeep.app、7.2.9 com.bitkeep.w5。此外,BitKeep Chrome 插件錢包目前安全。[2022/12/26 22:08:04]
我們仔細分析一下合約調用過程:
數據:已有95%的Cardano鏈上區塊來自1.35.3版本節點:金色財經報道,據Cardano區塊鏈開發團隊Input Output透露,他們已在備受期待的 Vasil 硬分叉方面取得了重大進展,截至 9 月 12 日,95%的Cardano鏈上區塊來自1.35.3版本節點。
據此前披露消息稱,Cardano 要求網絡節點升級到 1.35.3 版本需要達到 75% 的闕值。此外,截至9月12日,大多數高流動性交易平臺已經整合了Vasil,包括Binance和Coinbase等,但Zipmex、CEX.io、CoinDCX、Coinbase Pro等交易平臺尚未加入。按照Cardano披露的信息,Vasil預計在9月22日上線,為了能夠觸發Vasil升級,流動性最高的25家加密貨幣交易平臺中80%必須支持。(u.today)[2022/9/13 13:26:01]
在瀏覽器的“數據輸入”欄展示的是合約調用的參數,第一行表示地址列表從“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”發送 0 ETH 會造成什么呢?會造成 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【今日頭條】 馬斯克:狗狗幣是不可阻擋的金融工具據Businessinsider,在美國當地時間周六晚間的《周六夜現場》脫口秀中,馬斯克稱:“(狗狗幣)這是貨幣的未來.
1900/1/1 0:00:00曾經的價格周期模型逐漸失效。從2020年10月開始,比特幣月線連續六連陽,這種上漲在比特幣歷史上,甚至在傳統金融世界都是少有的.
1900/1/1 0:00:00在之前的文章中,我們說過,“挖礦”是普通人參與加密數字貨幣成長紅利的最好方式。那么,對于普通用戶來說,如何參與挖礦,常見的挖礦方式都有哪些呢?我們今天就來看一看.
1900/1/1 0:00:00狂人本著負責,專注,誠懇的態度用心寫每一篇分析文章,特點鮮明,不做作,不浮夸!本內容中的信息及數據來源于公開可獲得資料,力求準確可靠,但對信息的準確性及完整性不做任何保證,本內容不構成投資建議.
1900/1/1 0:00:00以太坊已成為許多去中心化應用程序開發人員的首選區塊鏈。以太坊擁有迄今為止最大的開發者社區,甚至超過了比特幣,因為它更加注重技術和開發者。盡管如此,最近有越來越多的項目可能會搶占以太坊霸主的位置.
1900/1/1 0:00:00