有不少朋友問,全球每個區塊鏈節點都包含全部數據,都在最新的區塊鏈數據上挖符合條件的區塊,如何兩個節點同時挖到新區塊,出現數據不一致,該怎么辦呢?
今天,花1分鐘和大家介紹什么是區塊鏈分叉,來解答上面的問題。
假設當前最新的區塊鏈有三個區塊:
假設中國有一個節點,美國有一個節點,同時挖到了礦(即找到了符合哈希預期的區塊,挖礦的過程詳見《1分鐘了解挖礦的本質》),這兩個節點都會把自己挖到的礦,鏈到自己本地的區塊鏈上,這就出現了區塊鏈分叉。
同時,這兩個節點會將“我挖到礦啦”同步全球其他節點,以便于其他節點同步完最新的數據后,在最新的區塊鏈上繼續挖礦,此時:
離中國節點較近的點,可能先同步到“中國鏈”,并在此鏈的基礎上繼續挖,鏈條會持續增長
離美國節點較近的點,可能先同步到“美國鏈”,并在此鏈的基礎上繼續挖,鏈條也會持續增長
節點收到兩個沖突的區塊鏈同步,會判斷此時哪條鏈的長度更長,會以長度更長的區塊鏈為準
如此迭代,最終全球區塊鏈終究會達成一致,以最長的區塊鏈為準。
除非,有人掌握了全球51%的計算力(額,這不是相當于中心化了嗎),才能為所欲為。承載比特幣應用的區塊鏈,一般認為一個區塊后面再鏈了6個區塊后,就不肯能被“顛覆”了,故稱為“六次確認”。
關于區塊鏈分叉,“軟分叉”和“硬分叉”這兩個概念是不能不提的。
什么是軟分叉?
答:區塊鏈系統升級后,在所有節點升級到最新的版本之前,由于程序版本的差異可能會產生分叉,只要升級到最新的版本,分叉就會消除,這就是“軟分叉”,軟分叉是臨時的。
什么是硬分叉?
答:有些人頭硬,不按照規則來,拉了一個分支,以“道德”或者“法律”的名義,號召大家認可自己的鏈,形成分叉,這就是“硬分叉”,硬分叉是永久的。
區塊鏈領域最有名的硬分叉,是“以太坊”分叉,事情大概是這樣的:
黑客盜取了大概6kw美元的合約幣
以太坊開發團隊修改源碼,強行把第1920000個區塊的資金轉移到另一個地址,“奪回”黑客控制的合約幣
大部分礦工認同這個修改,一部分礦工不認同這個修改,于是形成了兩條鏈,新鏈是以太坊(ETH),原鏈是以太經典(ETC)
大家繼續在自己認可的鏈路上繼續挖礦
|
新聞熱點
疑難解答