知乎上的定義
比特幣中的軟分叉和硬分叉主要指因比特幣協(xié)議的突發(fā)改變而導致的兼容性的問題。比特幣協(xié)議發(fā)生改變,會有兩個不同版本的比特幣協(xié)議在同時使,他們對其他區(qū)塊的接受規(guī)則不同會導致區(qū)塊鏈長期分叉。
比特幣協(xié)議
這里的比特幣協(xié)議,指的是每筆比特幣交易都按照特定的交易數(shù)據(jù)格式進行。如果不按照這種格式交易,則不被網(wǎng)絡識別,也就無法被認定為有效交易而被記錄在區(qū)塊中。
比特幣的交易數(shù)據(jù)格式如下:
我們注意到:
比特幣交易數(shù)據(jù)結構的所有字段從一開始就已經(jīng)有了明確的定義,除了再輸入中的序列號一欄,功能為是目前未被使用的交易替換。
這一點非常重要,這是出現(xiàn)軟硬分叉的前提。
軟分叉
當出于某種需要,未被明確定義的交易字段被重新定義導致交易數(shù)據(jù)結構發(fā)生改變
未升級的老節(jié)點可以驗證升級后新節(jié)點產(chǎn)生的區(qū)塊
已升級的新節(jié)點也可以驗證未升級老節(jié)點生產(chǎn)出的區(qū)塊
這種分叉稱為軟分叉。
硬分叉
當出于某種需要,已被明確定義的交易字段被重新定義導致交易數(shù)據(jù)結構發(fā)生改變
未升級的老節(jié)點無法驗證升級后新節(jié)點產(chǎn)生的區(qū)塊
已升級的新節(jié)點可以驗證未升級老節(jié)點生產(chǎn)出的區(qū)塊
這種分叉稱為硬分叉。
軟硬分叉的區(qū)別
軟分叉是向前兼容,而硬分叉是向后兼容
由于軟分叉要向前兼容,在定義交易字段時必需具備一定的前瞻性,而硬分叉則不需要考慮這一點,所以軟分叉在定義字段的技術要求方面比較高
硬分叉是對已被定義的交易字段重新作定義,而每次重新定義后必需要有大于50%的算力認可才能被網(wǎng)絡承認,在操作上沒有軟分叉方便
軟硬分叉各有千秋,不過軟分叉比較具有可實施性,因為硬分叉每升一次級就得通知全網(wǎng)絡并征得半數(shù)以上的節(jié)點同意才能實施。