區塊鏈028 1分鐘,分清軟分叉和硬分叉

區塊鏈科普系列第28天: 1分鐘,分清軟分叉和硬分叉

文/杜豆豆


自從接觸區塊鏈技術,總是接受一些看起來很有趣的洋詞兒,軟硬分叉就是一個。

這詞兒看起來很形象,猛一讀還真是不知所云。于是,翻書查資料,終于鬧明白了怎么回事。

其實,也無非就是新瓶換舊藥。所謂軟分叉和硬分叉,技術點兒說,就是升級過程中的向前兼容和向后兼容罷了。

不過,看似簡單的事兒,實現起來可不容易,不然,也不會難倒這么多聰明人。

不就是一個升級嘛,天天看軟件升級、打補丁,哪有那么難的?

我們一向的觀念里,說升級,程序寫好,服務器一上傳,大家下載補丁一打,完事兒!

你還別說,在區塊鏈的世界里,升個級真的沒那么容易。

我們以比特幣為例,來解析一下這兩個分叉概念吧。

1、什么是軟分叉和硬分叉?

百度百科里是這么定義的:

(1)? 軟分叉 Soft Fork

軟分叉是指在區塊鏈或去中心化網絡中向前兼容的分叉。向前兼容意味著,當新共識規則發布后,在去中心化架構中節點不一定要升級到新的共識規則,因為軟分叉的新規則仍舊符合老的規則,所以未升級的節點仍舊能接受新的規則。

(2)硬分叉 Hard Fork

指在區塊鏈或去中心化網絡中不向前兼容的分叉,硬分叉對加密貨幣使用的技術進行永久更改,這種變化使得所有的新數據塊與原來的塊不同,舊版本不會接受新版本創建的區塊,要實現硬分叉所有用戶都需要切換到新版本協議上。如果新的硬分叉失敗,所有的用戶將回到原始數據塊。

我們可以發現,這兩個定義,都涉及到修改,那到底修改了什么呢?

我們來具體看一下兩種分叉的案例分析。

2、比特幣軟分叉升級案例分析

(1)CSV軟分叉

比特幣區塊鏈上,2016年6月份執行過一次軟分叉升級,稱為CSV軟分叉。

CSV軟分叉主要修改的地方是“序列號(目前未被使用的交易替換功能)”。

因為原來比特幣交易數據結構中這一個字段未被使用,或者當時是模糊定義,所以才可以被使用重新定義。

這種未明確定義的字段在舊版本的比特幣完整節點上不會被仔細驗證,新版本的節點按照新規則生產新區塊,還可以被舊版本的節點驗證接受。這就是一個典型的軟分叉。

(2)多重簽名軟分叉

比特幣在2012年還有一次重要的升級,叫P2SH,社區稱之為多重簽名軟分叉,是對比特幣交易簽名腳本的一次修改。

多重簽名軟分叉主要修改的地方是P2PKH字段(Pay-to-Public-Key-Hash,支付給公鑰),目前這個字段可以有5種腳本。

因為多重簽名軟分叉之后,沒有升級的節點在驗證已經升級過的節點產生的區塊時,它們對這種新的P2SH鎖定腳本也可以通過驗證,所以這也是一個軟分叉。

(3)74638高度區塊補丁軟分叉

在2010年8月15日,有一個黑客利用比特幣代碼的一個漏洞,在第74638高度區塊上刷出一筆交易包含了1844億個比特幣。隨后在半天時間內被開發人員發現,并且發布了補丁,將這筆交易的輸出變為無效。

漏洞補丁主要修改的地方,修改之前的規則是“總量”不能高于“交易”,修改之后的規則是添加了“總量”不能是負值。

這種修改未升級的節點能夠驗證已經升級的節點產生的區塊,所以也是軟分叉。

由此,我們可以得出,軟分叉是指比特幣交易的數據結構發生改變時,未升級的節點可以驗證已經升級的節點生產出的區塊,而且已經升級的節點也可以驗證未升級的節點生產出的區塊。

3、比特幣硬分叉升級案例分析

(1)bitcoin qt 0.8.0版本硬分叉

2013年3月12日,bitcoin qt 0.8.0版本軟件發布,采用了一種新的數據庫level db。

有的礦工節點升級了bitcoin qt 0.8版本,有的礦工還繼續使用bitcoin qt0.7版本的軟件。雙方各自生產區塊,但bitcoin qt 0.8采用的新數據庫生產出的區塊被被qt0.7版本節點拒絕掉。

具體的原因是舊的數據庫對超過800Kb的區塊有時不接受。

因此在區塊高度225430比特幣區塊鏈分成了兩條鏈,結果導致了比特幣區塊鏈產生兩條鏈,一條是包含大于800kb區塊的鏈,另一條是拒絕承認這些包含更大區塊的鏈,這就發生了硬分叉。

(2)區塊高度363731硬分叉

2015年7月4日比特幣區塊鏈在區塊高度363731發生一次硬分叉。

Bitcoin Core 開發者往新版本的Bitcoin Core 0.10.0添加了BIP 66,試圖進行一次軟分叉的修改。在比特幣網絡上主要礦池都使用了0.10版本的軟件時,但有一個礦池BTC Nuggets沒有升級、挖出來的兩個區塊被其他礦工拒絕掉,然后雙方各自挖礦,由此產生硬分叉,分成了兩條鏈。

由此,我們可以得出,硬分叉是指比特幣區塊格式或交易格式發生改變時,未升級的節點拒絕驗證已經升級的節點生產出的區塊,不過已經升級的節點可以驗證未升級節點生產出的區塊,然后大家各自延續自己認為正確的鏈,所以分成兩條鏈。

4、軟分叉和硬分叉的主要區別到底是什么?

軟分叉和硬分叉的主要區別是新舊節點的相互兼容性。

軟分叉需要保證完美的兼容性就要求達到以下兩種情況:

1.升級過的節點接受沒有升級的節點生產的交易和區塊(向后兼容);

2.沒有升級的節點接受升級過的節點生產的交易和區塊(向前兼容)。

硬分叉需要保證的兼容性只需要達到上面的第1種情況就可以了。

所以,軟分叉是比較難的,要顧著新的,還要考慮舊的。硬分叉沒那么復雜,你不升級,我大不了不帶你玩就是了。

(本文出自杜豆豆《白話區塊鏈》讀書筆記的部分摘錄,同時參考引用了百家號小林投資的文章《什么是硬分叉,什么是軟分叉,什么是共識?》中的部分案例。)

明天分享:《為什么51%攻擊被稱為達摩克利斯之劍?》

(未完待續)

原創不易,非授權不得轉載,轉載請注明出處。如果您覺的文章有用,別忘了在文末點贊哦。

讀更多好書,請訪問我的文集:《一生必讀的萬卷好書》

歡迎加入“萬卷好書讀書會”:在這個群里,大家可以分享電子書,交流讀書心得,以文會友,自由點贊支持。目前該群已超過100人,需要群主發邀請才能進,有興趣的簡友請加微信dudoudou189聯系我。讀書會座右銘:在浮躁的時代,安心讀書寫作,養育心靈。

我已晉升五十萬鉆高級合伙人,歡迎使用我的專屬會員推廣鏈接:http://www.lxweimin.com/mobile/club?ref=3debb0de。訂閱會員,享受最優惠福利。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,619評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,155評論 3 425
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 177,635評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,539評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,255評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,646評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,655評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,838評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,399評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,146評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,338評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,893評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,565評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,983評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,257評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,059評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,296評論 2 376

推薦閱讀更多精彩內容