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 **收到attackoffer,但其實是retreatSigned message: 訊息被sendersigned過,可以保證malfunctioningnode不能串改它收到的訊息內容。
Oral message相比 Signed message更難,因為無法驗證訊息,所以需要更多的loyal general和更多的訊息傳遞來形成共識。
3-Generals Problem
3-Generals Problem是系統中只存在3m個node,且被證明在oral message的條件下,如果存在一個m以上的malfunctioning node,3-generalss problem沒有解。