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

名詞解釋第七十二講:軟分叉

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

 

區塊鏈上節點眾多,當出現新版軟體後,不一定所有的節點都願意升級,也不一定所有的節點都能馬上反應過來。節點面對新版軟體反應的不同,造成的分叉結果也不同。

 

根據升級後的區塊鏈是否能相容舊區塊鏈,分叉又分為“硬分叉”和“軟分叉”。今天先重點介紹軟分叉。

 

軟分叉:是指區塊鏈網路系統軟體升級後,舊的節點並不會意識到比特幣程式碼發生改變,並繼續接受由新節點創造的區塊,新老節點始終還是在同一條鏈上工作。

有人說硬分叉就是分叉,而軟分叉就是不分叉,其實這話並不完全對,硬分叉就是分叉是對的,但軟分叉其實也可能會出現分叉的情況。

 

一、不分叉的軟分叉

軟分叉通常不會產生兩條區塊鏈,實際上未升級節點無法識別新規則的真實意義,意識不到有新規則的改變。於是,新規則下產生的區塊會被舊節點接受。這時,如果已經升級的節點也可以驗證未升級的節點生產出的區塊,那麼新規則釋出後,新舊節點仍然在同一條鏈上,對整個系統的影響也就較小。

 

這種情況的軟分叉其實只是在叫法上有點迷惑性,實際上這種舊節點接受新區塊,新節點也接受舊區塊的軟分叉,本質上是新、舊節點互相相容,不分叉的。

 

                                

 

二、分叉的軟分叉

如果系統軟體升級後,和舊版本不相容,那麼升級後的新節點就無法接受未升級節點挖出來的全部或者部分割槽塊,這種軟分叉是真的分叉了。因為:舊節點接受新區塊,而新節點不接受舊區塊。

 

這種形式的軟分叉又分為兩種情況:

 

1、新節點算力大於50%

因為新節點算力大於50%,所以不論舊節點接不接受新區塊,最長的鏈也一定會是全部由新區塊組成的鏈。而且,這條最長鏈是雙方都認為合法的一條。

未升級節點挖出來的區塊得不到升級節點的認可,由此產生的區塊最終會被認為是短鏈而被放棄。

 

2、新節點算力小於50%

新節點因為算力小於50%,又不接受舊區塊,所以挖的區塊鏈長最短,所以縱然舊節點同時承認兩條鏈的合法性,最終也還是會選擇自己所挖的最長鏈。而全部由新區塊組成的鏈會被舊節點放棄掉。

 

軟分叉的優勢:

1)軟分叉可以保證不想升級的節點不去升級,這種不想升級的需求在現實生活中其實是很常見的。

 

2)軟分叉不要求所有節點在同一時間升級,允許逐步升級,不影響軟分叉過程中系統的穩定性和有效性。

 

軟分叉的侷限性:

1)軟分叉向前相容的特性,意味著不能增加新欄位,只能在已有交易資料結構下做修改,所以升級空間有限。

 

2)由於舊版本節點不會仔細驗證改變的欄位,實際上是察覺不出來不能識別新規則的真實意義,因此容易對舊版本節點造成欺騙。

 

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