拜占庭將軍問題見解

二、拜占庭容錯機制

        拜占庭將軍問題(Byzantine failures)點對點通訊中的基本問題,含義是在存在訊息丟失的不可靠通道上試圖通過訊息傳遞的方式達到一致性是不可能的。拜占庭假設是對現實世界的模型化,由於硬體錯誤、網路擁塞或者斷開以及遭到惡意攻擊,計算機和網路可能出現不可預料的行為。拜占庭容錯協議必須處理這些問題,並且這些協議還要滿足所要解決的問題的規範要求。

  什麼是拜占庭將軍問題:拜占庭是一座富饒的城堡,他的周圍有十個部落,都想要攻佔城堡,但是,只有他們其中五個以上的部落同時進攻才可以取得勝利。部落之間通訊只能通過互派信使傳遞資訊,那麼每個部落都可以在任意時間給任意他信任的部落傳送資訊,資訊形式類似於“我將在明天早上六點進攻,你同意嗎?”收到信的人可以在信件上蓋上自己的章,然後把這樣的資訊拷貝,傳送給九個鄰居。問題是如果每個部落都傳送九封信件,系統中一共有就是封信在傳輸,每個部落會收到九封信,可能每一封都有一個不同的攻擊時間。另外,一些部落會統一超過一個的攻擊時間,故意背叛,如此下去,整個系統將變得混亂,不可信任。

       因此,雜湊計算速率的限制,加上公鑰加密,使得一個不可信網路變成了一個可信的網路,使得所有參與者可以在某些事情上達成一致(比如說攻擊時間、或者一系列的交易、域名記錄、政治投票系統、或者任何其他的需要分散式協議的地方)。

      在比特幣系統中,加入了雜湊隨機數的計算,即工作量證明機制,公認的總賬並不是誰都可以在上面新增資訊,你得計算這個雜湊值,廣播,得到其他人的肯定之後才可以記在總賬上。如此,雜湊計算速率限制(網路中加入時間的延遲來驗證每一筆交易),加上公鑰加密進行身份認證,是一個不可信的網路變得可信。其實這就是比特幣去中心化的方法。使得所有參與者可以再某件事情上達成統一。

      最後,對於拜占庭將軍問題的解決方案,可以推廣到任何核心問題是在分散式的網路上缺乏信任的領域。

      第一次寫部落格,來自知乎大神解答的理解,留作紀念