區(qū)塊鏈分叉分為兩種:一種是軟分叉,一種是硬分叉。
我們首先從字面上理解一下分叉,分叉在區(qū)塊鏈里面來說,顧名思義就是原來一根鏈,最后通過分叉分為了兩根,一分為二,可以這樣理解。在區(qū)塊鏈中分叉的主要原因有兩種:一種,可以理解為軟分叉,另外一種,可以理解為硬分叉。咱們今天主要說的話題,就是什么叫軟分叉,什么叫硬分叉。這兩種分叉分別是什么意思,最后會導致什么樣的一個結果,這是咱們今天主要討論的話題。在區(qū)塊鏈中分叉是一個什么樣的過程呢?咱們來詳細說一下:首先,分叉可以理解為是一種升級,升級在咱們中心化的應用中是一個非常普遍的過程。
第一章 分叉的概念
分叉,顧名思義就是一分為二,當區(qū)塊鏈上有兩撥參與者(也就是節(jié)點)產(chǎn)生分歧的時候,即有一方希望改良,一方則希望保持原狀,只要其中一方進行代碼更新區(qū)塊鏈就會分叉。那么分叉具體是怎么一個過程呢,接下來我給大家講解下。
第二章 分叉的過程用蘋果手機的都知道,升級一個應用是十分簡單的,直接在APP Store中升級就行,這是中心化應用的升級,但是在去中心化的系統(tǒng)中升級就沒有這么容易了。比特幣網(wǎng)絡每次代碼升級都要獲得社區(qū)的一致認同,如果社區(qū)無法達成一致,就有可能形成分叉,簡單一句話來講分叉就是指在升級的時候發(fā)生了沖突,從而導致區(qū)塊鏈分叉。根據(jù)分叉后的區(qū)塊鏈是否兼容舊區(qū)塊,將分叉分為硬分叉和軟分叉。說的簡單點,就是類似window系統(tǒng)的升級和補丁升級。
軟分叉軟分叉是指區(qū)塊鏈的交易數(shù)據(jù)結構發(fā)生改變的時候,舊節(jié)點忽略此種改變,可以接受和驗證新節(jié)點產(chǎn)出的區(qū)塊,即軟分叉之后不會產(chǎn)生兩條鏈。軟分叉相比硬分叉雖然“溫和”了不少,但由于軟分叉必須向前兼容,也就是說不能增加新字段,只能在已有結構下做修改,所以升級空間有限。且軟分叉同樣也存在著一些爭議,軟分叉相比硬分叉技術實現(xiàn)要復雜很多,會使區(qū)塊鏈的代碼變得更復雜,這不利于未來的代碼維護,也更容易出現(xiàn)BUG。硬分叉通常是擴展共識規(guī)則,而軟分叉是收緊共識規(guī)則,所以一旦進行了軟分叉,想要回退就非常困難了,很可能造成硬分叉而導致資金損失。
硬分叉硬分叉是指區(qū)塊的交易數(shù)據(jù)結構發(fā)生改變的時候,舊節(jié)點拒絕對新節(jié)點生產(chǎn)出的區(qū)塊進行驗證,舊節(jié)點認為這是不符合規(guī)則的,所以新舊節(jié)點各自沿著自己的鏈向前走,造成永久分叉,進而形成了不同的兩個鏈。
硬分叉也分為兩種,技術上的硬分叉和社區(qū)理念上的硬分叉。技術上的硬分叉指的是,節(jié)點代碼的版本升級,升級結束后,不向前兼容,也就是不對舊版本的節(jié)點進行兼容,舊版本的節(jié)點代碼失效。必須升級到新版本才能進行挖礦記賬。
而社區(qū)理念上的硬分叉指的是,社區(qū)參與者的觀點不一致,導致一部分社區(qū)成員開發(fā)出了新的版本,并進行升級,升級結束則在新的鏈上進行挖礦,而另一部分開發(fā)者則依然在原鏈上進行記賬挖礦,這樣就導致生成了2條同時運行的公鏈。
第三章 兼容性區(qū)別需要注意的是,軟分叉和硬分叉都“向后兼容”,什么是“向后兼容”呢?“向后兼容”指的是新軟件接受由舊軟件產(chǎn)生的數(shù)據(jù),舉一個最簡單的例子咱們:Windows 10可以運行Windows XP的軟件。這里注意,軟分叉還可以“向前兼容”,“向前兼容”就是指舊軟件接受由新軟件產(chǎn)生的數(shù)據(jù),如用word2013保存的兼容版本文檔可以由word2010打開。而硬分叉不支持向前兼容,一旦升級后,新節(jié)點軟件版本產(chǎn)生區(qū)塊將不再兼容老的節(jié)點。接下來咱們舉例來說明硬分叉的幾種情況。
比特幣:比如比特幣硬分叉出比特幣現(xiàn)金這種幣,因為是否擴容區(qū)塊的大小導致社區(qū)出現(xiàn)了兩派,一部分以礦場為代表,另一派以社區(qū)開發(fā)者為代表;雙方因為理念和各自代表的利益吵得不可開交,于是礦工為代表的一方就通過節(jié)點代碼升級出現(xiàn)了兩條鏈。一部分礦工在新鏈上生產(chǎn)區(qū)塊,一部分人繼續(xù)在舊鏈進行挖礦,這才導致了比特幣現(xiàn)金的出現(xiàn)。
EOS:而eos呢前段時間也是搞的沸沸揚揚的分叉事件,起因是因為BM發(fā)了一條信息說,eos要進行硬分叉,讓社區(qū)的一大部分人嚇得不輕。最后發(fā)現(xiàn)BM說的分叉是軟件技術的硬分叉,不會導致生成兩條鏈。EOS主鏈發(fā)布以來,基本上每周都會有代碼上的小更新,小補丁,但這些都不是硬分叉。但很明顯,這次BM提出的升級,是一次比較“嚴肅”的升級,其目的是為了提升EOS的性能,并不是因為EOS社區(qū)里出現(xiàn)糾紛,打得不可開交才會硬分叉。這是一次技術性的硬分叉,所有的節(jié)點都會升級到最新版,并不會出現(xiàn)“EOS現(xiàn)金”類似的情況。如果EOS節(jié)點不更新那這個節(jié)點就沒有了,之后它就不能再繼續(xù)作為節(jié)點存在。他只能在舊鏈上自己玩,包括錢包在內的所有應用都會失效,因為舊鏈與應用都不再被兼容,整個舊鏈都會“死”,就更別說節(jié)點了。
以太坊:區(qū)塊鏈圈里第一個有影響力的硬分叉應該是以太坊的分叉事件。以太坊上一個著名的項目The DAO由于其自身漏洞,導致黑客竊取了當時價值約6000萬美元的以太幣。2016年7月,以太坊開發(fā)團隊通過修改以太坊軟件的代碼,在第1920000個區(qū)塊強行把The DAO及其子DAO的所有資金全部轉到一個特定的退款合約地址,從而“奪回”黑客所控制的DAO合約幣。
由于一部分礦工并不認同這個修改,于是形成兩條鏈,一條為以太坊(ETH),一條為以太坊經(jīng)典(ETC),各自代表不同的社區(qū)共識以及價值觀。當以太坊發(fā)生了這次硬分叉后,產(chǎn)生了兩條鏈。由于這兩條鏈在發(fā)生分叉之前的數(shù)據(jù)都是一樣的,一個非常有意思的現(xiàn)象出現(xiàn)了:原本持有以太幣(ETH)的人,發(fā)現(xiàn)自己除了持有原有的ETH外,又有了相同數(shù)量的ETC。
也就是說,憑空的多出了一些資產(chǎn)。這些資產(chǎn)的價值具體怎樣,還要看市場交易情況。但總的來說,區(qū)塊鏈的硬分叉,沒有減少資產(chǎn),反而讓人手里多了一種資產(chǎn),看上去總歸是一件不虧的事情,于是區(qū)塊鏈分叉就成了一種資產(chǎn)憑空增加的方式。
第四章 IFO社區(qū)硬分叉,讓大量的幣持有者憑空的增加了一種新的數(shù)字貨幣。硬分叉這種創(chuàng)造貨幣的方式和ICO非常類似,于是一個新的名詞誕生了——IFO(Initial Fork Offerings)。隨著越來越多的硬分叉發(fā)生,比特幣的公信力是否還能像以前一樣?IFO會不會成為比特幣的殺手?我認為這還需要時間的考驗。IFO本來可以是一種很不錯的對比特幣改造的實驗方法,但是這些分叉幣不但絲毫沒有影響比特幣的價值與地位,反而他們自己看起來大部分即將歸零。比特幣可以無限復制出無數(shù)種加密貨幣,為什么只有比特幣有價值?現(xiàn)在事實給了你們一些答案,你可以復制比特幣的代碼,創(chuàng)造無數(shù)個比特幣,但是比特幣背后的生態(tài)(開發(fā)者、礦工、交易所、商家、用戶)你無法復制。就像如果把淘寶、微信的源碼給你,你能再造一個淘寶和微信嗎?
第五章 分叉是好還是壞分叉的好壞目前也沒有一個定論,如果分叉的目的是使得公鏈更加健壯,那么我們認為這種分叉是有利的,如果分叉的目的單純的為了IFO并衍變?yōu)楦罹虏说娜﹀X行為,那么我們認為這樣的分叉是有損公鏈的實際價值的。但是分叉最終的結果必定會對幣的內在價值帶來一些波動。