金貓kinmall:三分鐘教您看懂中本聰是如何解決拜占庭將軍問題的

拜占庭將軍問題很多人可能聽過,但不知道是什麼意思,今天金貓kinmall就讓你三分鐘看懂區塊鏈智慧是如何解決拜占庭將軍問題的。

金貓kinmall:三分鐘教您看懂中本聰是如何解決拜占庭將軍問題的


故事大概是這麼說的:

拜占庭帝國即中世紀的土耳其,擁有巨大的財富,周圍10個鄰邦垂誕已久,但拜占庭高牆聳立,固若金湯,沒有一個單獨的鄰邦能夠成功入侵。任何單個鄰邦入侵的都會失敗,同時也有可能自身被其他9個鄰邦入侵。拜占庭帝國防禦能力如此之強,至少要有十個鄰邦中的一半以上同時進攻,才有可能攻破。

然而,如果其中的一個或者幾個鄰邦本身答應好一起進攻,但實際過程出現背叛,那麼入侵者可能都會被殲滅。

於是每一方都小心行事,不敢輕易相信鄰國。這就是拜占庭將軍問題。

其實,在拜占庭問題裡,各鄰國最重要的事情是:所有國家如何能過達成共識去攻打拜占庭帝國

金貓kinmall:三分鐘教您看懂中本聰是如何解決拜占庭將軍問題的


針對這種情況,有科學家們提出了兩種方案,即口頭協議和書面協議。

解決方案一:口頭協議

各個國家派信兵向其他所有國家傳達口信 , 每個國家再將自己收到的口信傳達給其他國家以供決策,最終多數投票即為共識。最終達成以下三點:

1、每個被髮送的消息都能夠被正確投遞;

2、信息接受者知道消息是誰發的;

3、沉默(不發消息 ) 可以被檢測;

但這個方案存在的缺陷也很明顯:消息無法溯源,無法確定消息的上一來源是誰,如有叛徒,則難以找到叛徒所在。

解決方案二:書面協議

如果不形成共識會導致失敗

金貓kinmall:三分鐘教您看懂中本聰是如何解決拜占庭將軍問題的


各個國家派信兵向其他國家發送書面信息,並附其簽章,其他國家收到書信後附上自己的意見與簽章再發給剩餘國家,最終得到共識。實現了以下三點:

1、簽章有記錄,解決溯源問題

2、簽章難以偽造,篡改會被發現

3、任何國家都可驗證其他國家的簽章真偽

但這一解決方案依然存在缺陷:簽章記錄的保存人不一定可信,真正可信的簽名體系很難實現。

以上兩個方案,在任意時間,系統中可能會存在多個提案,即每個國家都可以傳出自己的意見 。 這就是一個由互不信任的各個鄰邦國家所構成的分佈式網絡,要獲得最大的利益,又必須一起努力才能完成,如何達成一致的共識,變成了一個難題。

金貓kinmall:三分鐘教您看懂中本聰是如何解決拜占庭將軍問題的


雖然,拜占庭將軍問題是由萊斯利·蘭伯特提出的,但真正解決這一難題的是中本聰。

解決方案三:區塊鏈技術,信息同步,達成共識

中本聰在比特幣白皮書中,通過“比特幣協議”給出了終極解決方案。

1、引入“工作量證明”機制(PoW),只有第一個完成規定計算工作的國家才能傳播信息,從而保證一段時間內只有一個提案。

2、引入非對稱加密算法,為信息傳遞提供簽名技術支持,以保證消息傳遞的私密性,且不可抵賴、不可篡改。

金貓kinmall:三分鐘教您看懂中本聰是如何解決拜占庭將軍問題的


於是10個國家組成了這樣一個分佈式網絡:

1、每個國家都有一份實時與其他國家同步的消息賬本。

2、賬本里有每個國家的簽名都是可以驗證身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些國家。

3、儘管有消息不一致的,只要超過半數同意進攻,少數服從多數,共識達成。

由此,在一個分佈式的系統中,儘管有壞人,壞人可以做任意事情(不受protocol限制),比如不響應、發送錯誤信息、對不同節點發送不同決定、不同錯誤節點聯合起來幹壞事等。但是,只要大多數人是好人,就完全有可能去中心化地實現共識。


分享到:


相關文章: