這位童鞋,拜占庭將軍問題了解一下!

这位童鞋,拜占庭将军问题了解一下!

亞洲財經商學院

剛接觸區塊鏈的小夥伴,多多少少都聽說過拜占庭將軍問題,經常看到或聽到某某鏈使用某某算法解決了拜占庭將軍問題,那麼究竟什麼是拜占庭將軍問題呢?

这位童鞋,拜占庭将军问题了解一下!

拜占庭將軍問題(Byzantine failures)是由萊斯利·蘭伯特提出的點對點通信中的基本問題。含義是在存在消息丟失的不可靠信道上試圖通過消息傳遞的方式達到一致性是不可能的。因此對一致性的研究一般假設信道是可靠的,或不存在本問題。

这位童鞋,拜占庭将军问题了解一下!这位童鞋,拜占庭将军问题了解一下!

感覺一頭霧水有木有?別急,看完下面這個故事先......

故事是由一個叫Leslie Lamport的人為了描述分佈式系統一致性問題(Distributed Consensus)編的。大致內容如下:

Long long ago,戰火紛飛,拜占庭帝國為了抵禦來自各個方向的敵人,派出了9支軍隊守衛邊疆。由於敵人十分強大,任何一支軍隊都無法單獨對抗它,除非有至少5個軍隊聯合作戰才能打敗它。然而軍隊之間分隔很遠,他們之間只能通過信使互相傳遞消息。困擾9位將軍的問題是,他們不確定他們中是否有叛徒(包括信使),叛徒可能擅自變更作戰意向或作戰時間。在這種狀態下,拜占庭將軍們怎樣才能保證有多於5支軍隊在同一時間聯合作戰從而贏得勝利呢?

这位童鞋,拜占庭将军问题了解一下!
这位童鞋,拜占庭将军问题了解一下!

01

假如沒有叛徒,將軍A提出一個進攻提議:“明日上午10點發起進攻。”然後由信使分別告訴其他的將軍,如果一切順利,他收到了其他4位以上的將軍的同意,發起進攻。如果不幸,另外兩位將軍B和C也在此時發出不同的作戰提議(如:撤退,明日下午3點/4點再進攻),由於時間上的差異,不同的將軍收到(並認可)的作戰提議可能不同,這就可能出現A將軍的提議有3個支持者,B將軍的提議有4個支持者,C將軍的提議有2個支持者等等。以上情況均無法滿足5個軍隊共同作戰的條件。這就是拜占庭將軍問題的由來。

这位童鞋,拜占庭将军问题了解一下!

02

假如有叛徒存在,這時叛徒會向不同的將軍發出不同的作戰提議(如通知A明日上午10點進攻, 通知B明日下午2點進攻等等),同時,一個叛徒也會可能同意多個進攻提議(即同意上午10點進攻又同意下午2點進攻),造成消息混亂。

叛徒發送前後不一致的進攻提議,被稱為“拜占庭錯誤”,而能夠處理拜占庭錯誤的這種容錯性稱為「Byzantine fault tolerance」,簡稱為BFT。

这位童鞋,拜占庭将军问题了解一下!

相信大家已經可以明白這個問題的複雜性了。

解決方案

在比特幣出現之前,解決分佈式系統一致性問題主要是Lamport提出的Paxos算法或其衍生算法。Paxos類算法僅適用於中心化的分佈式系統,這樣的系統的沒有不誠實的節點,不會發送虛假錯誤消息,但允許出現網絡不通或宕機出現的消息延遲。

这位童鞋,拜占庭将军问题了解一下!

中本聰在比特幣中創造性地引入了“工作量證明(POW )”來解決這個問題。通過POW增加了發送信息的成本,降低節點發送消息的速率,這樣就可以保證在一個時間只有一個節點在進行廣播,同時在廣播時會附上自己的簽名。

這個過程就像一位將軍A在向其他的將軍(B、C、D…)發起一個進攻提議一樣,將軍B、C、D…看到將軍A簽過名的進攻提議書,如果是誠實的將軍就會立刻同意進攻提議,而不會發起自己新的進攻提議。

以上就是比特幣網絡中單個區塊達成共識的方法(取得一致性)。

这位童鞋,拜占庭将军问题了解一下!这位童鞋,拜占庭将军问题了解一下!

理解了單個區塊取得一致性的方法,那麼整個區塊鏈如果達成一致也好理解。

我們稍微把將軍問題改一下:假設攻下一個城堡需要多次的進攻,每次進攻的提議必須基於之前最多次數的勝利進攻下提出的(只有這樣敵方已有損失最大,我方進攻勝利的可能性就更大),這樣約定之後,將軍A在收到進攻提議時,就會檢查一下這個提議是不是基於最多的勝利提出的,如果不是,將軍A就不會同意這樣的提議,如果是,將軍A就會把這次提議記下來。這就是比特幣網絡最長鏈選擇。

經濟學分析

工作量證明其實相當於提高了發佈虛假區塊的成本。在工作量證明下,只有第一個完成證明的節點才能廣播區塊,因此競爭難度非常大,需要很高的算力,如果不成功算力就白白的耗費了(算力是需要成本的)。如果有這樣的算力作為誠實的節點,同樣也可以獲得很大的收益(這就是礦工所作的工作),也就減少了節點發布虛假區塊的可能,整個系統也因此而更穩定。

这位童鞋,拜占庭将军问题了解一下!

很多人批評工作量證明浪費了巨大的電力,促使人們去探索新的解決共識問題的機制。權益證明機制(POS)就是一個代表,在拜占庭將軍問題的角度來看,它同樣提高了叛徒的成本,因為賬戶需要首先持有大量餘額才能有更多的幾率廣播區塊。

說到底,共識算法的核心就是解決拜占庭將軍問題。

強烈推薦!

中國首家可挖礦的區塊鏈化教育平臺

免費囤幣,坐等升值!

1500萬枚AFCC送!送!送!

(掃碼下載【亞財商學院】APP)

精彩推薦

  • 感謝原作者的辛苦創作,如轉載涉及版權等問題,請聯繫我們進行刪除處理,謝謝!!

關於我們

  • 亞洲財經商學院(簡稱亞財商學院)是由亞洲財經發起成立,清華大學等院校合作辦學,是中國首家互聯網金融黃埔軍校。

  • 專為在校大學生、普通投資者、金融從業者、擬從業者等有互聯網金融教育需求的用戶提供學歷教育、職業教育、實踐教育、資格認證等四方面培訓課程。

聯繫我們

長按二維碼關注我們吧

↓↓↓


分享到:


相關文章: