區塊鏈技術中,硬分叉(Hard Fork)和軟分叉(Soft Fork)是兩種不同的升級和更新網絡協議的方法。它們在實現上有一些顯著的區別,都會影響到區塊鏈網路的結構和操作。
硬分叉
「硬分叉」是指規則變更後,新版網路不再與舊版網路兼容,區塊鏈出現兩個分支(平行互不影響的)。
軟分叉
「軟分叉」是指規則變更後,部署了新規則的節點仍能與未部署的節點互動,新版網路可與舊版兼容。
硬分叉 | 軟分叉 |
新舊區塊分別遵循各自協議 | 新舊區塊共享一種協議 |
新舊互不兼容 | 新舊兼容 |
實例:2016 年 DAO 硬分叉 | 實例:2017 年比特幣網路 Segwit 分叉 |
情況分析
硬分叉 軟分叉
假設現在半數的網路節點想將區塊容量從 2MB 擴大至 3MB。 如果將 3MB 區塊發送至舊版節點,區塊將被拒絕;因為舊版節點的規則明確表示,2MB 是有效區塊的上限。 此時,網路協議有兩種,各自使用不同的貨幣。 所有帳戶的餘額從原始記錄中克隆到新鏈;用戶若在分叉前擁有20BTC,將在兩條支鏈上各擁有一個帳戶,餘額分別為 20BTC 和 20新 BTC。
假設原區塊容量為 2MB,從現在起,半數的網路節點實行區塊容量為1MB 的新限制,將過大區塊視為無效。 舊版節點仍可接收或廣播區塊。 在這種情況下,新網路可覆蓋所有節點而不受規則版本的限制。 比特幣的隔離見證(又稱「SegWit」)是軟分叉的例子之一。此次分叉巧妙地引入區塊和交易的新格式。未更新的節點可以繼續接收區塊資訊,但不參與新交易的驗證。