介紹

共識算法是一種允許用戶或機器在分佈式環境中進行協調的機制。它確保系統中的所有代理都同意單一事實來源,即使某些代理失敗。也就是說,系統必須是容錯的(另請參閱:拜占庭容錯解釋)。

在集中式系統中,單個實體負責驅動和控制網絡。在大多數情況下,實體可以根據自己的需要做出改變——不存在複雜的治理體系供多名董事達成共識。

在去中心化系統中,情況完全不同。假設我們正在使用分佈式數據庫 - 我們如何就添加哪些數據達成一致?

在參與者彼此不信任的環境中克服這一挑戰可能是爲區塊鏈鋪平道路的最關鍵的發展。在本文中,我們將瞭解爲什麼共識算法對於加密貨幣和分佈式賬本的運行至關重要。


共識算法和加密貨幣

在加密貨幣中,用戶餘額記錄在數據庫(區塊鏈)中。每個人(準確地說是每個節點)都必須維護數據庫的相同副本,這一點至關重要。否則,可能會出現衝突信息,從而損害整個網絡。

公鑰加密確保用戶不能花費彼此的貨​​幣。然而,網絡參與者仍必須依賴單一事實來源來確定資金是否已被花費。

比特幣的創造者中本聰提出了工作量證明系統來協調參與者。我們很快就會看到 PoW 是如何工作的——現在讓我們確定許多現有共識算法的一些共同特徵。

首先,我們要求想要添加區塊的用戶(我們將其稱爲驗證者)提供股份。權益是驗證者必須承諾的價值,以阻止他們進行惡意行爲。如果他們作弊,他們將失去股份。例如計算能力、加密貨幣或其聲譽。 

他們爲什麼要拿自己的資源冒險?很簡單,因爲這通常是協議的原生加密貨幣,基於用戶支付的費用、新創建的加密貨幣或兩者兼而有之。

我們最不需要的就是透明度。當有人作弊時,我們需要能夠辨別出來。理想情況下,他們生產區塊的成本應該很高,但任何人驗證它們的成本都應該便宜。這確保了驗證器也由普通用戶控制。


共識算法的類型

工作量證明(PoW)

工作量證明(PoW)是區塊鏈共識算法的教父。它首先是通過比特幣實現的,儘管這個概念已經存在很長時間了。在工作量證明中,驗證者(稱爲礦工)對他們想要添加的數據進行哈希處理,直到產生特定的解決方案。

哈希是運行哈希函數時創建的由字母和數字組成的隨機字符串。但如果輸入數據相同,則輸出結果也會相同。然而,最輕微的改變都會產生完全不同的哈希值。

輸出端的數據不允許我們確定輸入端的數據。因此,這是一個非常有效的函數,可以證明您在一段時間內已經瞭解一段數據。您可以向某人提供他們的哈希值,當您透露數據時,該人可以通過該函數運行它以確保輸出相同。

在工作量證明中,協議定義了使塊有效的條件。例如,這可以說只有哈希值以 00 開頭的塊纔是有效的。礦工創建有效區塊的唯一方法是暴力破解。爲了產生不同的結果,直到找到正確的結果,礦工可以修改數據中的參數。 

對於最大的區塊鏈來說,水平非常非常高。爲了與其他礦工競爭,您需要擁有一個裝滿 ASIC 的倉庫,這些硬件是專門爲增加生成有效區塊的機會而設計的。

您在挖礦中的股份對應於這些機器的成本以及運行它們所需的電力。 ASIC 的設計目的僅限於挖礦,因此除了加密貨幣挖礦之外,它們沒有其他用途。收回初始投資的唯一方法是通過成功向區塊鏈添加新區塊來挖礦並獲得獎勵。

網絡很容易驗證您是否創建了正確的塊。通過該函數的單次執行,您可以驗證大量測試的結果。如果您的數據產生有效的哈希值,它將被接受並且您將獲得獎勵。否則,網絡會讓它失效,你就白白浪費了時間和電力。


股權證明 (PoS)

權益證明(PoS)在比特幣早期就被提出作爲工作量證明的替代方案。在 PoS 中,不存在礦工、專用硬件和大量能源消耗的概念。您所需要的只是一臺電腦。

還有一點……你必須在機器裏放一枚硬幣。在 PoS 中,您將使用內部資源(加密貨幣),而不是使用外部資源(機器和電力)。規則因協議而異,但您通常需要持有最低金額才能參與質押。

然後,您需要將資金鎖定在錢包中(當您質押時,它們無法移動)。您通常會同意其他驗證器將哪些交易傳遞到下一個區塊。從某種意義上說,你押注哪個區塊將被選擇,協議決定其餘的。

如果您的區塊被選中,您將收到一部分交易費用,與您的股份成比例。您鎖定的資金越多,獲勝的機會就越大。但如果您試圖通過提供無效交易來作弊,您將損失部分(或全部)股份。因此,我們有一個類似於PoW的機制——誠實行事比不誠實行事更有利可圖。

一般來說,新創建的貨幣不屬於驗證者獎勵的一部分。因此,原生區塊鏈貨幣必須以不同的方式發行。這可以通過初始分配(例如:ICO 或 IEO)或通過在協議開始過渡到 PoS 之前使用 PoW 來完成。

迄今爲止,純權益證明僅被小型加密貨幣使用。因此,尚不清楚它是否可以作爲 PoW 的可行替代方案。儘管這在理論上似乎是有效的,但在實踐中卻會有很大不同。 

一旦 PoS 部署在擁有大量信息的網絡上,該系統就成爲經濟激勵和博弈論的完美滋生地。任何掌握“破解” PoS 系統技術的人只有在可以利用它的情況下才會這樣做——這就是爲什麼找出是否可行的唯一方法是直接在網絡上進行嘗試。

我們很快就會看到 PoS 的大規模測試——Casper 將作爲以太坊網絡(也稱爲以太坊 2.0)一系列升級的一部分而實施。


共識算法的類型

工作量證明和權益證明是最常見的共識算法。但顯然還有很多其他的,都有各自的優點和缺點。查看以下文章:

  • 延遲工作量證明詳解

  • 共識租賃權益證明詳解

  • 權威證明詳解

  • 燃燒證明解釋

  • 委託權益證明詳解

  • 混合 PoW/PoS 共識解釋


總結一下

達成共識的機制對於分佈式系統的運行至關重要。許多人認爲,比特幣最偉大的創新是使用工作量證明來允許用戶就一組共享的事實達成一致。

如今的共識算法不僅支持數字貨幣系統,還支持區塊鏈,它允許開發人員跨分佈式網絡執行代碼。它們構成了區塊鏈技術的基石,對於各種現有網絡的長期生存至關重要。

在所有共識算法中,工作量證明仍然是最常用的。事實上,尚未提出更可靠、更安全的替代方案。也就是說,爲了取代 PoW 正在進行大量的研究和開發,我們很可能會在未來幾年看到更多的共識出現。