一張圖瞭解比特幣分叉史
下文有一張比特幣分叉圖總結。雖然沒有涵蓋到所有的分叉,但圖中展示了至今為止的一些最重要的分叉。
什麼是比特幣分叉?
“分叉”這個詞有時會讓人不好理解,因為不同型別的“分叉”代表著不同的東西。
程式碼庫分叉
程式碼庫分叉是軟體實現程式碼的副本。程式碼庫分叉通常是對原始程式碼庫進行的調整。在比特幣上,程式碼庫的分叉意味著生成可以與比特幣協議完全相容的程式碼。它們可能會導致區塊鏈的分叉,或者形成一個全新的數字貨幣體系。
區塊鏈分叉
當區塊鏈上出現兩個版本的交易歷史記錄時,就會發生區塊鏈分叉。發生這種情況的原因有很多,可以是預期之內的,也可以是預期之外的。結果需要根據具體情況來看,可能會導致一個孤立區塊或一個全新的數字貨幣體系。
硬分叉
硬分叉是一種協議升級,它可以放寬或刪除規則。如果所有使用者都進行升級,那麼硬分叉就不會導致區塊鏈的分叉。尤其在比特幣上,一些人認為,除非所有使用者都升級,否則“升級”的協議根本不應該被稱為硬分叉,而應該稱為一種新的數字貨幣或“分叉幣”。
軟分叉
軟分叉是一種協議升級,它可以收緊或新增規則。軟分叉的升級可能會導致區塊鏈的分叉,但是大部分雜湊算力的強制執行將最終聚合相同的歷史交易記錄。雜湊算力可以讓礦工啟用軟分叉 (MASF),而使用者也可以啟用軟分叉 (UASF)。
灰色地帶
雖然不同的名詞間有所區別,但比特幣分叉的情況其實很複雜。硬分叉和軟分叉之間的區別往往不是很明顯,有時甚至根本不清楚什麼要進行協議升級。時至今日,業內專家對某些事件的分類仍存在分歧。有些純粹出於政治動機而試圖改寫歷史的分叉,會讓情況變得更為複雜。
圖中關鍵資訊
比特幣核心比特幣誕生於2009年,當時中本聰釋出了第一個比特幣程式碼庫。然後,它被稱為“比特幣”(或者,更具體地說,第一個版本的“比特幣0.1.0”)。同一程式碼庫的後期被重新命名為“比特幣核心”,有時也被稱為“中本聰客戶端”。
常規區塊鏈分叉
當兩個或更多的礦工同時挖到有效區塊時,比特幣的區塊鏈會分叉成為兩個分支。按照設計的規則,只要一個分支變長,這些分叉就會分解,此時較短的分支就會被丟棄。哪怕是今天,這種情況也經常發生。
第一次軟分叉
比特幣的第一個軟分叉協議升級後禁用了協議特性的OP_RETURN。從技術上講,這是一個UASF,但在早期,實際上只是中本聰在制定協議規則。升級沒有導致區塊鏈分叉。
第一次硬分叉
比特幣的第一次硬叉協議升級增加了一個新功能OP_NOP,而且也是由中本聰指定的。然而,並不是所有人都認為這次升級實際上是一個硬分叉。從結果來看,它沒有導致區塊鏈分叉。
意外的區塊鏈分叉
在比特幣網路的不同部分看到不同的交易歷史,並且通常不會自動解決的時候,就會出現意外的區塊鏈分叉。這種型別的區塊鏈分叉通常是由軟體缺陷或其他技術問題引起的,並且是比特幣可能經歷的最大短期故障之一。幸運的是,在比特幣的歷史上,這種事情只發生過兩三次,每次都是通過社群協調解決的,並沒有造成太大的破壞。
比特幣結 Bitcoin Knots
比特幣結是比特幣核心程式碼庫分叉的一個例子。程式碼庫分叉的是程式碼的副本,而不會引起區塊鏈分叉。比特幣結的設計初衷是與比特幣核心保持相容——它只是提供了不同的功能,可以理解為相互相容又能提供不同功能的比特幣錢包軟體。
Libbitcoin
Libbitcoin是在不同的程式碼庫中完全重新實現比特幣協議的一個例子。它不是一個比特幣核心的程式碼庫分支,但它的設計目的是保持與比特幣核心相容。
第一次MASF
P2SH升級可以說是第一個MASF,儘管後來的MASF使用了一種更純粹的基於雜湊算力的升級機制。它沒有導致區塊鏈分叉。
BIP148客戶端
BIP148客戶端是比特幣核心程式碼庫分叉的另一個例子。BIP148客戶端被調整為強制執行的UASF,以便啟用隔離證協議的升級。它可能與比特幣核心和其他比特幣客戶端變得不相容。
比特幣ABC
比特幣ABC是比特幣核心程式碼庫分支的另一個例子。然而,比特幣ABC進行了調整,以確保它在某個時間點與比特幣核心和其他比特幣客戶端不相容。
Bitcoin ABC從比特幣中分叉出來,並創造出了“比特幣現金”
2017年8月1日,比特幣ABC與比特幣核心等比特幣客戶端發生衝突。在此過程中,它創造了一種新的數字貨幣,稱為“比特幣現金”。(雖然該資訊在這張圖中並沒有顯示,但比特幣現金現在也包括了幾個客戶端——不僅僅只是比特幣ABC。)
BTC1
BTC1也是一個比特幣核心的程式碼庫分支,經過調整後,確保了它與比特幣核心以及其他比特幣客戶端不相容。然而,BTC1的目的是為新的比特幣協議“Segwit2x”部署硬分叉升級。換句話說,它的目標是讓所有比特幣使用者都改用Segwit2x協議,並把這個協議稱為“比特幣”。
第一次UASF
如果當時BIP148客戶端沒有獲得足夠的支援,它就會放棄比特幣原鏈,從而建立一種新的數字貨幣。然而,由於有足夠多的礦工升級了他們的系統,BIP148的客戶端仍然與其他比特幣客戶端相容。許多人將此協議升級視為第一個“真正的”UASF:它不是由開發人員決定的,而是源於草根使用者的運動。
Bitcoin Clashic
這是一個新的Bitcoin ABC發行版,旨在從硬分叉到升級的比特幣現金協議。大多數比特幣現金使用者確實升級了這種新協議,並將其命名為“比特幣現金”。然而,一小部分使用者選擇繼續使用最早的比特幣現金協議,併為這種加密貨幣取了一個新名字:“Bitcoin Clashic”。
比特幣核心(尚未實現)
2018年初,Bitcoin Clashic社群中的大多數人都採用了Bitcoin Clashic客戶端的一個程式碼庫分支,名為Bitcoin Core Sq。這與現有的Bitcoin Clashic客戶端不相容,所以這又一次創造了一種新的數字貨幣。該軟體故意和“比特幣核心Bitcoin Core”的名字相混淆,實際上Bitcoin Core Sq和Bitcoin Core的數字貨幣、Bitcoin Core軟體客戶端、比特幣協議並不相容,是不同的產品。雖然Bitcoin Clashic也存在了一段時間,但現在它已經完全被拋棄了(主要是被比特幣核心所取代)。
Segwit2x的失敗
由於種種原因,幾乎沒有人採用BTC1。它不僅未能“升級”比特幣協議,甚至沒有能繼續作為一種新的數字貨幣。
比特幣黃金、比特幣鑽石和幾十種分叉幣
在Bitcoin ABC開創了一個通過區塊鏈分叉創造比特幣現金的相對成功的先例之後,一系列所謂的“分叉幣”都陸續問世。比特幣現金誕生於比特幣社群內部長期存在的分歧,而其他比特幣分叉幣則普遍認為區塊鏈分叉是一種發行新幣的好方法。
Bitcoin SV
中本聰的願景(Bitcoin SV)是比特幣ABC的一個程式碼庫分支,但經過調整,比特幣SV確保了它在某個時間點與比特幣現金協議並不相容。
Bitcoin ABC和Bitcoin SV的分歧
2018年,比特幣現金社群內部出現分歧,導致比特幣ABC和比特幣SV都脫離了現有的比特幣現金協議。比特幣ABC方面的分裂幾乎在各個方面都更大,並自稱為“比特幣現金”(Bitcoin Cash),不過現在它也被稱為“比特幣現金ABC”。比特幣SV方面的分裂稱其為“比特幣SV”。新的數字貨幣及其主要實現,現在都使用“比特幣SV”這個名字。)
Bitcoin Dark
Bitcoin Dark是比特幣核心的一個程式碼庫分支,同時它形成了一種同名的數字貨幣:Bitcoin Dark。與萊特幣和其他許多數字貨幣一樣,這個程式碼庫從一開始就被調整為與比特幣協議完全不相容。因此,它是一種全新的數字貨幣,而不是區塊鏈的分叉,只是碰巧在其名字中使用了“比特幣”。如今,Bitcoin Dark已經銷聲匿跡了。