兩軍問題和拜占庭將軍問題的區塊鏈解讀(一)

2021-09-10 08:31:31 字數 1941 閱讀 8811

**:

說起區塊鏈,有兩個模型經常被提起,那就是兩軍問題和拜占庭將軍問題。對於這兩個模型,之前檢視了一些資料,但個人理解得仍然不是很透。儘管如此,本篇盡量用通俗的語言解釋一下這兩個模型,不當之處請指正。

首先要明確,這兩個模型僅僅是用講故事的方式提出了問題,但是並沒有提出解決問題的方法。讓我們先來了解一下這兩個問題的具體內容是什麼。

本篇先說兩軍問題:

白軍駐紮在溝渠裡,藍軍和紅軍分別駐紮在溝渠兩邊。白軍比藍軍和紅軍中任何一支軍隊都更為強大,但是藍軍和紅軍若能同時合力進攻則能夠打敗白軍。藍軍和紅軍不能夠越過溝渠遠端地溝通,只能派遣通訊兵穿過溝渠去通知對方協商進攻時間。

一天,藍軍派出通訊兵向紅軍發出資訊:我方三天後的下午一點半發起進攻,請紅軍方面一起同時進攻。

紅軍收到這樣的訊息後表示同意,於是又派出通訊兵給藍軍發出資訊:資訊收到,我方同意。

藍軍收到資訊後,為了讓紅方知道自己已經收到資訊並放心進攻,於是又派出通訊兵給紅軍發出資訊:資訊收到。

紅軍收到資訊後,為了讓藍方知道自己已經收到資訊並放心進攻,於是又派出通訊兵給紅軍發出資訊:資訊收到。

為了讓對方完全放心並派兵進攻,取得行動上的一致,總需要給對方乙個回執,因此,這樣的資訊傳遞理論上會無限迴圈下去。

除此之外,由於通訊兵可能在經過溝渠時被白軍俘獲,所以,資訊還有被篡改的風險。

由此可見,經典情形下,兩軍問題是不可解的,即紅軍和藍軍是無法通過資訊溝通達成行動上的一致。

在現實生活中,兩軍問題可以被抽象為,由於通道的不可靠,可能會造成資訊的遺失、監聽和篡改,從而造成兩方無法達成共識。

雖然兩軍問題經典情形下不可解,但是這一問題至關重要,是現代通訊系統中必須解決的問題。基於通訊成本和技術成熟度的考慮,目前tcp協議被作為「解決」兩軍問題的主流方案。

tcp協議「解決」兩軍問題的原理如下:

tcp協議中,藍軍先向紅軍發出乙個隨機數x,紅軍收到x了以後,發給藍軍另乙個隨機數y以及x+1作為答覆,這樣藍軍就知道紅軍已經收到了,因為要破解隨機數x可能性並不大;然後藍軍再發回y+1給紅軍,這樣紅軍就知道藍軍已經收到了。這樣,藍軍和紅軍之間就建立乙個可靠的連線,彼此相信對方已經收到並確認了資訊。

而事實上,紅軍並不會知道藍軍是否收到了y+1;並且,由於通道的不可靠性,x或者y都是可能被截獲的,這些問題說明了即使是「三次握手」(可以理解為三次單方通訊),也並不能夠徹底解決兩軍問題,只是在現實成本可控的條件下,我們把tcp協議當作了兩軍問題的現實可解方法。

那麼,區塊鏈技術是怎樣解決兩軍問題的呢?

區塊鏈技術使用非對稱加密演算法對節點間的訊息傳遞提供簽名技術支援。每個節點(藍方或紅方)都有屬於自己的密匙(公匙和私匙),唯一標識節點身份。使用非對稱加密演算法傳遞訊息,能夠保證訊息傳遞的私密性,而且訊息簽名不可抵賴、不可篡改。

具體來講,使用公匙加密的資料,使用公匙對應的私匙解密;使用私匙進行簽名的訊息,只需要使用私匙對應的公匙驗證簽名即可。比如,藍軍想要給紅軍傳送訊息,那麼只需要使用紅軍的公匙加密訊息,紅軍收到訊息後使用自己的私匙解密訊息即可。而如果藍軍想申明自己的身份,那麼只需要將訊息使用自己的私匙進行簽名即可,紅軍收到訊息後就可以使用藍軍的公匙驗證訊息的**。

這樣就在極大程度上杜絕了資訊被篡改、被監聽的可能性,但仍然無法完全杜絕。

這是因為,雖然破解非對稱加密演算法非常困難,但絕非完全沒有可能。一旦量子計算機從實驗階段走上實用階段,非對稱加密演算法的破解就會成為一件相對簡單的事情。

因此,如何解決兩軍問題,是乙個需要不斷研究的課題。那麼,有沒有乙個終極辦法可以完全解決兩軍問題呢?

從目前的科研成果來看,量子通訊協議很有可能成為兩軍問題的終極解決方案。

量子通訊協議的基礎是量子糾纏理論。這個理論由愛因斯坦提出,後被其他科學家證實。這個理論認為,處於量子糾纏態的兩個粒子,無論相隔多遠都能夠彼此同步。

因此我們可以相信,至少理論上兩軍問題是可解的,即存在一種方法,即使利用了不可靠的通道,也能保證資訊傳遞的可靠性。

以上為兩軍問題和拜占庭將軍問題的區塊鏈解讀的第一部分,下篇會單獨說一下拜占庭將軍問題,希望對你有所幫助。

兩軍問題和拜占庭將軍問題的區塊鏈解讀(二)

拜占庭將軍問題是區塊鏈技術中另乙個經常被提到的模型。本篇將盡量用通俗的語言解釋拜占庭將軍問題的本質以及背後的經典演算法,不當之處請指正。與兩軍問題一樣,拜占庭將軍問題也僅僅是提出了問題,並沒有提出解決這個問題的方案。首先,我們需要了解什麼是拜占庭將軍問題 在中世紀,拜占庭帝國的幾位將軍各自帶兵共同圍...

區塊鏈 拜占庭將軍問題 BFT

拜占庭將軍問題很多人可能聽過,但不知道具體是什麼意思。那麼究竟什麼是拜占庭將軍問題呢?本文從最通俗的故事講起,並對該問題進行抽象,並告訴大家拜占庭將軍問題為什麼在區塊鏈領域作為乙個重點研究問題。拜占庭將軍問題 也被稱為 拜占庭容錯 拜占庭將軍問題是leslie lamport 2013年的圖靈講得住...

拜占庭將軍問題與區塊鏈共識演算法PBFT

兩軍問題中通道是不可靠的,並且其中沒有叛徒之說。解決方式 tcp的三次握手可以提供相對可靠地通道通訊。目前,區塊鏈採用的共識機制主要基於工作量證明 pow 權益證明 pos 拜占庭協議 ba 等。各類共識機制在效率 安全性等方面有利有弊,目前區塊鏈協議的效率,特別是高速處理海量資料的能力是阻礙區塊鏈...