對於鏈圈的朋友來說,區塊鏈既熟悉又陌生,熟悉的是我們幾乎每天都可以看到區塊鏈的新聞、每天聽到周圍的人談論區塊鏈,陌生的是對於區塊鏈的一些技術性的東西甚至術語,完全不知道或完全不懂,本文和大家分享的就是區塊鏈常見術語至分叉。
以比特幣區塊鏈為例,平均每10分鍾可以產生一個新區塊。
但是要注意,這里有一個詞“平均”,這個詞就代表:有可能100分鍾產生一個,也有可能同時產生好幾個。
我們用個簡單的圖來說明一下:
圖中ABC區塊是順序產生的,但是在C區塊之后同時產生了D和E2個區塊:
D和E新區塊會分別向自己臨近的區塊廣播:“我是新生成的區塊呀!快把我記錄進去呀!”並且會分別在此基礎上開始生成新的區塊:
很快,就會有一個區塊N先后收到D和E的廣播,發現D和E擁有同樣的時間戳,那么區塊N就會判斷,選擇其中一個為有效區塊,另外一個為無效區塊。
那么判斷的依據是什么呢?
就是鏈的長度。
此時D區塊的基礎上已經產生了3個新區塊,但是E區塊基礎上只產生了1個新區塊,此時區塊N就會向其他節點廣播:“D跟E雖然是同時生成的,但是D基礎上的鏈更長,所以D有效E無效。”
結果就是區塊D和它基礎上的3個新區塊繼續存在,E和它基礎上的1個新區塊被放棄。
同時產生2個新區塊的狀況,就叫做“分叉”。
在上面的例子中,區塊鏈的節點都認可D而放棄E,E和它基礎上的1個新區塊存在了一段時間又消失。這種可以消除的臨時分叉,就叫做“軟分叉”。
但是如果有一些節點即便是知道D基礎上的新區塊更多、鏈更長,依舊以“法律”或“道德”的各種名義號召大家認可E和它基礎上的1個新區塊,一旦得到響應,那么E區塊所在的鏈就會發展壯大起來,不再消失。這種固定分叉,就叫做“硬分叉”。