什麼是軟分叉

買賣虛擬貨幣

在區塊鏈術語中會經常聽到兩個名詞:軟分叉和硬分叉,在上一節的區塊鏈科普欄目中,小編主要給大家介紹了硬分叉。

那麼問題來了,什麼是軟分叉,軟分叉又有著怎樣的優缺點呢?讓我們帶著以上問題細探究竟吧!

——《如何玩轉CoinEx》科普欄目

【ViaWallet是ViaBTC旗下產品,致力於打造一款全幣種資產管理的去中心化錢包,未來您只需要一個ViaWallet即可管理所有資產,ViaWallet同時也支援Staking(質押)以及去中心化交易所,為您提供更豐富多樣的產品功能,目前已經支援BTC、ETH、BCH、TRX等16+種主鏈資產、100萬+代幣資產。】

什麼是分叉

分叉,英文名:Fork,詞性:動詞,在程式設計師的世界裡,分叉的意思就是“複製並修改”,一般的軟體分叉會形成不同的版本,功能也有所差異,使用者根據需求選擇使用即可。

在區塊鏈的世界裡,分叉的意思不僅如此。雙方一旦出現意見不統一,就會選擇分叉升級,然後兩者執行在不同的共識規則下,每次分叉都會伴隨著區塊鏈原本的共識規則改變而改變。

分叉的原因

比特幣的底層技術是區塊鏈,區塊鏈最重要的一個特徵就是去中心化,這意味著比特幣網路並不是由個人維護,而是集體維護。

區塊鏈技術是基於開源社羣發展起來的,開源意味著所有程式碼,技術都是免費開放的,所有人都可以拿來使用並修改。

最初,中本聰發明比特幣大概只是想讓人們多一種更自由的貨幣交易方式,但隨著比特幣被更多的人所瞭解和使用,人們對比特幣的想法和要求也多了起來。

一些人開始覺得比特幣的區塊容量太小,總出現擁堵,於是這些人要求比特幣升級擴容;一些人又覺得比特幣的功能太單一,今後的發展不容樂觀,於是這些人又要求比特幣能夠有搭建DApp(去中心化應用)的功能。

社羣不同聲音的此起彼伏,對比特幣發展的分歧便可以理解為比特幣的分叉。

分叉的種類

分叉分兩種,一種是硬分叉,一種則是軟分叉,本文主要介紹的是軟分叉。

什麼是分叉

官方定義

A temporary fork in the block chain which commonly occurs when miners using non-upgraded nodes violate a new consensus rule their nodes don’t know about.

當新共識規則釋出後,沒有升級的節點會因為不知道新共識規則下,而生產不合法的區塊,就會產生臨時性分叉。

百科定義

軟分叉是指在區塊鏈或去中心化網路中向前相容的分叉。向前相容意味著,當新共識規則釋出後,在去中心化架構中節點不一定要升級到新的共識規則,因為軟分叉的新規則仍舊符合老的規則,所以未升級的節點仍舊能接受新的規則。

比特幣術語中的軟分叉

比特幣中的軟分叉主要是指因比特幣協議的突發改變而導致的相容性的問題。

比特幣協議發生改變,會有兩個不同版本的比特幣協議在同時使用,他們對其他區塊的接受規則不同會導致區塊鏈長期分叉,這兩個不同的鏈都會被不同的網路認為是有效的。

軟分叉是向前相容的。如下圖,軟分叉的新規則是舊規則的子集,所有被新版本認為是合法的區塊也會被舊版本所認同。

舊版本會接受新版本建立的區塊,新版本和舊版本是相容的。

如果有至少51%的礦工的算力轉向的新版本,那麼網路自動完成軟分叉:一開始舊版本建立的區塊在新協議下被認為是不合法的,這時會出現一個短暫的分叉,但最終新版本的分叉會趕超舊版本的分叉成為最長鏈,因為在舊版本上的算力是小於新版本的。

但是如果小於51%的礦工算力轉向新版本,那麼軟分叉將不會出現,因為舊版本比新版本有更多的算力支援,同時舊版本不相容新版本。

通俗定義

軟分叉對新版本要求更為嚴苛,不同意舊版本的一些規則;但舊版本比較憨厚,還能接受新版本軟體。所以對於軟分叉而言,新舊版本並非你死我活。

舉個例子,執行舊版本軟體就好比出門坐地鐵,而執行新版本就像是坐飛機。在地鐵站安檢的時候 (舊版本),拿著打火機,可以進站,可以上車,按照日常規程,基本沒人攔你。而在機場安檢時 (新版本),你的打火機只能貢獻給倒賣打火機的大爺大媽了。換句話說,有些在地鐵上能做的事情,在飛機上就不能做 (舊版本支援的事情,新版本不支援)。反過來看,因為坐飛機的安檢更為嚴格,所以如果你滿足了坐飛機的要求,坐地鐵自然沒有任何問題 (新版本支援的事情,舊版本也支援)。

總的來說,軟分叉較為柔和,區塊鏈網路系統版本或協議升級後,舊版本能相容新版本,只是新版本不相容舊版本而已,因此儘管會有輕微分叉,但仍可共存在同一條鏈下工作。

分叉優點

1)較好的相容性,可以選擇不升級繼續使用舊版本

軟分叉下舊版本能相容新版本,所以對於一些不想升級的人來說,可以選擇不升級,升級的選擇比較自由,有些人用慣了舊版本可能就不想使用新版本,這種現象在日常生活中也是比較常見的。

2)軟分叉總是隻有一條鏈,沒有分成兩條鏈的風險

軟分叉通常剛開始並不會產生兩條區塊鏈,因為新規則下產生的區塊會被舊節點接受,舊節點只是無法識別新規則的真實意義。所以新舊節點仍然處於同一條區塊鏈上,對整個系統的影響也就較小。

分叉缺點

1)升級空間有限

軟分叉相比硬分叉雖然“溫和”了不少,但由於軟分叉必須向前相容,也就是說不能增加新欄位,只能在已有結構下做修改,所以升級空間有限。

2)技術實現複雜
軟分叉相比硬分叉技術實現要複雜很多,會使區塊鏈的程式碼變得更復雜,這不利於未來的程式碼維護,也更容易出現BUG。

3)驗證較為放鬆
未升級的客戶端視新規則下的區塊為有效,但是對新規則並不進行驗證,對於舊節點而言它不再能做完整的驗證,似乎有悖去中心化的理念。

4)分叉不可逆轉
硬分叉通常是擴充套件共識規則,而軟分叉是收緊共識規則,所以一旦進行了軟分叉,想要回退就非常困難了,很可能造成硬分叉而導致資金損失。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;