萬良中@IQB6星評價
2020-10-12 23:15:17
拜占庭帝國,又名東羅馬帝國,在歷史上是個軍事強國,位于現(xiàn)在的土耳其。但這里所說的拜占庭將軍問題(Byzantine failures)并不是歷史真實事件,而是計算機科學家萊斯利·蘭伯特針對點對點通信中的基本問題——分布式系統(tǒng)一致性問題特意編造的故事。
故事是這樣編的:拜占庭帝國要去進攻一個敵國,派出了10支軍隊去包圍這個敵國城池,這10支軍隊必須分開駐扎包圍,而這個敵國十分強大,拜占庭軍隊里的任何一支,想要單獨進攻的話都毫無勝算,除非至少超過一半(即6支及以上的軍隊)同時進攻,才能打敗敵人。10支軍隊的拜占庭將軍們不能夠聚在一起開會商量“要不要進攻”和“什么時候進攻”,只能依靠通信兵傳遞信息,萬一將軍當中存在叛徒,傳遞了虛假信息,比如告訴其中5個軍隊去進攻,其它4個軍隊不進攻,就會導致全盤失敗。在這種狀態(tài)下,拜占庭將軍們?nèi)绾伪WC有多于6支軍隊在同一時間一起發(fā)起進攻,從而贏取戰(zhàn)斗?
因此,拜占庭將軍問題的簡單描述就是說在互不見面、互不信任的分布式網(wǎng)絡中,節(jié)點與節(jié)點之間如何達成共識,執(zhí)行真實性的共同行動計劃,達到行動一致的結(jié)果。
在比特幣系統(tǒng)里,一個個分散的節(jié)點(礦工),就好比包圍敵人的一個個拜占庭將軍,如果有礦工作惡制造假賬,就好比軍隊里出現(xiàn)叛徒。向其它節(jié)點傳送假賬就會破壞系統(tǒng)的真實性,而使用POW機制使得礦工需要找到一個正確的隨機數(shù)才能記賬,這個隨機數(shù)誰都控制不了,這樣大家就形成了共識努力去挖礦,這就是我們常說的拜占庭將軍問題。