什么是比特幣硬分叉(一文了解什么是比特幣分叉)
比特幣在自然演進的敘事中,經常會出現“比特幣分叉”,對于“比特幣分叉”,不少朋友對其中的成因、邏輯以及影響理解并不是很深入。為此,我通過通俗易懂的描述為大家提供一些思路,希望能對大家進一步理解“比特幣分叉”提供一些參考。
實際上,從嚴格意義上來講,“比特幣分叉”的正確說法是“區塊鏈分叉”,只是缺乏對區塊鏈相關知識的了解,部分人在理解比特幣時容易停留在字面意思,忽略其底層技術區塊鏈發揮的重要作用,導致在遇到“比特幣分叉”等一些概念時,很難結合底層技術去理解它的深層內涵。
從技術的角度來看,區塊鏈是比特幣的核心底層技術之一,所以,我們在日常中談到的“比特幣分叉”,其分叉的并不是比特幣,而是在“分叉”比特幣的底層代碼庫。
更確切的說,是在分叉“比特幣區塊鏈代碼庫”,至于最終是否真正意義上實現了“分叉”,要根據最初的“分叉”動機以及后期結果是否分叉出了新鏈來綜合判定。
另外一個難以理解的是,因為區塊鏈的特性,比如比特幣,因為它具有分散的特性,所以比特幣的分支并不是以中央為中心的,這就造成了它的分支,比如協議的升級、區塊的擴容,比如,為了達成一致而產生的分支,比如,黑客攻擊,不可預測的系統漏洞等等。
不過,雖然分叉原因多種多樣,但區塊鏈最終“分叉”的結果只有兩種,分叉成功和分叉失敗。為了便于理解,我們可以以后期是否產生新鏈來區分分叉是否成功。
若分叉成功,則有新鏈產生,原有的一條區塊鏈變成不兼容的兩條區塊鏈各自運行;若分叉失敗,即沒有新鏈產生,原有的一條區塊鏈依然是一條區塊鏈。
也就是說,真正意義上的分叉成功需要滿足兩個條件:第一,有新鏈產生;第二,有一定的用戶(社區力量)支持,兩者缺一不可。需要強調的是,這里所說的“分叉成功”或“分叉失敗”和推動分叉的最初動機或最終結果沒有必然聯系。
舉個例子,比特幣首次分叉時,支持大區塊的開發者把區塊擴容到8M,同時分叉出的新鏈BCH和BTC獨立運行,這就是真正意義上的成功分叉;
又比如,比特幣遭到了黑客的攻擊,為了保證系統的安全,開發者必須修改密碼,或者更新系統,否則,一旦有被人為的破壞,那么比特幣就會喪失信譽。
像這樣的基于社區一致的代碼修補和系統更新是一種普遍的技術更新,不會產生新的分叉,但是我們不能說它是“失敗的”,因為開發者的目的是更好地維持比特幣的運轉。
“分叉成功”或者“分叉失敗”只是在分開討論“區塊鏈分叉”時,為了更好地了解和區別,把它歸為“分叉失敗”。
沒有前面的說明,我們很難理解比特幣分叉的含義,特別是那些剛入門的區塊鏈新手。
下面我們來看下學界對“區塊鏈分叉”的解釋。
區塊鏈分叉:導致原區塊鏈分叉成兩個各自獨立的區塊鏈。這可能由硬分叉,軟分叉或其他原因造成。
硬分叉:放寬區塊有效性的共識規則,以致以前認為無效的區塊鏈現在被認為是有效的,現有節點需要升級才能整合到新的硬分叉區塊鏈。
軟分叉:收緊區塊有效性的共識規則,以致以前認為有效的一些區塊現在被認為是無效的,現有節點不一定需要升級也可以整合到新的軟分叉區塊鏈上。
這是怎么回事?本文以抖音、快手等常見 APP軟件為例進行了詳細的例子。事實上,除了區塊鏈本身具有的去中心化、匿名、不可篡改等特性之外,類似于抖音、快手之類的區塊鏈應用,都屬于一款應用。
只不過,抖音、快手等 APP,都是采用了網絡技術,而區塊鏈則是加入了區塊鏈技術。想通了這個道理,再去了解一下“區塊鏈的分叉”,就容易多了。
眾所周知,抖音等主流應用程序往往會因為添加新功能、改版界面、修復 BUG等原因而進行更新,而區塊鏈上的區塊鏈分叉,就跟抖音、快手等 APP的更新一樣。
我們先從APP版本更新的角度來看“區塊鏈分叉”。
首先,我們假定有一個與抖音相似的 APP軟件A, A并不是一個公司,而是一群人共同開發的,這些人既是開發者,也是使用者,他們擁有公司的所有戰略決策權,如果要修改 A軟件,必須得到大多數開發者的支持。
在共同推進 A軟件的發展過程中,為了使 A能夠更好地發揮作用,往往要對 A進行修改,這既包括了開發者的主觀推動力,也包括了其他開發人員所不能預料到的因素。
?其中幾種主要情況如下:第一種情形:一些參與開發 A的開發人員覺得 A軟件太過卡頓,需要增加一個讓 A更容易使用的特性,而對于這個建議,其它開發人員也表示贊同。
所以,所有的開發人員一起對 A進行了更新,最后得到了A1版本, A的A1版本兼容,可以讓用戶選擇使用任何一個。
在這個過程中,A1的性質沒有變化,就像 A一樣。以后,A1軟件由于各種原因進行了多次升級,A2,A3,A4,A5等不同的版本,而后面的版本仍然與以前的版本兼容, A軟件繼續發展。
基于這一點, A軟件的更新過程可以被看作是“軟分叉”,因為在經過了過度的分割之后,它依然是一個區塊鏈,而不會出現新的分支,這就是所謂的“區塊鏈分叉失效”。
第二種情形:目前有一批參與開發 A的人員表示,已經進入了影視時代,那么 A軟件可以將所有的文字都換成視頻格式,既能滿足用戶的需求,又能提高A軟件的競爭能力,但這些人的建議卻遭到了其他開發者的強烈抵制。
從那以后,兩組開發者就分道揚鑣了,一組繼續發展 A,一組是在 A上開展出來A1。同時,A1和A的數據不兼容,A1的數據無法被 A所識別,所以兩個不同的數據都是獨立的。
也就是說,從分裂的那一刻開始,原來的A軟件徹底分裂成了兩個不一樣的軟件——A和A1,從此兩個軟件獨立運行,各自發展。
如果將第二種情形中的 A所做的修改與區塊鏈相對應,則可以將其視為“硬分叉”,因為區塊鏈在過度分割后,會產生新的分支,并擁有自己的擁有者,也就是所謂的“區塊鏈分叉成功”。
第三種情形:目前,參與開發A的開發人員都致力于使 A變得更加強大,并且獲得了廣大用戶的認同。還有一批人也希望能研發出類似 A的軟件,恰好 A的代碼是開放源碼,人人都能得到,于是有些人只需要稍微改動一下,或者干脆把 A的代碼拷貝出來,就能制作出一款 A,還有其他成千上萬的軟件,比如 B, C, D, E, F等等。
然而,新研發出來的軟件,不是 A,就是“翻版” A,所以支持的人寥寥無幾。這些軟件,大部分都是在市場上銷聲匿跡,變成了一種沒有任何價值的軟件,也有一小部分,通過推廣、登錄各大應用程序,獲得了一小撮人的支持。
如果把通過復制或修改代碼創建的A、B、C、D、E、F等成千上萬款軟件開發的過程映射到區塊鏈上,這個過程就可以看作是區塊鏈分叉中的“硬分叉”,因為區塊鏈應用經過分叉后分叉出了新鏈。
但大多數人并不認同它的價值,因為沒有人會去支持它,這就導致了區塊鏈的分裂,這需要兩個前提:一是新的鏈條誕生;第二,需要一定的使用者(社群)支持,也就是“區塊鏈分叉失敗”。
?
那么,為什么同樣的軟件A就能得到龐大用戶的支持并認可它的價值,通過代碼復制或修改創建的A、B、C、D、E、F等軟件卻沒有那么多人支持,價值也得不到認同呢?
我們將視線再拉回到以比特幣為代表的加密貨幣身上來做進一步解釋。
眾所周知,盡管比特幣和其他加密貨幣都是軟件,但它們也是以金錢為基礎的,跟抖音、快手等普通的 APP完全不同。
比特幣、以太坊等不同的發行方式,都是一種新的貨幣,在抖音、快手等平臺上,如果繼續“硬分叉”,就像抖音和快手一樣,我們可以使用一次或者多次的更新,而在比特幣和以太坊等加密貨幣中,我們的份額會被分成兩份甚至更多。
當然,如果單純從技術角度看,A軟件和分裂出來的A、B、C、D、E、F等眾多軟件是沒有本質區別的,都是一些編碼的代碼庫,即使通過復制或修改代碼庫做了一些改動,那這些軟件還是一些編碼的代碼庫。
區塊鏈軟件與之唯一不同的是,在價值認同上,人們愿不愿愿意承認它的價值,這種人們是否愿意主動賦予這些軟件代碼價值的關鍵因素,就在于區塊鏈的“共識機制”。
也就是說,對于某區塊鏈的“共識機制”,你認為它是有價值的,那么它就有價值,你認為它沒有價值,那么它就一文不值。
這也解釋了為什么一模一樣的區塊鏈項目的代碼,在技術上是完全一樣的東西,但在價值認同上卻天差地別。
例如,中本聰創造的比特幣區塊鏈網絡,其代幣比特幣可以達到幾萬美元一枚,其他開發者復制比特幣的代碼創建的新鏈,其代幣卻一文不值。
造成這種結果的主要原因是,通過復制比特幣代碼創建出來的代幣,其投機屬性已經遠遠超過了其本身的價值存儲功能或應用價值。
從價值存儲功能角度來說,嚴格意義上講,無論哪個公鏈,硬分叉讓“一份錢花兩次”這已經是自身機制存在的巨大漏洞,是對自身區塊鏈網絡的主動“攻擊”。
即使是基于“社區共識”進行的硬分叉,也是對自身“共識機制”的破壞,而重新復制創造相同的新鏈,等于是默認讓同一種代幣可以花三次、四次、五次……如此一來,新鏈代幣所謂的價值存儲功能早已無從談起,投機屬性暴露無遺。
另外,從應用的角度看,在同樣的“共識機制”下,人們擁有兩套相同的“共識機制”是沒有任何意義的。
上述案例基本上包括了一些主要的區塊鏈分叉案例。對新手來說,對區塊鏈分叉的成因、邏輯和可能造成的后果,有助于在不斷變化的市場環境下,認清事物的發展規律,降低由于輿論的影響而造成的錯誤判斷。
至于其他的分叉,基本上都是一樣的,就不多說了,你們可以根據自己的理解,來分析一下區塊鏈分叉的成因、邏輯和可能造成的后果,會對區塊鏈有很深刻的認識。