至此,這次事件告一段落。對於在上週末發生的這件事,我們可以做個簡短的回顧。
在上個月月底時,multi-geth釋出了最新的版本,並且宣佈結束了對etc的支援。因為etc在硬分叉的過程中,會破壞掉程式碼的不變性,造成一部分智慧合約中的回退函式失效。
(硬分叉:指比特幣區塊格式或交易格式(這就是廣泛流傳的“共識”)發生改變時,未升級的節點拒絕驗證已經升級的節點生產出的區塊,不過已經升級的節點可以驗證未升級節點生產出的區塊,然後大家各自延續自己認為正確的鏈,所以分成兩條鏈)
肇事礦工(etc地址:0x75d1e5477f1fdaad6e0e3d433ab69b08c482f14e)使用了舊軟體,挖掘了約3000個區塊。
2miners礦池由於multi-get釋出了新的版本,不再繼續對etc支援,從而進行短暫地下線維護。
在2miners礦池維護期間內,礦池中並沒有產生新的區塊。當礦池維護結束重新上線後,約3000個區塊同時被插入到2miners礦池中。
由於etc上所有的parity或者openethereum節點都無法處理這3000個來自舊系統上挖出來的區塊,因此就出現了鏈分叉:所有的parity或者openethereum節點上的礦工都依舊在原始主鏈上進行挖掘,但是在core-geth節點的礦工就在被插入約3000個區塊的新鏈上挖掘。
根據工作量證明(pow)共識,在新鏈上的工作量會逐漸超過原始主鏈,在原始主鏈上parity節點的一些礦工根據會“選擇在更多工作量的鏈上進行挖掘”的準則,轉移到新鏈上進行挖掘。
最終,在區塊高度10904146處,總共3693個區塊被透過重組的方式被加入到區塊鏈中,重組是一種區塊鏈的特性,通常被用與對區塊鏈的回滾操作。