區塊鏈丨什麼是分叉?如何區分硬分叉與軟分叉?

06/13/2022作者: C, Judy

在中心化的系統中,版本升級是非常容易的事,官方公司會把應用程式優化好後提供給用戶下載;但是在去中心化的系統中,由於採用工作量證明機制,所以區塊鏈升級並不是那麼簡單的事,甚至一言不和就導致分叉。

 

什麼是區塊鏈分叉?


區塊鏈分叉只是對區塊鏈網路協議的更改。當區塊鏈分叉發生時,它會分裂成兩個獨立的網路,有兩個單獨的區塊鏈。分叉是一種技術事件,當網路上的礦工幾乎同時發現一個區塊時,會導致在網路的不同部分同時創建兩個區塊。

分叉可以作為計劃協議更新的一部分,透過社區驅動的計劃來添加新功能或增強現有功能。此外,它還有可能因為網路的攻擊而發生。任何被設計為去中心化的東西都是在分叉的風險下完成的,許多加密貨幣現在已經多次分叉成更小的部分。

 

為什麼會發生區塊鏈分叉?


以比特幣軟體而言,如果使用者不對其進行更改,那麼分叉就不會發生;一旦有使用者對該軟體進行了任何的更改,即使只是更改了軟體中的一個字元,都會被視為分叉,這是因為該軟體的新版本將與先前版本不相容。

大多數分叉都是為計劃的升級而完成的,以便每個人都能獲得協議的最新安全性和功能。但是,在某些情況下,如有人在軟體中發現了漏洞或錯誤,就會導致意外的分叉。在這些情況下,通常是一小群開發人員快速修復錯誤併發佈軟體的新版本。它們可能只能在 GitHub 上使用幾個小時,然後才能獲得多數哈希算力並成為永久性的。

 

區塊鏈分叉的類型


分叉使得原先的區塊鏈發生分裂並改變方向,以前的鏈條將停滯不前並停止增長,而新的鏈條開始且比以前更大。

常見的分叉有幾種,但所有這些都可以分為意外分叉和有意分叉。

意外分叉是指由於代碼中的錯誤或異常的哈希率波動,在網路分化為兩個或多個方向后發生長區塊鏈分支。意外分叉會使節點看到在舊塊之上生成的塊,並導致它們認為他們正在處理無效鏈。

同時,當節點運營商決定啟動自己的區塊鏈並在其上生成塊時,就會創建一個有意的分叉,有時稱為個人分叉。值得注意的是,有意分叉可以是軟的,也可以是硬的。軟分叉是用於驗證交易和區塊的規則集的更改。只有當大多數參與者接受這些更改時,它們才能通過軟分叉實現。當網路中的節點無法就協議操作規則達成共識(即什麼使區塊有效)時,就會發生硬分叉。這可能是由於參與者之間缺乏共識以及系統中改變區塊有效性標準的錯誤造成的。

 

什麼是軟分叉?


軟分叉透過複製和修改軟體代碼的方式實現。原來的專案繼續存在,只是單獨產生了一個新的項目,新的項目沿著不同的方向發展。

假設您支援的加密貨幣團隊對如何發展存在重大分歧,團隊的一部分可能會將網站複製到其他領域中,他們也將會發佈與原來內容所不同的文章。

這些項目都是建立在一個共同的基礎上,擁有相同的歷史資料。就像是一條道路後來分成兩條一樣,它們的道路從分叉時開始發生了分歧。

 

什麼是硬分叉?


顧名思義,硬分叉是一種與舊版本不向後相容的軟體升級。換句話說,如果您選擇安裝並運行新軟體,則舊版本將不再有效,反之亦然。硬分叉是對網路協議的根本性更改,要求所有節點或用戶升級到最新版本的協議軟體。

與軟分叉相反,硬分叉被稱為「不可逆的」,如果用戶不升級軟體,則不會將您識別為網路的一部分。

硬分叉是有爭議的,因為缺乏向後相容性。如果有些人開始使用新軟體,而其他人沒有,會發生什麼?如果運行舊版軟體的人不同意事情的變化,會發生什麼?要回答這些問題,首先需要了解導致硬分叉的原因。

硬分叉是「民主」的一種形式。如果有足夠多的人支援更改,那麼新版本就會被採用,舊版本將不再可行。這樣,每個人都可以共同決定是否要升級。通常,如果超過 50% 的礦工支援硬分叉,它將啟動並成為永久性的(即沒有回頭路)。

但是,如果占計算能力不到 50% 的礦工想要創建偏離網路原始規則的升級,他們可以透過添加重放保護來實現這一點。這樣,只有一條鏈將被視為有效和「真實」。

硬分叉有兩個主要好處。首先,它們解決了擴展問題。通過增加區塊大小,硬分叉允許同時處理更多交易,這意味著更低的費用和更短的確認時間。換句話說,更大的區塊可以容納更多的交易,而不必支付更高的費用或等待數小時甚至數天才能進行一次確認。其次,硬分叉解決了共識問題。

 

軟分叉 vs 硬分叉


軟分叉是對系統的升級,使其更安全或更高效,但仍然可以理解尚未更新的舊系統。它被稱為「軟」,因為舊軟體版本創建的所有塊仍然被新軟體識別。如果每個人都切換到使用新版本,從使用者的角度來看,沒有任何區別,因此,礦工和使用者將很快採用更新(通常在幾天內)。軟分叉只需要大多數礦工升級他們的軟體。

硬分叉是協議中的更改,使以前的版本與新版本不相容。硬分叉的目標是進行升級,但更改不向後相容。為了使這種類型的升級正常工作,每個人都需要同時切換新版本,如果有些人繼續使用舊版本,那麼將有兩種不同類型的硬幣,這可能會導致不同版本使用者之間的交易問題。如果存在拆分,則兩組將使用不同的貨幣。

硬分叉與以前的版本不相容,因為這些版本通常會改變一些事情,使人們更難繼續使用預升級的軟體。出於這個原因,硬分叉需要廣泛的共識,就像每個使用硬幣的人之間 95% 的同意一樣。這是非常罕見的(例如,沒有共識將比特幣硬分叉成比特幣現金)。

與只需要礦工更新的軟分叉不同,硬分叉要求網路中的每個參與者升級他們的客戶端,否則,它們不能繼續成為加密貨幣生態系統的一部分(並且還損失了所有的錢)。這些類型的分叉需要大量的計劃,如果實施不正確,甚至可能使加密貨幣的安全性降低。

軟分叉是最常見的區塊鏈升級類型,因為它們向後相容,只需要大多數礦工升級他們的軟體,但有時如果存在分裂,它們會導致人們使用不同的貨幣,比如比特幣現金(生物安全資訊交換所)硬分叉與以前的版本不相容,並且要求每個人都使用類似的用戶端,以便一種貨幣不會變成兩種貨幣,但它需要參與者之間近乎一致的共識。