1分钟了解“区块链分叉”的本质
轉載自?1分鐘了解“區塊鏈分叉”的本質
有不少朋友問,全球每個區塊鏈節點都包含全部數據,都在最新的區塊鏈數據上挖符合條件的區塊,如何兩個節點同時挖到新區塊,出現數據不一致,該怎么辦呢?
?
今天,花1分鐘和大家介紹什么是區塊鏈分叉,來解答上面的問題。
?
假設當前最新的區塊鏈有三個區塊:
?
假設中國有一個節點,美國有一個節點,同時挖到了礦(即找到了符合哈希預期的區塊,挖礦的過程詳見《1分鐘了解挖礦的本質》),這兩個節點都會把自己挖到的礦,鏈到自己本地的區塊鏈上,這就出現了區塊鏈分叉。
?
同時,這兩個節點會將“我挖到礦啦”同步全球其他節點,以便于其他節點同步完最新的數據后,在最新的區塊鏈上繼續挖礦,此時:
-
離中國節點較近的點,可能先同步到“中國鏈”,并在此鏈的基礎上繼續挖,鏈條會持續增長
-
離美國節點較近的點,可能先同步到“美國鏈”,并在此鏈的基礎上繼續挖,鏈條也會持續增長
-
節點收到兩個沖突的區塊鏈同步,會判斷此時哪條鏈的長度更長,會以長度更長的區塊鏈為準
畫外音:長度更長的區塊鏈消耗的計算力更多,不能讓大部分礦工“白干啦”。
如此迭代,最終全球區塊鏈終究會達成一致,以最長的區塊鏈為準。
畫外音:如果不遵守規則,成為“少數派”的節點挖到的新礦將不會被“多數派”承認,就等于“白干啦”,在區塊鏈系統里,“遵守規則”是所有節點的最佳策略。
?
除非,有人掌握了全球51%的計算力(額,這不是相當于中心化了嗎),才能為所欲為。承載比特幣應用的區塊鏈,一般認為一個區塊后面再鏈了6個區塊后,就不肯能被“顛覆”了,故稱為“六次確認”。
畫外音:額,挖到一個新區塊別高興太早,等后面鏈了6個其他區塊的時候,再慶祝吧。承載比特幣應用的區塊鏈,平均10分鐘生成一個區塊,“六次確認”大概需要經歷1個小時。如何保證平均十分生成一個區塊,詳見《1分鐘了解區塊如何勻速生成》。
?
關于區塊鏈分叉,“軟分叉”和“硬分叉”這兩個概念是不能不提的。
?
什么是軟分叉?
答:區塊鏈系統升級后,在所有節點升級到最新的版本之前,由于程序版本的差異可能會產生分叉,只要升級到最新的版本,分叉就會消除,這就是“軟分叉”,軟分叉是臨時的。
畫外音:原文是說
A temporary fork in the block chain which commonly occurs when miners using non-upgraded nodes violate a new consensus rule their nodes don’t know about.
?
什么是硬分叉?
答:有些人頭硬,不按照規則來,拉了一個分支,以“道德”或者“法律”的名義,號召大家認可自己的鏈,形成分叉,這就是“硬分叉”,硬分叉是永久的。
?
區塊鏈領域最有名的硬分叉,是“以太坊”分叉,事情大概是這樣的:
-
黑客盜取了大概6kw美元的合約幣
-
以太坊開發團隊修改源碼,強行把第1920000個區塊的資金轉移到另一個地址,“奪回”黑客控制的合約幣
-
大部分礦工認同這個修改,一部分礦工不認同這個修改,于是形成了兩條鏈,新鏈是以太坊(ETH),原鏈是以太經典(ETC)
-
大家繼續在自己認可的鏈路上繼續挖礦
畫外音:
(1)區塊頭里能記錄版本信息,所以理論上任何人都可以改程序,升級版本自己玩,只是沒有人陪你玩罷了,沒人陪你玩,你挖到的礦大家不認可,就只是浪費電。還是那句話,區塊鏈的世界里,遵守規則才能讓礦工的利益最大化。
(2)硬分叉,其實違背了區塊鏈“不能修改”的技術本質,采用了人為手段“強制回滾”,樓主認為,這違背了區塊鏈去中心化的技術本質。
?
講了四篇區塊鏈,后續開始講比特幣:
-
為什么大家瘋狂的挖礦,有什么價值
-
比特幣的本質是啥
-
區塊能勻速生成,比特幣為啥總量有限
-
比特幣交易的過程是怎么樣的
-
…
?
一分鐘很短,希望這一分鐘,大家有收獲。
期待下一個一分鐘,有你一起。
總結
以上是生活随笔為你收集整理的1分钟了解“区块链分叉”的本质的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 9个最佳烧烤标识以及如何免费制作自己的[
- 下一篇: 全球如何保证区块生成是匀速的?