如果乙太坊網路分離會發生什麼?
假設中國的網際網路突然與世界其他地區分離(由於意外或政府行為)。中國的礦工繼續開採乙太坊區塊,所有其他礦工也是如此。
幾天后,防火牆鬆動,網路重新加入。
會有什麼後果?
首先,在現實世界中,人們會注意到。從分離雙方的角度來看,網路的雜湊率會大幅下降。人們很快就會弄清楚發生了什麼,然後可能會嘗試修復它。
網路分裂時
為了討論,我們假設每個人都照常進行。
現在,在分裂的每一側都有一個單獨的鏈,分裂網路每一側的礦工繼續向各自的鏈添加塊。
分裂的每一方的使用者都可以像以前一樣進行交易和呼叫合約,儘管這些交易不能跨越分裂傳播到另一條鏈——它們只會在分裂的該使用者一側可見。因此,例如,如果 Alice 在拆分的一側嘗試向她的朋友 Bob 在拆分的另一側發送一些 ETH,那麼對於 Alice,交易將成功完成,ETH 將被轉移到 Bob 的地址。然而,鮑勃實際上不會收到貨幣,他也不知道愛麗絲進行了交易。
當網路重新連接時
現在想像導致分裂的問題得到解決,兩條鏈重新連接。
共識算法啟動,並嘗試將兩條鏈解析為一條鏈。在兩條鏈中,最長的將被視為主鏈,另一條鏈變為無效。鏈“長度”以累積難度而不是塊數來衡量,因此最長的鏈將是屬於具有最大散列能力的分裂一側的鏈 - 即兩個網路中更大、更強大的鏈。
失去的“較短”鏈上的塊將成為孤塊,其中包含的交易無效,直到孤立的交易可以重新打包成新塊。
雙花問題
想像一下,當網路一分為二時,Alice 在她的網路一側花費了一些 ETH。具體來說,她將在網路一分為二之前擁有的一些 ETH 用於涉及網路中其他人的交易中。在這種情況下,雙方都能夠看到交易已成功完成。
還想像一下,愛麗絲在道德上是應受譴責的。在與她一方的某人成功交易後,她將她的私鑰發送給另一方的 Bob。然後 Bob 可以在他的網路側花費相同的 ETH。這一切都很好,直到兩個網路重新連接,此時其中一個交易將變得無效,因為它們所在的鏈被無效。至此,愛麗絲和鮑勃早已不在。
在現實世界中,如果兩條鏈變得太長,並且處理的交易太多,那麼允許網路兩端重新連接的風險可能會太大(例如過多的雙花)。在這種情況下會發生什麼還有待觀察。
參考: