1. 程式人生 > >名詞解釋第七十一講:分叉

名詞解釋第七十一講:分叉

 

這裡是王團長區塊鏈學院,與最優秀的區塊鏈人一起成長!今天給大家講講分叉。

 

 

一般來說,在區塊鏈上同一時間內只會產生一個區塊,但如果在相同時間,出現兩個區塊同時被生成的情況,全網中就會出現兩條長度相同、包含的交易資訊相同但由不同的礦工簽名或者交易排序不同的區塊鏈,這樣的情況叫做分叉。

 

分叉可能由於礦工遵從不同共識規則、礦工爭奪記賬權等原因造成。

 

一、礦工遵從不同共識規則引發的分叉

以比特幣為例,2017年7月,為了解決比特幣區塊鏈擁堵問題,一些比特幣愛好者提出了bitcoin cash(BCH)分叉方案,但是社群又有一部分礦工不支援,所以就導致比特幣區塊鏈一分為二。

 

從軟體的角度來講,就是系統升級,在中心化系統中,升級比較簡單,中心一次更新,全網同步;但在區塊鏈等非中心化系統中,“升級”並不是那麼簡單,甚至可能一言不合就造成區塊鏈分叉。

 

礦工遵從不同共識規則引發的分叉是指區塊鏈在進行“升級”時發生了意見分歧,從而導致原有的區塊鏈一分為二。因為沒有中心化機構,比特幣等數字資產每次程式碼升級都需要獲得比特幣社群的一致認可,如果比特幣社群無法達成一致,區塊鏈很可能形成分叉。

 

                                             

 

二、礦工爭奪記賬權引發的分叉

以比特幣挖礦為例,基於工作量證明機制,礦工通過求解數學難題獲得記賬權,建立新區塊,並把區塊連結到鏈上。

 

但是,如果兩個礦工同時解出了題,獲得了記賬權,這該怎麼辦呢?雖然兩個礦工得到的答案都是對的,但由於每個礦工生成的區塊包含的交易資料不一樣,所以實際上生成的區塊是不一樣的。

 

在下一輪挖礦過程中,由於距離問題,不同礦工看到這兩個區塊的先後順序是不同的,各個礦工會分別把最先看到的區塊複製到自己的賬本上,即連結到本地區塊鏈上,然後再開始新一輪的挖礦。這樣一來,就會出現分叉的兩條鏈。

 

對於由於爭奪記賬權導致的分叉,分叉後得到的兩條鏈的算力是有差別的,這種差別隨著生成的區塊越來越多,會越明顯,最終,兩條鏈會出現一長一短的情況,而長的那條鏈就成為了主鏈,短的鏈就消失了。

 

儘管區塊鏈是基於一套嚴格的制度和規則,但仍然避免不了各種主觀和客觀的因素導致分叉的產生。

 

想要了解更多的區塊鏈知識,可以關注我們的公眾號:王團長區塊鏈日記,與最優秀的區塊鏈人一起成長!