比特幣分叉是什麼?告訴你區塊練分叉到底是怎麼一回事


原文刊登於雷鋒網AI金融評論,作者為中國信息通信研究院(工信部電信研究院)專家敖萌博士,蘋果仁授權轉載。

比特幣分叉

我之前的文章介紹過比特幣的挖礦是怎麼回事兒。比特幣採用的工作量證明機制,就是讓礦工互相競爭求解一個數學題,誰先解出來了,他就大喊一聲:“我的工作量證明成功了,你們快來看。”全體礦工就都過來把那一頁目抄寫一份,貼在自己賬本的最後面,然後又開始新的記賬過程。

在這個過程中,經常會出現這樣一種情況:兩個礦工同時解出了題目,這時要怎麼辦呢?

前面的文章也曾經講過:“在任何區塊裡,第一條都是沒有轉出地址的,就是所謂的CoinBase(挖礦交易)。沒有任何人付給礦工這筆錢,礦工只是理所應當的寫上自己獲得了12.5比特幣。所有節點都認可礦工這樣寫,因此礦工就得到了挖礦收入。不同的礦工在填寫區塊的時候,數據一定是不一樣的,因為每個礦工的第一條肯定不一樣,礦工只會把挖礦收入轉入自己的地址。”

由於距離遠近,不同的礦工看到這兩個區塊是有先後順序的。通常情況下,礦工們會把自己先看到的區塊複製過來,然後接著在這個區塊開始新的挖礦工作。於是,出現了這樣的情景:
由於每個礦工的區塊數據都不一樣,所以他們解題得出的結果也是不一樣的,都是正確答案,只是區塊不同。於是,區塊鏈在這個時刻,出現了兩個都滿足要求的不同區塊。那麼,全體礦工這時該怎麼辦呢?

區塊鏈研習| 區塊鏈分叉是怎麼回事兒?

我們把這種現象叫做分叉。

在以工作量證明機制為共識算法的區塊鏈系統中,這個問題是這樣被解決的:從分叉的區塊起,由於不同的礦工跟從了不同的區塊,在分叉出來的兩條不同鏈上,算力是有差別的。形像地說,就是跟從兩個鏈礦工的數量是不同的。由於解題能力和礦工的數量成正比,因此兩條鏈的增長速度也是不一樣的,在一段時間之後,總有一條鏈的長度要超過另一條。當礦工發現全網有一條更長的鏈時,他就會拋棄他當前的鏈,把新的更長的鏈全部複製回來,在這條鏈的基礎上繼續挖礦。所有礦工都這樣操作,這條鏈就成為了主鏈,分叉出來被拋棄掉的鏈就消失了。

區塊鏈研習| 區塊鏈分叉是怎麼回事兒?

最終,只有一條鏈會被保留下來,成為真正有效的賬本,其他都是無效的,所以整個區塊鏈仍然是唯一的。

注意,能夠讓區塊鏈保證數據唯一性的前提是:所有礦工都遵從同樣的機制。

還有一種情況,就是礦工不遵從同樣的機制,那麼也會出現分叉。這種分叉又有兩種情況:一是由於整個區塊鏈系統軟件的升級,一部分礦工沒有來得及升級,出現了遵從不同機制產生的分叉。當這部分礦工升級系統後,這個分叉就會消失,我們稱這種分叉為軟分叉。二是由於礦工之間出現分歧,一部分礦工決定採用不同的機制,產生出來的分叉是不會消失的。我們一般把這種分叉稱為硬分叉。

軟分叉很好理解,我們重點談談硬分叉。

區塊鏈圈裡第一個有影響力的硬分叉應該是以太坊的分叉事件。以太坊上一個著名的項目The DAO由於其自身漏洞,導致黑客竊取了當時價值約6000萬美元的以太幣。2016年7月,以太坊開發團隊通過修改以太坊軟件的代碼,在第1920000個區塊強行把The DAO及其子DAO的所有資金全部轉到一個特定的退款合約地址,從而“奪回”黑客所控制的DAO合約幣。由於一部分礦工並不認同這個修改,於是形成兩條鏈,一條為以太坊(ETH),一條為以太坊經典(ETC),各自代表不同的社區共識以及價值觀。當以太坊發生了這次硬分叉後,產生了兩條區塊鏈。由於這兩條鏈在發生分叉之前的數據都是一樣的,一個非常有意思的現像出現了:原本持有以太幣(ETH)的人,發現自己除了持有原有的ETH外,又有了相同數量的ETC。

在2017年8月1日,由ViaBTC領導的礦工團體創建一個比特幣分叉——Bitcoin Cash(簡稱BCC或BCH)。這次分叉,讓大量的比特幣持有者憑空的增加了一種新的數字貨幣(BCH)。
也就是說,憑空的多出了一些資產。這些資產的價值具體怎樣,還要看市場交易情況。但總的來說,區塊鏈的硬分叉,沒有減少資產,反而讓人手裡多了一種資產,看上去總歸是一件不虧的事情,於是區塊鏈分叉就成了一種資產憑空增加的方式。

硬分叉這種創造貨幣的方式和ICO非常類似,於是一個新的名詞誕生了——IFO(Initial Fork Offerings)。礦工團隊在創造分叉的同時,可以在分叉發生的區塊中,利用自己的特權,分配一些貨幣給自己或其他人(直接寫成CoinBase交易即可),然後再開放讓所有人都可以參與挖礦。

隨著越來越多的硬分叉發生,比特幣的公信力是否還能像以前一樣?IFO會不會成為比特幣的殺手?還需要時間的考驗。