Go-Ethereum

如果不存在(唯一)最長的區塊鏈,那麼乙太坊的目前狀態是模棱兩可的,會發生什麼?

  • September 3, 2017

如果不存在(唯一)最長的區塊鏈,那麼乙太坊的目前狀態是模棱兩可的,會發生什麼?

我知道最長的區塊鏈總是被認為是乙太坊的目前狀態。

說,有兩個最長的區塊鏈。

會不會有 50% 的礦工在一條鏈上工作,而其他礦工在另一條鏈上工作?在這種情況下,可能是因為鏈在時間上被緊密地擴展,所以乙太坊的狀態在任意時間內都保持模糊?

協議是否說明瞭如何避免這種情況?

規則是礦工必須在最長的鏈上開採,即使它只比另一條鍊長一點。由於塊是隨機創建的,因此在正常情況下,存在相同長度的競爭鏈的情況極不可能持續很長時間。請參閱比特幣白皮書,其中首次描述了乙太坊目前使用的機制:https ://www.bitcoin.com/bitcoin.pdf

如果網路被分割,以至於一半的礦工不知道另一半創建的區塊,這可能會產生長的發散鏈。最終一個會比另一個長,所以當網路分區固定時,這種情況會以一種或另一種方式解決。然而,在這種情況發生之前,不知道分區的節點可能會假設事務已得到充分確認,因為它們有很多塊深,但後來在分區解決時才看到它們成為孤立的。

客戶關注雜湊率並在雜湊率下降時警告使用者可以在一定程度上緩解此問題。(這也有助於使用者被惡意與網路隔離並饋送較短鏈的情況。)但是,雜湊率的下降也可能由於其他原因而發生,理論上分區可能與總數的增加同時發生算力。

如果乙太坊轉向權益證明,這個問題應該得到解決,或者至少大大改善:客戶將擁有一份他們希望線上的驗證者列表,如果有一半的人,網路應該無法完成區塊他們已經消失在網路分區的另一邊。

引用自:https://ethereum.stackexchange.com/questions/25726