拜占庭將軍問題是由Leslie Lamport等人在1982年提出,被稱為The Byzantine Generals Problem或者Byzantine Failure,其可簡單描述為:
拜占庭帝國想要進攻一個強大的敵城,由拜占庭將軍們分別率領一支軍隊共同圍攻。因為這座城市很強大,如果不協調統一將軍們的行動策略,部分軍隊進攻、部分軍隊撤退會造成圍困失敗。因此各位將軍必須通過投票來達成一致策略,要么一起進攻,要么一起撤退。
但因為拜占庭將軍們是分散在各個角落,他們只能通過信使互相聯系。這樣一來每位將軍根據自己的投票和其他將軍送過來的投票,獲得投票結果,從而決定是進攻還是撤退。
而問題的復雜性就在于:將軍中可能出現叛徒,他們不僅可以投票給錯誤的決策,還可能會選擇性地發送投票。假設忠誠的將軍中一半投“進攻”,另一半投“撤退”,這時候叛徒可能故意給投“進攻”的將軍投“進攻”,而給另外投“撤退”的將軍投“撤退”。這樣,雙方得到的投票結果都是按自己的決策實施,一致性就遭到了破壞。此外,即便所有的將軍都是忠誠的,將軍之間派出去的信使也可能被敵軍截殺,甚至被間諜替換,也就是說將軍之間進行交流的信息通道是不能保證可靠性的。
那拜占庭將軍問題有解嗎?答案是有的,但有個前提,那就是叛徒的數量不能大于等于1/3,也就是實現拜占庭容錯,使得即便存在叛徒的情況下,忠誠的將軍們仍能達一致目標。
簡單來說,拜占庭容錯是能夠抵抗拜占庭將軍問題導致的一系列失敗的系統屬性。看到這里想必大家已經知道了,這不就是
區塊鏈技術的共識機制嗎?
版權申明:本內容來自于互聯網,屬第三方匯集推薦平臺。本文的版權歸原作者所有,文章言論不代表鏈門戶的觀點,鏈門戶不承擔任何法律責任。如有侵權請聯系QQ:3341927519進行反饋。