兄弟相見不相識?淺談軟硬分叉

最近島叔沉迷于吃雞手游無法自拔。前段時間,吃雞手游更新版本,本島叔沒注意到,結(jié)果不能和小伙伴們愉快的開黑了。于是本島叔退出,立刻更新了版本。

對于這類傳統(tǒng)的APP,我完全不用擔(dān)心找不到小伙伴,因?yàn)檫@類APP,數(shù)據(jù)系統(tǒng)存儲都是集中的,版本管理也是集中的,如果是重大升級,完全可以設(shè)置為若不更新到最新版本就不能進(jìn)行登錄操作,從而確保用戶使用的總是正確的版本。


這些都是傳統(tǒng)的中心化的APP,而當(dāng)我們使用的應(yīng)用不再是中心化管理,比如區(qū)塊鏈要升級,也是一鍵升級,等待版本更新那么簡單嗎?


我們知道,區(qū)塊鏈?zhǔn)且环N去中心化的使用方式。一旦有了新的軟件版本發(fā)布后,是不是每個人都會去升級到新版本,我們無法預(yù)知。

除此之外,還會出現(xiàn)新的版本增加了新的數(shù)據(jù)結(jié)構(gòu),之前版本不能有效識別的問題。因?yàn)椴糠钟脩羯壛诵掳?,還有一部分用戶還沒升級,而這些新舊版本的軟件仍然在各自不停的挖礦、驗(yàn)證、打包區(qū)塊,一段時間過后就會變成這樣:

行業(yè)內(nèi)把這種情況叫做分叉。分叉又被分為兩種情況,硬分叉和軟分叉

分叉問題,就如同兩個新生嬰兒,一個留在家中養(yǎng)育,一個流浪在外長大,本是同根生,卻互不相識。

軟分叉

我們先來聊一聊什么是軟分叉。老節(jié)點(diǎn)不能發(fā)現(xiàn)新協(xié)議的變化,從而繼續(xù)接受新節(jié)點(diǎn)用新協(xié)議所挖出的區(qū)塊,這種情況下叫軟分叉,此時老節(jié)點(diǎn)礦工可能在它們完全不能理解和驗(yàn)證的新區(qū)塊上繼續(xù)添加區(qū)塊。

乍一看,好像很難理解,其實(shí)很簡單。

所謂的區(qū)塊鏈,就是一個個的區(qū)塊數(shù)據(jù),通過區(qū)塊的哈希值串聯(lián)起來的,如此形成一個鏈條般的賬本數(shù)據(jù)。

在形成區(qū)塊3的時候,區(qū)塊鏈突然升級了,那么區(qū)塊3之后則變成了新版本,區(qū)塊1和區(qū)塊2就變成了老版本,在這種情況下,區(qū)塊1和2依然能夠識別新版本出現(xiàn)的數(shù)據(jù)結(jié)構(gòu),新老版本能夠兼容。

其實(shí)在這個過程中,新版本不過是使用了障眼法,因?yàn)樵诶习姹局幸恢贝嬖趥溆玫臄?shù)據(jù)字段,這個數(shù)據(jù)字段一直都是閑置的,在老版本中也沒有使用備用字段,因此對于這個新版本發(fā)出的區(qū)塊是依然能接受的,相當(dāng)于欺騙了老版本節(jié)點(diǎn)。

硬分叉

解釋完軟分叉,我們再聊一聊關(guān)于硬分叉的那些事情。

當(dāng)系統(tǒng)中出現(xiàn)新版本的軟件,并且和之前版本軟件不能兼容,老節(jié)點(diǎn)無法接受新節(jié)點(diǎn)挖出的全部或者部分區(qū)塊,導(dǎo)致同時出現(xiàn)兩條鏈,這種情況下被稱為硬分叉。

當(dāng)部分人升級了區(qū)塊鏈,還有部分人沒有升級區(qū)塊鏈的時候,由于新老節(jié)點(diǎn)認(rèn)為對方的交易是不合法的,版本不能兼容,則會出現(xiàn)老節(jié)點(diǎn)只認(rèn)識老節(jié)點(diǎn)的交易,新節(jié)點(diǎn)只承認(rèn)新節(jié)點(diǎn)的交易,那么區(qū)塊鏈則會變成這樣:


目前就比特幣出現(xiàn)數(shù)個不同的版本,包括Bitcoin Core,還有新推出的Bitcoin Clsaaic、Bitcoin XT以及Bitcoin Unlimited。

而以太坊經(jīng)歷了著名的THE DAO合約漏洞攻擊事件后直接就進(jìn)行了硬分叉,分為以太坊經(jīng)典和以太坊,這其中又糾結(jié)了各種價值觀的問題,利益問題。


就現(xiàn)在而言,實(shí)際運(yùn)用過程中,在區(qū)塊應(yīng)用程序進(jìn)行重大升級時,都會事先取得社區(qū)的投票同意。保證大部分的運(yùn)行節(jié)點(diǎn)的算力要大于老版本的節(jié)點(diǎn),所以一旦完成升級后,后續(xù)的打包區(qū)塊基本是新版本節(jié)點(diǎn)發(fā)出的,也就不太會發(fā)生老版本區(qū)塊和新版本區(qū)塊交錯鏈接的情況。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容