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%攻擊的隱憂。