區塊鏈04之拜占庭將軍問題

Byzantine Generals Problem

  • 中文:拜占庭將軍問題

解釋

拜占庭將軍問題(Byzantine Generals Problem),是由萊斯利·蘭波特在其同名論文[1]中提出的分佈式對等網絡通信容錯問題。

在分佈式計算中,不同的計算機通過通訊交換信息達成共識而按照同一套協作策略行動。但有時候,系統中的成員計算機可能出錯而發送錯誤的信息,用於傳遞信息的通訊網絡也可能導致信息損壞,使得網絡中不同的成員關於全體協作的策略得出不同結論[2],從而破壞系統一致性[3]。拜占庭將軍問題被認爲是容錯性問題中最難的問題類型之一。

問題描述

一組拜占庭將軍分別各率領一支軍隊共同圍困一座城市。爲了簡化問題,將各支軍隊的行動策略限定爲進攻或撤離兩種。因爲部分軍隊進攻部分軍隊撤離可能會造成災難性後果,因此各位將軍必須通過投票來達成一致策略,即所有軍隊一起進攻或所有軍隊一起撤離。因爲各位將軍分處城市不同方向,他們只能通過信使互相聯繫。在投票過程中每位將軍都將自己投票給進攻還是撤退的信息通過信使分別通知其他所有將軍,這樣一來每位將軍根據自己的投票和其他所有將軍送來的信息就可以知道共同的投票結果而決定行動策略。

實際應用

在點對點式數字貨幣系統比特幣裏,比特幣網絡的運作是平行的(parallel)。各結點與終端都運算著區塊鏈來達成工作量證明(PoW)。工作量證明的鏈接是解決比特幣系統中拜占庭問題的關鍵,避免有問題的結點(即前文提到的“反叛的將軍”)破壞數字貨幣系統裏交易帳的正確性,是對整個系統的運行狀態有着重要的意義。

在一些飛行器(如波音777)的系統中[19] [20][21]也有使用拜占庭容錯。而且由於是即時系統,容錯的功能也要能儘快回覆,比如即使系統中有錯誤發生,容錯系統也只能做出一微秒以內的延遲。

一些航天飛機的飛行系統[22]甚至將容錯功能放到整個系統的設計之中。

拜占庭容錯機制是將收到的消息(或是收到的消息的簽名)轉交到其他的接收者。這類機制都假設它們轉交的消息都可能念有拜占庭問題。在高度安全要求的系統中,這些假設甚至要求證明錯誤能在一個合理的等級下被排除。當然,要證明這點,首先遇到的問題就是如何有效的找出所有可能的、應能被容錯的錯誤。這時候會試着在系統中加入錯誤插入器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章