Table of Contents
Byzantine Generals Problem,1982年被提出來解釋一致性問題的虛構模型。
假設強盛的大國拜占庭,每個邊界守衛站都鎮守一名將軍,將軍們之間通信需要透過信使們跑來跑去傳遞訊息。若眾多將軍中有叛徒,則會故意傳遞錯誤訊息,企圖干擾忠誠將軍之間的訊息一致性。
如何確保忠誠將軍之間的訊息一致,不被叛徒混淆,就是拜占庭(將軍)問題。
---
Byzantine Fault Tolerant (BFT) 算法
算法前提:
假設總節點數(將軍總數)=N,出錯節點數(叛變將軍數)=F,N 必須 ≥3F+1 。也就是出錯節點(叛變者)須小於三分之一,所以至少要4個節點才能允許中間出現1個壞節點。
在1999年被提出的 Practical BFT 算法,即是基於 BFT 算法而來的,解決了網路通信容錯的問題。
Proof of work (PoW) 工作量證明
設計比特幣區塊鏈時提出的算法,也是用來解決訊息一致性問題,但有51%攻擊的隱憂。