極客丨比特幣BCH分叉(Fork)在即,分叉到底解決了什麼問題?
我們都知道,數字貨幣中最廣為人知的比特幣,以及區塊鏈2.0代表以太坊,都曾經發生過分叉事件。分叉,其實是與區塊鏈不可篡改這一特點背道而馳的行為。那麼,什麼是分叉?為何要分叉?分叉對於區塊鏈又會產生怎樣的影響呢?
一、什麼是分叉?
區塊鏈是一個分散式賬本,一般被認為不可篡改。但在區塊鏈發展的歷程當中,難免受到技術上的一些限制,比如區塊大小過於飽和、確認速度變慢、程式漏洞,等等。面對這些技術上的問題,社群必須要達成共識,來對區塊鏈系統進行升級、拓展或者修補。
在這一過程中,“不可篡改”其實就已經成為了偽命題。 分叉(fork),是對區塊鏈的共識協議進行修改,使得修改後的區塊鏈,執行規則不同於舊鏈。
其實, 分叉是一種自然而然的結果,因為在通常情況下,分叉是對區塊鏈的一種完善和保護。 通過分叉這種方式對區塊鏈進行維護、優化、拓展,雖然也因違背“不可篡改”這一原則而受到爭議,但只要通過了社群共識,基本上並沒有什麼實質上的改變。
如果無法達成共識,那便會產生新鏈。
分叉又分為硬分叉和軟分叉。就如同由舊版本修改升級過後的一個新版本,但有的新舊版本能夠相容,有的新版本無法相容舊版本,能相容的為軟分叉,無法相容的則為硬分叉。
2014年,以太坊上最大的一個專案the DAO出現漏洞,招致黑客攻擊,被盜走大量以太幣。為了保護整個公鏈上的生態,以太坊創始人決定在社群內發起“是否進行分叉”投票,最終以太坊以多數票成功進行了分叉。
這一次分叉為硬分叉,但由於並未獲得所有成員的認同,以太坊分裂出了一條新鏈,即為現在的以太坊,這是數字貨幣史上的第一次有影響力的分叉,引發了一輪對於區塊鏈不可篡改和去中心化的討論。
2017年,比特幣因為擴容之爭,最終將1M大小的區塊鏈擴容至2M,因此分叉了比特幣現金(BCH),並由此引發了比特幣的分叉狂潮。
二、分叉的原理
區塊鏈的共識協議被修改,被修改的協議無法向舊區塊鏈相容,而舊節點也無法認可新節點產生的區塊鏈,舊節點和新節點因此在不同的區塊鏈上執行。這一變化即為硬分叉。
區塊鏈是一個軟體,故而硬分叉首先發生在新的客戶端上。由於新的客戶端修改了原有的規則,不被舊客戶端所相容;這時,區塊鏈上的部分新節點開始在新客戶端網路上執行,產生的交易被舊節點拒絕,舊節點從而斷開與新節點及其交易的連線,區塊鏈網路便出現分叉。
在這種情況下,新客戶端的礦工們會基於新規則進行挖礦,並挖出同樣基於新規則的區塊,而舊版本依然在舊規則下處理交易、產生區塊。如此下去,新的區塊和舊的區塊分道揚鑣,便造成了這個區塊鏈的分叉。
很明顯,這裡的硬分叉是由於新舊版本的相容,同時也是對新舊區塊鏈共識的不一致造成的。
軟分叉,即被修改的協議能夠向舊區塊相容,舊節點能夠接納新節點產生的區塊,新舊節點仍然能夠在同一區塊鏈上執行。
所以,一般情況下,軟分叉並不會產生新鏈。為了能夠向前相容,只能在原有的程式碼基礎上進行修改,而不能增加的新的欄位,這令軟分叉對於區塊鏈的升級和優化十分有限。然而,軟分叉看起來簡單,在實際的技術操作上卻要比硬分叉複雜得多。
兩者相比,硬分叉通常是擴充套件共識協議,而軟分叉則是緊縮共識協議,這也是硬分叉不能相容舊鏈而軟分叉可以的根本原因。
三、分叉的優缺點
分叉是對共識協議的修改,可以彌補原有協議中的漏洞,根據區塊鏈的發展狀況對規則進行調整,對整個系統進行升級和維護。
比如比特幣由於區塊大小不堪重負,通過分叉修改區塊大小,解決了拓展問題上的燃眉之急;而以太坊進行分叉,則是出於保護區塊鏈生態,並且奪回被黑客轉移走的以太幣。可以說, 分叉是一種兼顧區塊鏈延續性和擴充套件性的方法。
但分叉始終都處於一種爭議之中,即它違背了不可篡改的原則,引發了人們對於去中心化的質疑。在區塊鏈現下的情況,即使分叉能夠解決延續性和擴充套件性這兩大棘手難題,但依然不被看作是良方。
在技術上,硬分叉要實現並不難,但在社群共識方面說難很難,說簡單也很簡單。 以太坊的“迭代計劃”中就有拜占庭和君士坦丁堡兩大分叉計劃,這是社群達成共識的方案,並不會因此產生新鏈。
而如果未能達成共識,則會產生出新鏈和新幣,如同比特幣的瘋狂分叉。這種分叉還衍生出了IFO這個新概念,Initial Fork Offering,即分叉幣的首次發行。分叉幣會成為原有幣種的競爭對手。
但更嚴重的情況是,硬分叉有分裂區塊鏈生態的風險,這是分叉技術受到爭議的最大原因。
軟分叉對於生態的影響相對較小,但不僅技術上有一定難度,還容易“吃力不討好”。由於軟分叉只能在原有的程式碼上進行修改,使得升級空間有限,同時代碼將因此變得更加複雜,產生BUG的概率會更大,不利於未來的維護。
總體而言,分叉弊大於利。對於延續性和擴充套件性的解決方案,還是另闢蹊徑為好。
欄目策劃丨無忌
文章作者丨狂歌酒
責任編輯丨鬼薄主
排版編輯丨辣姬
美術指導丨冰菓
BB財經原創,作者:極客,轉載請註明出處:http://www.bbcaijing.cn/geek/25015.html