自 2008 年比特幣作爲一種點對點電子金融系統誕生以來,許多數字貨幣已經被創建,每種貨幣都以特殊的機制運行。但所有數字貨幣的共同點是區塊鏈作爲其結構的基本元素。

所有區塊鏈都被有意設計爲去中心化的,除了少數例外,它們充當由分佈式計算機節點網絡維護的數字分類賬。因此,區塊鏈技術允許創建值得信賴的經濟系統,在該系統中,金融交易可以以透明且可靠的方式進行,而無需中介機構。

目前,數位貨幣的使用被認為是嚴重依賴信任的傳統銀行系統和支付方式的可行替代方案。

與大多數分散式運算系統的情況一樣,加密貨幣網路的參與者需要定期就區塊鏈運行的當前狀態達成一致,這就是我們所說的共識成就。然而,以安全可靠的方式就分散式網路達成共識是一項非常困難的任務。

那麼,分散式電腦節點網路如何就某些節點是否可能發生故障或進行非法行為達成一致?這就是所謂的拜占庭將軍問題的基本問題,拜占庭容錯的概念就是由此產生的。


拜占庭將軍的問題是什麼?

簡而言之,1982 年的拜占庭將軍問題被認為是一個邏輯困境,說明一群拜占庭將軍在試圖就計劃的下一步達成一致時可能會出現相互溝通的問題。

這個困境假設每位將軍都有自己的軍隊,每個部隊位於他打算攻擊的城市周圍的不同位置,並且每位將軍必須同意進攻或撤退。無論是進攻還是撤退,只要全體將領達成共識,即達成共同決策,並協調執行即可。

因此,我們可以考慮以下目標:

  • 每位將軍必須決定:進攻或撤退(是或否)。

  • 一旦做出決定,就不能改變。

  • 所有將軍必須就同一決定達成一致並同步執行。

上述通訊問題與以下事實有關:每位將軍只能透過承運人/快遞員發送的訊息與另一位將軍進行通訊。因此,拜占庭將軍面臨的主要挑戰是訊息可能會延遲、損壞或遺失。

此外,即使訊息成功傳遞,一名或多位將軍也可能(出於任何原因)選擇惡意行事並發送欺騙訊息來迷惑其他將軍,導致任務徹底失敗。

如果我們將這種困境應用到區塊鏈的背景下,每個世代都代表一個網路節點,並且節點必須就係統的當前狀態達成共識。換句話說,分散式網路中的大多數參與者必須同意並執行相同的操作,以避免完全失敗。

因此,在這些類型的分散式系統中達成共識的唯一方法是擁有 ⅔(三分之二)或更多的誠實節點。這意味著,如果網路的大多數決定進行惡意行為,系統將容易遭受故障和攻擊(例如 51% 攻擊)。


拜占庭容錯 - BFT

簡而言之,拜占庭容錯(BFT)是系統能夠抵抗源自拜占庭將軍問題的故障類型的屬性。這意味著即使某些節點發生故障或出現惡意行為,BFT 系統也能夠繼續運作。

拜占庭將軍問題的可能解決方案不只一種,這意味著建構 BFT 系統的方法有很多種。同樣,區塊鏈有多種不同的方法來實現拜占庭容錯,這導致了我們所謂的共識演算法。


區塊鏈共識演算法

我們可以將共識演算法定義為區塊鏈網路達成共識的機制。最常見的應用是工作量證明(PoW)和權益證明(PoS)。但我們以比特幣為例。

雖然比特幣協議規定了系統的基本規則,但被稱為工作量證明 (PoW) 的共識演算法定義瞭如何遵循這些規則以達成共識(例如,在交易驗證期間)。

儘管工作量證明的概念比加密貨幣更古老,但中本聰開發了它的修改版本作為一種演算法,使得比特幣能夠創建為 BFT 系統。

請注意,工作量證明 (PoW) 演算法並非 100% 拜占庭容錯,但由於成本密集的挖礦過程和加密技術,PoW 已被證明是區塊鏈網路最安全、最值得信賴的實現之一。

因此,中本聰設計的工作量證明演算法被許多人視為拜占庭錯誤最巧妙的解決方案之一。


結論

拜占庭將軍問題是一個有趣的困境,最終催生了廣泛應用於各種場景的 BFT 系統。即使在區塊鏈產業之外,BFT 的一些用例也包括航空、航太和核能產業。

在數位貨幣的背景下,擁有高效的通訊網路和共識機制對於任何區塊鏈系統都至關重要。確保這些系統的安全性是一項持續的工作,現有的共識演算法仍在努力克服一些限制(例如可擴展性)。然而,工作量證明(PoW)和權益證明(PoS)是 BFT 系統的兩種非常有趣的方法,潛在的應用無疑是廣泛靈感的來源。