The Byzantine Generals Problem (BGP)
TL;DR
Oral Message
- 如果結點間
fully connected
,需要滿足 (為有問題節點)才能處理BGP。 - 如果節點間不是
fully connected
,如果有 個問題節點,則要求圖為 (regular graph)。
Signed Message
- 如果節點間
fully connected
,需要滿足 才能處理BGP。 - 如果節點間不是
fully connected
,需要滿足 (為graph diameter)。
Motivation
The Byzantine Generals Problem是分散式環境中,如果存在malfunctioning
的節點,該怎麼保證剩下的節點,能正常的運作並取得consensus
的問題。
The Byzantine Generals Problem
BGP要處理的是,當分散式系統中存在malfunctioning
的節點,正常的節點(loyal general
)仍然能正常運作,並且達成共識。
我們使用 代表 的value,正常運作且達成共識的條件是:
- 任兩個
loyal general
使用相同的 - 如果 是
loyal general
,則是 提出的value
BGP根據傳送訊息的方式,還可以分為:
Oral message
: 訊息無法驗證,例如malfunctioning
可以宣稱它從** commander **收到attack
offer,但其實是retreat
Signed message
: 訊息被sender
signed過,可以保證malfunctioning
node不能串改它收到的訊息內容。
Oral message
相比 Signed message
更難,因為無法驗證訊息,所以需要更多的loyal general
和更多的訊息傳遞來形成共識。
3-Generals Problem
3-Generals Problem是系統中只存在3m個node,且被證明在oral message
的條件下,如果存在一個m以上的malfunctioning node
,3-generalss problem沒有解。