介紹

自 2008 年比特幣首次作爲電子現金系統推出以來;隨後創建了許多其他貨幣,每種貨幣都有自己獨特的機制。然而,幾乎所有數字貨幣都有一個共同點,那就是它們的基本架構元素,即區塊鏈技術。

除少數例外,區塊鏈被設計爲去中心化的,作爲由去中心化的計算機節點網絡維護的數字分類賬。因此,區塊鏈技術可以創建一個無需信任的經濟系統,無需中間人即可實現金融交易的透明度和可靠性。數字貨幣將被用作支付替代方案,取代嚴重依賴信任的銀行和傳統支付系統。

與大多數分佈式計算系統一樣,數字貨幣網絡的參與者必須定期就區塊鏈的當前狀態達成一致,這就是我們所說的達成共識。然而,在分佈式網絡中以誠實、安全的方式達成共識是非常困難的。

因此,分佈式計算機節點網絡如何就決策達成一致?如果某些節點可能失敗或行爲不誠實?這是一個被稱爲一般拜占庭問題的基本問題,它產生了一個稱爲拜占庭容錯的概念。


這是一個常見的拜占庭問題嗎?

簡而言之,拜占庭將軍問題誕生於 1982 年,它是一個邏輯困境,說明了一羣拜占庭將軍如何在溝通上無法就下一步行動達成一致。

這種困境假設每個將軍都有自己的軍隊,並且每個小組都被放置在他們想要攻擊的城市的不同位置。將軍們需要就進攻還是撤退達成一致。不是進攻還是撤退的問題,只要將軍們達成共識,比如:商定一項決定,然後按照命令執行即可。


因此,有幾件事必須確定:

  • 每位將軍必須做出決定;是否進攻或撤退(是或否);

  • 每項決定一經作出,不得更改;

  • 每位將軍必須同意同一決定,並在既定規則內同時執行。

上述通信問題與這樣一個事實有關:一個將軍只能通過信使發送的消息與另一個將軍進行通信。同樣的事情也挑戰了一般拜占庭問題,因此消息的傳遞會受到輕微阻礙,可能會被破壞或丟失。

此外,即使消息成功發送,一名或多名將軍也可能選擇(無論出於何種原因)惡意行事併發送旨在迷惑其他將軍的回覆,這可能導致攻擊失敗。

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

因此,此類分佈式系統要達成共識的唯一方法是讓⅔或更多的網絡節點誠實可靠。這也意味着,如果大多數網絡參與者決定進行惡意行爲,系統將非常容易發生故障和攻擊(例如 51% 攻擊)。


拜占庭容錯(BFT)

換句話說,拜占庭容錯是系統的屬性,可以避免拜占庭常見問題困境引起的故障。這也意味着即使某些節點發生故障或行爲不正確,BFT 系統也可以繼續運行。

一般拜占庭問題有多種解決方案,構建 BFT 系統的方法也有多種。此外,區塊鏈有多種方法可以實現 BFT,這將引導我們找到共識算法。


區塊鏈共識算法

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

比特幣協議定義了比特幣系統的主要規則,而 PoW 共識算法決定了如何遵循這些規則來達成共識(例如,在驗證和驗證交易時)。

儘管工作量證明概念比其他數字貨幣更古老,但中本聰開發了一個修改版本作爲算法,允許將比特幣創建過程用作 BFT 系統。

需要注意的是,PoW 算法並不是 100% 拜占庭容錯,但由於非常昂貴的挖礦過程和底層密碼學技術,PoW 已證明自己是最安全可靠的區塊鏈網絡實現。在這種情況下,中本聰設計的工作量證明共識算法被許多人認爲是拜占庭故障的天才解決方案。


結論

拜占庭將軍問題是一個有趣的困境,最終催生了 BFT 系統,並在許多場景中得到廣泛應用。除了區塊鏈行業之外,BFT系統還應用於許多其他行業,例如航空、航天和核能行業。

在數字貨幣的背景下,擁有高效的網絡通信以及良好的共識機制對於任何區塊鏈生態系統都非常重要。確保這些系統的安全是一項永無止境的努力,當前的共識算法尚未克服它們仍然面臨的一些限制(例如擴展)。即便如此,PoW 和 PoS 仍然是一種不亞於 BFT 系統的有趣方法,它們的潛在應用激發了廣泛的創新。