關(guān)于拜占庭將軍問題,一個(gè)簡易的非正式描述如下:
拜占庭帝國想要進(jìn)攻一個(gè)強(qiáng)大的敵人,為此派出了10支軍隊(duì)去包圍這個(gè)敵人。這個(gè)敵人雖不比拜占庭帝國,但也足以抵御5支常規(guī)拜占庭軍隊(duì)的同時(shí)襲擊。基于一些原因,這10支軍隊(duì)不能集合在一起單點(diǎn)突破,必須在分開的包圍狀態(tài)下同時(shí)攻擊。他們?nèi)我恢к婈?duì)單獨(dú)進(jìn)攻都毫無勝算,除非有至少6支軍隊(duì)同時(shí)襲擊才能攻下敵國。他們分散在敵國的四周,依靠通信兵相互通信來協(xié)商進(jìn)攻意向及進(jìn)攻時(shí)間。困擾這些將軍的問題是,他們不確定他們中是否有叛徒,叛徒可能擅自變更進(jìn)攻意向或者進(jìn)攻時(shí)間。在這種狀態(tài)下,拜占庭將軍們能否找到一種分布式的協(xié)議來讓他們能夠遠(yuǎn)程協(xié)商,從而贏取戰(zhàn)斗?這就是著名的拜占庭將軍問題。
應(yīng)該明確的是,拜占庭將軍問題中并不去考慮通信兵是否會被截獲或無法傳達(dá)信息等問題,即消息傳遞的信道絕無問。Lamport已經(jīng)證明了在消息可能丟失的不可靠信道上試圖通過消息傳遞的方式達(dá)到一致性是不可能的。所以,在研究拜占庭將軍問題的時(shí)候,我們已經(jīng)假定了信道是沒有問題的,并在這個(gè)前提下,去做一致性和容錯(cuò)性相關(guān)研究。如果需要考慮信道是有問題的,這涉及到了另一個(gè)相關(guān)問題:兩軍問題。
與拜占庭將軍相關(guān)問題:兩軍問題
如圖1所示,白軍駐扎在溝渠里,藍(lán)軍則分散在溝渠兩邊。白軍比任何一支藍(lán)軍都更為強(qiáng)大,但是藍(lán)軍若能同時(shí)合力進(jìn)攻則能夠打敗白軍。他們不能夠遠(yuǎn)程的溝通,只能派遣通信兵穿過溝渠去通知對方藍(lán)軍協(xié)商進(jìn)攻時(shí)間。是否存在一個(gè)能使藍(lán)軍必勝的通信協(xié)議,這就是兩軍問題。
兩軍問題中信道是不可靠的,并且其中沒有叛徒之說
拜占庭將軍之解
所有忠誠的將軍都能夠讓別的將軍接收到自己的真實(shí)意圖,并最終一致行動;而形式化的要求就是,“一致性”與“正確性”。
口頭協(xié)議,書面協(xié)議,區(qū)塊鏈
資料