所謂區塊鏈的分叉,可以說是區塊鏈網絡中獨有的一種版本升級方式。像我們日常生活所用的“微信、淘寶”這些APP,實際都是中心化的應用,每隔一段時間騰訊、阿里這些應用的創建者們,為了增加新功能或解決一些bug,所以就要對程序進行升級。
這類app升級的時候,會由阿里、騰訊這些中心化的團隊,將代碼完成后,部署在后臺中,先進行服務器的升級,然后我們這些用戶才可以在終端(客戶端)升級產品,但歸根到底,這些中心化的互聯網產品,升級的內容是一致的,由中心化的公司決定,用戶統一升級。
而區塊鏈中的系統,我們知道,它是一個人人都可以參與的數據庫,它的代碼是開放的,整個網絡是去中心化的。這就意味著沒有中心化的公司來做升級決策,制定版本的升級內容,甚至連服務器都沒有。
所以,當區塊鏈在做版本升級時,就需要一種與中心化產品升級完全不同的升級方式。于是分叉就應運而生。
區塊鏈雖然沒有中心化的公司來維護、也沒有一個中心服務器,但每個人都可以參與進來,這就使得區塊鏈在做版本升級時,升級的內容會由參與的礦工共同來決定該如何更改,甚至有可能因為礦工之間發生分歧產生多個版本,不像互聯網一樣,一家獨裁,沒有選擇的余地。
此外它也是有終端的,每個終端都會連在區塊鏈這個大的分布式數據庫中。數據被打包成區塊,鏈接起來形成一個鏈式結構。
它的原理是這樣的:當區塊鏈進行版本升級時,其實是由終端開始升級,大家可以在各自社區中下載、安裝,進行升級。升級后的終端再接入區塊鏈網絡中,進行數據處理,共享數據。
在升級的過程中,必然有一段時期是,新老版本并存,在兩個版本接入數據的時候,會將現有的區塊鏈進行分裂,從某一個區塊開始,連接到兩個不同版本處理的區塊上,然后兩個區塊再各自連入新的區塊,由此形成了兩條鏈。就好像樹枝一樣,大家共用同一個樹干,共享之前未分開時的數據。
當所有人都完成升級后,老版本的那條鏈沒人再用了,自然就只剩下了一條新鏈,這種大家能達成共識且只有一種更新版本,兩者兼容的分叉,就叫做軟分叉。
而當大家不能達成共識的時候,就相當于在終端產生了多個新版本。大家在各自社區中下載、安裝完成,連接到區塊鏈上后,所形成的兩條鏈一直會有人使用,這就導致原來的一條鏈會徹底分裂成兩條新鏈,這種兩個版本不兼容,你不承認我,我也不承認你,就叫做硬分叉。它屬于升級異常的情況,這個分叉不會消失,反而會徹底分裂成兩條鏈。
總的來說,分叉這種基于去中心化的升級方式,看起來要比傳統互聯網麻煩很多,但麻煩的同時,因為它的代碼是開放式的,每個人都可以提出建議、參與更改,所以它實際上是給了每個人更多選擇的權利。也許,區塊鏈就在這樣的求同存異之中,孕育著更大的可能性。