OK區塊鏈60講第14集:什么是拜占庭將軍問題?

分類:OK區塊鏈60講/2020-03-12/小螞蟻/閱讀:

OK區塊鏈60講第14集:什么是拜占庭將軍問題文字版:

今天我們要講的內容是:“什么是拜占庭將軍問題”?

我們在之前講過,分布式賬本可以說是區塊鏈的框架,每一個人都可以自由地參與進來,共同處理區塊鏈中的數據,基于這一點,區塊鏈實際上就是一個大的分布式計算網絡。

它并沒有一個類似中央指揮室的東西來發號施令,整個網絡是完全分散的,要依靠不同的節點間,彼此交換信息、達成共識,才能統一行動,整個過程就像無領導小組討論一樣。

對此,有人就提出了疑問,萬一有節點發送了錯誤的信息,干擾網絡正常運行或者大家產生了分歧怎么辦?于是,學者們便建立了一個模型,統一將這類用來描述分布式系統一致性的問題,稱為拜占庭將軍問題。

所謂拜占庭將軍問題是這樣的:

拜占庭帝國想要攻打一個國家,它派出了多支軍隊進行圍攻,但敵國軍事實力也很強,將軍們必須在同一個時間,一起發動進攻才能獲取勝利。

現在的問題在于,每個將軍都分散在敵國四周,只能依靠通信兵騎馬相互通信,確定進攻的時間,可是一方面通訊兵可能會在送信過程中被敵方擊殺,另一方面根據不可靠消息,在這些將軍中有叛徒的存在,叛徒可能會擅自變更進攻意向或者進攻時間,從而向其他將軍傳達虛假指令,影響他人判斷。

如果整個分布式網絡相當于拜占庭帝國,而每個節點相當于里面的將軍,那么在這種狀態下,該怎么做才能保證網絡中的全部節點對于某個事情達成一致?(即將軍們在同一時間一起發起進攻,從而贏取戰斗)這就是拜占庭將軍問題。

所以簡單來說,拜占庭將軍描述的是,分布式網絡會面臨的兩個問題:

1)如何解決各個節點之間的同步問題。比如在沒有叛徒情況下,將軍 A 向其他將軍傳遞進攻方案時(如:明日下午 2 點進攻),可能將軍B也在傳遞進攻方案(如:明日下午 3點進攻)。

2)如何解決惡意節點,故意發送錯誤信息干擾網絡的運行的問題。比如在有叛徒情況下,叛徒會向不同的將軍發出不同的進攻提議,干擾其他將軍們達成一致。

后來大家發現,想要在分布式網絡中,讓每一個節點都不出錯是不可能的,于是就有人提出了“拜占庭容錯”的觀點來解決拜占庭將軍的問題,這個解決辦法就是信息的偽造或錯誤并不重要,只要誠實的將軍數量大于總數的三分之二,即使有少部分不誠實的將軍存在,整個系統也可以達成一致。

于是大家以此為基礎,設計出了很多解決方案。

區塊鏈四大核心技術中的共識機制,就是為了解決這個問題,而誕生的一個方案,至于具體是如何解決的,請容小K君賣個關子,我們下節課再說。

比特幣家園
微博二維碼掃一掃關注
官方微博號
CopyRight ? 比特幣家園 www.dljett.com 蘇ICP備18045312號
二維碼
投稿
一日本道在线不卡视频