區(qū)塊鏈028 1分鐘崖蜜,分清軟分叉和硬分叉

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

文/杜豆豆


自從接觸區(qū)塊鏈技術(shù)客峭,總是接受一些看起來很有趣的洋詞兒豫领,軟硬分叉就是一個。

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

其實,也無非就是新瓶換舊藥郊尝。所謂軟分叉和硬分叉二跋,技術(shù)點兒說,就是升級過程中的向前兼容和向后兼容罷了流昏。

不過扎即,看似簡單的事兒,實現(xiàn)起來可不容易况凉,不然铺遂,也不會難倒這么多聰明人。

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

我們一向的觀念里,說升級蚊荣,程序?qū)懞贸跽?wù)器一上傳,大家下載補丁一打互例,完事兒奢入!

你還別說,在區(qū)塊鏈的世界里媳叨,升個級真的沒那么容易腥光。

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

1混槐、什么是軟分叉和硬分叉戏自?

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

(1)? 軟分叉 Soft Fork

軟分叉是指在區(qū)塊鏈或去中心化網(wǎng)絡(luò)中向前兼容的分叉狐胎。向前兼容意味著醉冤,當(dāng)新共識規(guī)則發(fā)布后韩容,在去中心化架構(gòu)中節(jié)點不一定要升級到新的共識規(guī)則艺骂,因為軟分叉的新規(guī)則仍舊符合老的規(guī)則,所以未升級的節(jié)點仍舊能接受新的規(guī)則伍纫。

(2)硬分叉 Hard Fork

指在區(qū)塊鏈或去中心化網(wǎng)絡(luò)中不向前兼容的分叉宗雇,硬分叉對加密貨幣使用的技術(shù)進行永久更改,這種變化使得所有的新數(shù)據(jù)塊與原來的塊不同莹规,舊版本不會接受新版本創(chuàng)建的區(qū)塊赔蒲,要實現(xiàn)硬分叉所有用戶都需要切換到新版本協(xié)議上。如果新的硬分叉失敗访惜,所有的用戶將回到原始數(shù)據(jù)塊嘹履。

我們可以發(fā)現(xiàn),這兩個定義债热,都涉及到修改砾嫉,那到底修改了什么呢?

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

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

(1)CSV軟分叉

比特幣區(qū)塊鏈上,2016年6月份執(zhí)行過一次軟分叉升級墙杯,稱為CSV軟分叉配并。

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

因為原來比特幣交易數(shù)據(jù)結(jié)構(gòu)中這一個字段未被使用高镐,或者當(dāng)時是模糊定義溉旋,所以才可以被使用重新定義。

這種未明確定義的字段在舊版本的比特幣完整節(jié)點上不會被仔細驗證嫉髓,新版本的節(jié)點按照新規(guī)則生產(chǎn)新區(qū)塊观腊,還可以被舊版本的節(jié)點驗證接受。這就是一個典型的軟分叉算行。

(2)多重簽名軟分叉

比特幣在2012年還有一次重要的升級梧油,叫P2SH,社區(qū)稱之為多重簽名軟分叉州邢,是對比特幣交易簽名腳本的一次修改儡陨。

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

因為多重簽名軟分叉之后,沒有升級的節(jié)點在驗證已經(jīng)升級過的節(jié)點產(chǎn)生的區(qū)塊時呀枢,它們對這種新的P2SH鎖定腳本也可以通過驗證叙身,所以這也是一個軟分叉。

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

在2010年8月15日硫狞,有一個黑客利用比特幣代碼的一個漏洞信轿,在第74638高度區(qū)塊上刷出一筆交易包含了1844億個比特幣晃痴。隨后在半天時間內(nèi)被開發(fā)人員發(fā)現(xiàn),并且發(fā)布了補丁财忽,將這筆交易的輸出變?yōu)闊o效倘核。

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

這種修改未升級的節(jié)點能夠驗證已經(jīng)升級的節(jié)點產(chǎn)生的區(qū)塊,所以也是軟分叉隶校。

由此漏益,我們可以得出,軟分叉是指比特幣交易的數(shù)據(jù)結(jié)構(gòu)發(fā)生改變時深胳,未升級的節(jié)點可以驗證已經(jīng)升級的節(jié)點生產(chǎn)出的區(qū)塊绰疤,而且已經(jīng)升級的節(jié)點也可以驗證未升級的節(jié)點生產(chǎn)出的區(qū)塊。

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

(1)bitcoin qt 0.8.0版本硬分叉

2013年3月12日轻庆,bitcoin qt 0.8.0版本軟件發(fā)布,采用了一種新的數(shù)據(jù)庫level db敛劝。

有的礦工節(jié)點升級了bitcoin qt 0.8版本余爆,有的礦工還繼續(xù)使用bitcoin qt0.7版本的軟件。雙方各自生產(chǎn)區(qū)塊夸盟,但bitcoin qt 0.8采用的新數(shù)據(jù)庫生產(chǎn)出的區(qū)塊被被qt0.7版本節(jié)點拒絕掉蛾方。

