當前位置:
首頁 > 最新 > 拜占庭將軍與區塊鏈有啥關係

拜占庭將軍與區塊鏈有啥關係

每一本講區塊鏈技術的書籍,幾乎都會講到拜占庭將軍問題,看到這個詞語時,我曾經一度認為有一位名叫拜占庭的將軍帶領著一支龐大的軍隊打仗時遇到了難題,但查閱了一些資料後,發現實際上並沒有拜占庭將軍,也沒有這場戰爭,完全是計算機專家假想出的問題。

1

拜占庭帝國

拜占庭這個專有名詞取自於拜占庭帝國,又叫東羅馬帝國,其軍事力量很強大,地處現今歐洲的土耳其國家。

(取自百度百科)

在《區塊鏈----從數字貨幣到信用社會》中關於拜占庭將軍問題的描述有點小錯誤,書中把問題描述成10個鄰國去攻打拜占庭國家,但查到這個問題的提出者Leslie Lamport的論文原稿時,實際上這是一個假想的問題。

萊斯利·蘭伯特(Leslie Lamport),是微軟研究院的首席研究員,曾獲得2013年圖靈獎——計算機界的諾貝爾獎。這傢伙覺得故事讓問題變得受歡迎,因此他在提出觀點和問題時常用故事背景吸引眼球,拜占庭將軍的故事就是蘭伯特在研究分散式系統容錯性的時候編出的一個故事。

外國研究人員引用歐洲歷史來舉例說明一個演算法問題,中國人容易誤解,拜占庭幅員遼闊、軍事力量強大,派出多支部隊去攻打敵軍,並不是挨打。

2

問題描述

論文中的原文:

We imagine that several divisions of the Byzantine army are camped outside an enemy city, each division commanded by its own general. The generals can communicate with one another only by messenger. After observing the enemy, they must decide upon a common plan of action. However, some of the generals may be traitors, trying to prevent the loyal generals from reaching agreement.

假設拜占庭帝國的幾支軍隊在敵人的城池外紮營,每支軍隊聽命於自己的將軍,這些將軍之間只能通過信使傳遞消息。在對敵軍進行偵察後,將軍們必須制訂一份共同行動計劃。但是,有些將軍可能是叛徒,這些叛徒會阻礙那些忠誠的將軍達成共識。

這個問題的簡潔描述:在已知有間諜的分散式軍隊中,將軍們如何達成共識,執行共同的作戰計劃,來取得戰爭的勝利。

3

問題的難點

這個問題困擾了程序員們很多年,直到比特幣的出現。通常會遇到的問題有:

這些將軍離得很遠,不能每遇到一個問題,就聚到一起開會商量對策

這些將軍中可能有少量叛徒,叛徒會亂髮消息

信使在傳遞消息時可能會把信弄丟

信息可能會被敵國截獲

無法確認消息是否真的來自某位將軍

將軍們在商量過程中可能會浪費很多天時間,貽誤戰機

4

區塊鏈的解決方案

把軍隊想像成計算機節點,把信使想像成計算機間的網路通訊,攻佔敵軍就是寫入一個大家公認的區塊記錄。

區塊鏈技術在發送信息中加入了成本,降低了信息傳遞的速率,並採用了工作量證明(PoW),即一個節點必須經過大量嘗試性計算才能得出一個結果,而其它節點只需極少的時間就能證明其真偽,這樣能夠減少垃圾消息、假消息在節點間傳播的狀況。

挖礦節點把一段時間內的交易信息打包成一個區塊,蓋上時間戳,與上一個區塊銜接在一起,每個區塊都包含了上一個區塊的索引(哈希值),然後再寫入新的信息,從而形成新的區塊,首尾相連,最終形成了區塊鏈。

用工作量證明、公鑰加密等技術,使比特幣網路從一個去中心化的不可信網路變為可信網路,使所有參與者可以在某些事情上達成一致,使價值傳遞成為了可能。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 花甲美食 的精彩文章:

TAG:花甲美食 |