北京時間7月31日,Multi-geth發佈了1.9.18版本,宣佈結束對Ethereum Classic的支持,主要原因是由於Ethereum Classic在其Phoenix硬分叉過程中破壞了其代碼的不變性( immutability )以及代碼及法則(Code-is-law)的準則,造成部分智能合約的中的回退函數失效。

Multi-geth自身是一個分佈式,支持多種區塊鏈的以太坊協議的開發套件。其對Ethereum classic的結束支持代表着會有衆多替代鏈出現並且Ethereum classic的所有節點會根據不同的準則來自己決定那一條替代鏈會是主鏈。有一些節點可能會選擇最長的鏈作爲主鏈,一些節點可能會選擇有最大區塊難度的鏈作爲主鏈,同樣,也會有一些節點選擇目前工作量最大的鏈作爲主鏈進行挖掘。

事件始末:

以太經典(Ethereum Classic)於昨日在官方推特上發佈消息,表示目前正在進行網絡維護,希望包括交易所、礦池等在內的服務商暫停 ETC 存款,以進一步檢查網絡問題。

此前以太坊基金會社區經理 Hudson Jameson 在推特表示,Ethereum Classic 區塊鏈出現問題,交易所需要暫停存取款。並建議礦工應合作去挖同一條鏈,放棄少部分人挖的鏈,直到問題結束。

北京時間8月2日,Ethereum Classic Labs在Medium官方宣佈ETC網絡已完成區塊鏈重組,並稱該問題已經得到解決。

由於無法識別的錯誤,OpenEthereum / Parity和Open-ETC不再正常運行。該錯誤導致臨時鏈和少數鏈斷裂。將來,任何運行OpenEthereum或Open-ETC的以太坊經典節點都可能導致挖掘不正確的鏈。

問題解析及事件還原:

本次事件發生的流程如下

1. 惡意礦工(ETC地址:0x75d1e5477f1fdaad6e0e3d433ab69b08c482f14e)挖掘了約3000個區塊。

2. 2Miners礦池由於背景中Multi-get結束對Ethereum classic的支持而短暫下線進行維護。

3. 當2Miners礦池維護的這段時間內,2Miners礦池並沒有產生新的區塊。在2Miners礦池結束維護上線後,約3000個區塊同時被插入到2Miners礦池中。

4. 由於Ethereum Classic上所有的Parity或者OpenEthereum節點都無法處理這3693個來自Core-Geth節點的區塊,因此就出現了鏈分叉:所有的Parity或者OpenEthereum節點上的礦工都依舊在原始主鏈上進行挖掘,但是在Core-Geth節點的礦工就在被插入約3000個區塊的新鏈上挖掘。

5. 根據工作證明(POW)共識,在新鏈上的工作量會逐漸超過原始主鏈,在原始主鏈上Parity節點的一些礦工根據會“選擇在更多工作量的鏈上進行挖掘”的準則,轉移到新鏈上進行挖掘。

6. 最終,在區塊高度10904146處,總共3693個區塊被通過重組(reorgnization)的方式被加入到區塊鏈中,重組是一種區塊鏈的特性,通常被用與對區塊鏈的回滾操作(rollback)

是否爲攻擊:

是否定義爲攻擊,我們主要是看這些約3000個區塊是怎麼產生的。問題真正的原因,到底是因爲不小心斷網,在斷網期間挖掘的區塊,還是有人刻意而爲之?

根據現有“未知錯誤”的官宣,我們還無法完全判斷此次事件的具體真像。

影響力:

對交易本身來說,此次事件的影響並不大,因爲這些區塊裏面的交易寥寥無幾。再加上這些區塊之外沒有被挖掘的交易也會最終被重新提交。

但是對於“鏈”本身來說,此次事件可能會造成部分影響。原因是這在Multi-geth結束對Ethereum Classic的支持後不到一天就出了問題。雖然此次情況相對簡單,但是倘若這是高手們有組織的多次利用同一手段重複操作,那麼其目的是否是要刻意造成多次分叉我們不得而知。而且通過該種方式,惡意攻擊者有可能發起51%攻擊來控制區塊鏈,進行雙花攻擊或者刪除已經存在鏈上的交易。

參考鏈接:

https://coinfomania.com/the-ethereum-classic-blockchain-etc-51-attack/

https://hashdeploy.com/?p=38898

https://hackmd.io/@cUBb4hAvQciAEPoU2yfrzQ/Skd4X6MZw

https://twitter.com/pool2miners/status/1289475794230587394?s=21

https://github.com/multi-geth/multi-geth/releases/tag/v1.9.18

https://cointelegraph.com/news/ethereum-classic-blockchain-splits-due-to-reorg-by-a-single-miner

相關文章