甚麼是「拜占庭將軍問題」?
🔥「拜占庭將軍問題」(Byzantine Generals Problem)又稱作拜占庭公主問題,是由英國電腦科學家萊斯利.蘭波特(Leslie Lamport)於 1982 年提出的知名電腦科學問題。該問題試圖探詢一個分布式系統中如何達到行動的一致與正確。
⚔事情是這樣的,有一支軍隊試圖拿下一座久攻不下的城堡,但軍隊的將軍發現這座城堡必須要從不同角度協同進攻才得以拿下,因此他便圍繞著這座城堡部署了多支分隊。但問題也隨之而來,將軍要如何確保自己能夠準確且一致的將進攻的消息分毫不差的傳遞到每支分隊,同時也要預防這些分隊中的間諜擾亂通訊?
💡此問題的核心是在一個分散式系統中,發號施令者應當如何建立一套通信協議,藉此準確且一致的將訊息傳遞到其他單位中。其中也延伸了一系列相關的問題,例如如何確保信息不會被重複廣播、如何確保各節點不起衝突、如何在在節點之間達成共識等、容錯率問題等。
圍繞以上的問題也出現了不同的解答方式,除了蘭波特自己給出的答案之外,區塊鏈技術也是其中一種解方。當一筆交易被發出時(將軍發號施令),其他多個節點將藉由區塊鏈進行廣播並記錄在各節點的帳本中,此即為分散式帳本。
基於密碼學的原則,區塊鏈保證了資訊的一致性以及真實性。同時像是比特幣這種工作量證明(PoW)的區塊鏈則藉由算力與收益的配置,防止「叛徒」(故意破壞安全性的節點)的產生,換言之,若單一節點嘗試作亂便必須要付出過半數的算力才得以成功,但這麼做的代價對於單一節點而言太大也不切實際。
🤔你認為區塊鏈還解決了哪些面向的「拜占庭將軍問題」呢?歡迎與我們分享,一同學習!
作者Jeffrey