什麼是軟分叉和硬分叉?軟分叉和硬分叉介紹

買賣虛擬貨幣

什麼是軟分叉和硬分叉?如果比特幣社羣無法達成一致,區塊鏈很可能形成分叉。簡單來講,分叉是指區塊鏈在升級時發生了意見分歧,從而導致區塊鏈分叉。根據分叉後的區塊鏈是否相容舊區塊,將分叉分為硬分叉和軟分叉。下面就來詳細介紹下。

最簡單的解釋是:如果你遇到一個硬分叉,它意味著某種數字貨幣——比如比特幣——的新版本軟體和舊版本無法相容,彼此看不順眼,必須各走各路。而軟分叉則不同,新版本要求更為嚴苛,不同意舊版本的一些規則;但舊版本比較憨厚,還能接受新版本軟體。所以對於軟分叉而言,新舊版本並非你死我活。

這麼說仍然比較抽象,我們可以用一個具體的例子打比方。

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

對於硬分叉,我們也可以用 “地鐵和飛機” 形象化。硬分叉中的舊版本軟體就好比開地鐵,而新版本則是開飛機。顯然,能開地鐵,不代表你能開飛機 (舊版本支援,新版本則不支援);反過來,即使你有飛機駕駛證,也不能拿著它直接坐進地鐵駕駛室裡把車開走 (新版本沒問題,舊版本卻不支援)。

如果非要用一句話來總結,數字加密貨幣的硬分叉意味著新舊版本軟體互不相容,必須分道揚鑣,分成兩條不同的區塊鏈;軟分叉則相對柔和,舊版本相容新版本,只是新版本不相容舊版本而已,因此雖然會有輕微分叉,但仍可共存在同一條區塊鏈下。

最近在比特幣網路中,最引人關注的軟分叉和硬分叉當數8月份成功啟動的 Segwit,和可能會在11月啟動的 Segwit2x。二者的目的相似,都是為比特幣的區塊擴容。我們可以套用上面對於軟硬分叉的解釋,來理解這兩個擴容方案的區別。

之所以說 Segwit 是軟分叉,是因為在這一方案中,首先,舊版比特幣軟體 “區塊不能大於 1MB” 的硬性要求,被新版突破了——區塊大小最高可達 2MB。啟用了 Segwit 的比特幣軟體中,每筆交易都會啟用 Segwit 指令。正是因為這一指令存在而且會被啟用,這些交易形成的區塊才可以突破 1MB 的上限,達到 2MB。

其次,新版本軟體產生的交易,仍然可以被舊版本接受、確認——即舊版本仍然支援新版本。這正是 Segwit 的巧妙之處:新版本軟體產生的交易,在舊版本上不會觸發 Segwit 指令——舊版本軟體並沒有接到 “你需要把區塊大小改為 2MB哦” 的要求。所以,在舊版本看來,這仍然是一筆跟以往一樣的交易。我可以確認它。

換句話說,在 Segwit 模式下,區塊可以小於 1MB,跟往常一樣,也可以處在 1 - 2MB之間。這就是 Segwit 屬於軟分叉的根本原因,求同存異嘛,大家一起過。

廣為詬病的 Segwit2x 則不同。這個方案屬於硬分叉,因為它要求 “新產生的區塊至少達到 2MB,最多可達 8MB”。顯然,這是一個 “你死我活” 的方案;這樣一來,新舊版本均無法跟對方相容。舊版要求區塊不超過 1MB;即使是加入了 Segwit 的中間版本,區塊也不能超過 2MB。在這樣的條件下,Segwit2x “不低於 2MB” 的要求跟任何一箇舊版本都沒有交集。

在比特幣網路中,由於分散共識機制,基於開源公有鏈的本質,硬分叉的存在不可避免。而且由於比特幣軟體去中心化的執行模式,任何一個礦工、使用者或者網路節點,以及那些擁有網路節點和算力的交易所、礦池,都可以根據自己的需求選擇支援分叉的任意一方。因此,避免過於激進的硬分叉,在分叉前充分做好預防網路攻擊的準備,充分考慮各方的需要,就變成了必須要完成的功課。

軟分叉和硬分叉都"向後相容",這樣才能保證新節點可以從頭驗證區塊鏈。向後相容是指新軟體接受由舊軟體所產生的資料或者程式碼,比如說Windows 10可以執行Windows XP的應用。

免責聲明:

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

推荐阅读

;