1. 程式人生 > >1分鐘瞭解“區塊鏈分叉”的本質

1分鐘瞭解“區塊鏈分叉”的本質

1分鐘瞭解區塊鏈的本質》,介紹了什麼是區塊鏈,區塊鏈是一個沒有管理員,每個節點都擁有全部資料,高可用的分散式儲存系統。

1分鐘瞭解挖礦的本質》,介紹了什麼是挖礦,挖礦是在最新區塊鏈的資料上,生成一個符合條件的區塊,鏈入區塊鏈的過程。

有不少朋友問,全球每個區塊鏈節點都包含全部資料,都在最新的區塊鏈資料上挖符合條件的區塊,如何兩個節點同時挖到新區塊,出現數據不一致,該怎麼辦呢?

今天,花1分鐘和大家介紹什麼是區塊鏈分叉,來解答上面的問題。

假設當前最新的區塊鏈有三個區塊:

640?wx_fmt=png&wxfrom=5&wx_lazy=1

假設中國有一個節點,美國有一個節點,同時挖到了礦(即找到了符合雜湊預期的區塊,挖礦的過程詳見《1分鐘瞭解挖礦的本質》),這兩個節點都會把自己挖到的礦,鏈到自己本地的區塊鏈上,這就出現了區塊鏈分叉

640?wx_fmt=png&wxfrom=5&wx_lazy=1

同時,這兩個節點會將“我挖到礦啦”同步全球其他節點,以便於其他節點同步完最新的資料後,在最新的區塊鏈上繼續挖礦,此時:

  • 離中國節點較近的點,可能先同步到“中國鏈”,並在此鏈的基礎上繼續挖,鏈條會持續增長

  • 離美國節點較近的點,可能先同步到“美國鏈”,並在此鏈的基礎上繼續挖,鏈條也會持續增長

  • 節點收到兩個衝突的區塊鏈同步,會判斷此時哪條鏈的長度更長,會以長度更長的區塊鏈為準

畫外音:長度更長的區塊鏈消耗的計算力更多,不能讓大部分礦工“白乾啦”。

640?wx_fmt=png

如此迭代,最終全球區塊鏈終究會達成一致,以最長的區塊鏈為準。

畫外音:如果不遵守規則,成為“少數派”的節點挖到的新礦將不會被“多數派”承認,就等於“白乾啦”,在區塊鏈系統裡,“遵守規則”是所有節點的最佳策略

除非,有人掌握了全球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)硬分叉,其實違背了區塊鏈“不能修改”的技術本質,採用了人為手段“強制回滾”,樓主認為,這違背了區塊鏈去中心化的技術本質。

講了四篇區塊鏈,後續開始講比特幣

  • 為什麼大家瘋狂的挖礦,有什麼價值

  • 比特幣的本質是啥

  • 區塊能勻速生成,比特幣為啥總量有限

  • 比特幣交易的過程是怎麼樣的

一分鐘很短,希望這一分鐘,大家有收穫。

期待下一個一分鐘,有你一起。

前序文章: