時間:2023-06-13|瀏覽:328
說硬分叉和軟分叉之前,我們先了解一下什么是“分叉(Fork)”。分叉其實是用來描述區塊鏈協議中的任何分化、更新的一個詞語,可以理解它是去中心化體系中的一種更新迭代。那么硬分叉、軟分叉又是什么呢?別急,往下看。
官方定義
硬分叉和軟分叉在bitcoin.org上都有定義,但定義其實很模糊,原文中硬分叉和軟分叉被定義成這樣:
硬分叉:區塊鏈發生永久性分歧,在新共識規則發布后,部分沒有升級的節點無法驗證已經升級的節點生產的區塊,通常硬分叉就會發生。
軟分叉:當新共識規則發布后,沒有升級的節點會因為不知道新共識規則下,而生產不合法的區塊,就會產生臨時性分叉,又稱軟分叉。
Bitcoin術語中的軟分叉與硬分叉
比特幣中的軟分叉和硬分叉主要是指因比特幣協議的突發改變而導致的兼容性的問題。
比特幣協議發生改變,會有兩個不同版本的比特幣協議在同時使用,他們對其他區塊的接受規則不同會導致區塊鏈長期分叉,這兩個不同的鏈都會被不同的網絡認為是有效的。鏈分叉也導致網絡分叉。
軟分叉是向前兼容的
如上圖軟分叉的新的規則是以前舊規則的子集,所有被新版本認為是合法的區塊也會被以前舊版本認為是合法的。
舊版本會接受新版本創建的區塊,新版本和舊版本是兼容的。
如果有至少51%的礦工的算力轉向的新版本,那么網絡自動完成軟分叉:一開始舊版本創建的區塊在新協議下被認為是不合法的,這時會出現一個短暫的分叉,但最終新版本的分叉會趕超舊版本的分叉成為最長鏈。因為在舊版本上的算力是小于新版本的。
但是如果小于51%的礦工算力轉向新版本,那么軟分叉將不會出現,因為舊版本比新版本有更多的算力支持,同時舊版本不兼容新版本。
硬分叉不向前兼容
舊版本不會接受新版本創建的合法區塊,認為新版本的合法區塊是不合法的。所以很明顯硬分叉是不向前兼容。要實現硬分叉所有的用戶(礦工,交易所,普通用戶)都要切換到新版本的協議上。
小結
軟分叉向前兼容,舊的版本會接受新版本創建的區塊,在軟分叉中只需要礦工升級到新版本即可,用戶可以繼續使用舊版本的協議,他們仍然會接受新版本協議創建的區塊。
硬分叉不向前兼容,舊版本不會接受新版本創建的區塊。要實現硬分叉所有用戶都需要切換到新版本協議上。
為什么硬分叉不需要51%以上的算力?因為即便舊鏈的長度大于新鏈也沒用,新版本是不會接受舊鏈上的區塊,如果所有用戶都更新到新的版本,那么客戶的錢包會認為舊鏈上的資產是非法的,舊鏈上的貨幣無法使用。
如果想了解更多精彩內容,歡迎私信小編!