具體的原因是舊的數(shù)據(jù)庫對超過800Kb的區(qū)塊有時不接受。

因此在區(qū)塊高度225430比特幣區(qū)塊鏈分成了兩條鏈上陕,結(jié)果導(dǎo)致了比特幣區(qū)塊鏈產(chǎn)生兩條鏈桩砰,一條是包含大于800kb區(qū)塊的鏈,另一條是拒絕承認這些包含更大區(qū)塊的鏈唆垃,這就發(fā)生了硬分叉。

(2)區(qū)塊高度363731硬分叉

2015年7月4日比特幣區(qū)塊鏈在區(qū)塊高度363731發(fā)生一次硬分叉痘儡。

Bitcoin Core 開發(fā)者往新版本的Bitcoin Core 0.10.0添加了BIP 66辕万,試圖進行一次軟分叉的修改。在比特幣網(wǎng)絡(luò)上主要礦池都使用了0.10版本的軟件時沉删,但有一個礦池BTC Nuggets沒有升級渐尿、挖出來的兩個區(qū)塊被其他礦工拒絕掉,然后雙方各自挖礦矾瑰,由此產(chǎn)生硬分叉砖茸,分成了兩條鏈。

由此殴穴,我們可以得出凉夯,硬分叉是指比特幣區(qū)塊格式或交易格式發(fā)生改變時货葬,未升級的節(jié)點拒絕驗證已經(jīng)升級的節(jié)點生產(chǎn)出的區(qū)塊,不過已經(jīng)升級的節(jié)點可以驗證未升級節(jié)點生產(chǎn)出的區(qū)塊劲够,然后大家各自延續(xù)自己認為正確的鏈震桶,所以分成兩條鏈。

4征绎、軟分叉和硬分叉的主要區(qū)別到底是什么蹲姐?

軟分叉和硬分叉的主要區(qū)別是新舊節(jié)點的相互兼容性。

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

1.升級過的節(jié)點接受沒有升級的節(jié)點生產(chǎn)的交易和區(qū)塊(向后兼容)人柿;

2.沒有升級的節(jié)點接受升級過的節(jié)點生產(chǎn)的交易和區(qū)塊(向前兼容)柴墩。

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

所以凫岖,軟分叉是比較難的江咳,要顧著新的,還要考慮舊的隘截。硬分叉沒那么復(fù)雜扎阶,你不升級,我大不了不帶你玩就是了婶芭。

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

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

(未完待續(xù))

原創(chuàng)不易赁濒,非授權(quán)不得轉(zhuǎn)載,轉(zhuǎn)載請注明出處孟害。如果您覺的文章有用拒炎,別忘了在文末點贊哦。

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

歡迎加入“萬卷好書讀書會”:在這個群里击你,大家可以分享電子書,交流讀書心得谎柄,以文會友丁侄,自由點贊支持。目前該群已超過100人朝巫,需要群主發(fā)邀請才能進鸿摇,有興趣的簡友請加微信dudoudou189聯(lián)系我。讀書會座右銘:在浮躁的時代劈猿,安心讀書寫作拙吉,養(yǎng)育心靈潮孽。

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末必逆,一起剝皮案震驚了整個濱河市怠堪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌名眉,老刑警劉巖粟矿,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異损拢,居然都是意外死亡陌粹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門福压,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掏秩,“玉大人,你說我怎么就攤上這事荆姆∶苫茫” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵胆筒,是天一觀的道長邮破。 經(jīng)常有香客問我,道長仆救,這世上最難降的妖魔是什么抒和? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮彤蔽,結(jié)果婚禮上摧莽,老公的妹妹穿的比我還像新娘。我一直安慰自己顿痪,他們只是感情好镊辕,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著员魏,像睡著了一般丑蛤。 火紅的嫁衣襯著肌膚如雪叠聋。 梳的紋絲不亂的頭發(fā)上撕阎,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天,我揣著相機與錄音碌补,去河邊找鬼虏束。 笑死棉饶,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的镇匀。 我是一名探鬼主播照藻,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼汗侵!你這毒婦竟也來了幸缕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤晰韵,失蹤者是張志新(化名)和其女友劉穎发乔,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雪猪,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡栏尚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了只恨。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片译仗。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖官觅,靈堂內(nèi)的尸體忽然破棺而出纵菌,到底是詐尸還是另有隱情,我是刑警寧澤缰猴,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布产艾,位于F島的核電站,受9級特大地震影響滑绒,放射性物質(zhì)發(fā)生泄漏闷堡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一疑故、第九天 我趴在偏房一處隱蔽的房頂上張望杠览。 院中可真熱鬧,春花似錦纵势、人聲如沸踱阿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽软舌。三九已至,卻和暖如春牛曹,著一層夾襖步出監(jiān)牢的瞬間佛点,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留超营,地道東北人鸳玩。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像演闭,于是被迫代替她去往敵國和親不跟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容