關鍵要點

  • 拜占庭容錯(BFT)是一種特性,它使分佈式系統(包括區塊鏈)即使在某些節點失敗或表現不誠實的情況下仍能繼續運作。

  • 這個概念來自“拜占庭將軍問題”——一個思想實驗,用來說明獨立行動者如何在部分參與者可能不可靠的情況下達成一致。

  • 大多數區塊鏈使用諸如工作量證明(PoW)或權益證明(PoS)之類的共識算法來實現BFT並保障網絡安全。

  • 通常,要讓BFT成立,網絡至少需要三分之二的參與者保持誠實。

Binance Academy courses banner

簡介

自2008年比特幣以點對點電子現金系統上線以來,區塊鏈依賴一個關鍵特性:在不需要信任任何單個參與者的前提下,讓衆多獨立參與者能夠達成一致。這個問題比聽起來更難,尤其是當部分參與者可能表現得不可預測或不誠實時。

用於解決這一挑戰的概念稱爲拜占庭容錯(Byzantine fault tolerance)。理解它有助於解釋爲何即使面對惡意參與者或硬件故障,區塊鏈網絡仍能安全運行。

什麼是拜占庭將軍問題(Byzantine Generals' Problem)?

拜占庭將軍問題最早在1982年被提出。它使用軍事思想實驗來說明:在一些參與者無法被信任的情況下,分佈式系統中達成一致有多困難。

想象一羣將軍:每位將軍分別指揮一支獨立的軍隊,圍攻一座城市。他們必須就一個計劃達成一致:一起進攻,或一起撤退。如果他們各自爲政,就會失敗。問題在於他們只能通過信使進行溝通,而其中一些將軍可能是叛徒,會發送相互衝突或虛假的信息。

核心難題是:在無法識別誰在撒謊的情況下,忠誠的將軍們如何就一個計劃達成一致?在區塊鏈語境中,每位將軍代表一個網絡節點,“進攻或撤退”的決定被替換爲:就哪些交易是有效的達成一致。

原始研究得出的結論是:一個BFT系統至少需要三分之二的參與者誠實。如果三分之一或更多的參與者出現故障或惡意行爲,就不可能達成可靠共識。

拜占庭容錯(BFT)

拜占庭容錯是指:當某些組件發生故障或表現惡意時,系統仍能繼續正確運行。BFT系統能夠在不損害整個網絡完整性的前提下,容忍一定數量的故障節點。

在實踐中,這意味着BFT區塊鏈可以處理諸如節點崩潰、丟失連接、發送重複消息,或刻意試圖操縱網絡等場景。只要故障節點的比例保持在可接受閾值之下,系統就能得到正確結果。

構建BFT系統有多種方式。區塊鏈採用哪一種方案取決於其設計優先級,比如速度、去中心化和安全性。這也推動了不同共識算法的發展。

區塊鏈共識算法

共識算法是區塊鏈用來對賬本狀態達成一致的機制。最常見的做法是工作量證明(PoW)和權益證明(PoS)。

比特幣使用PoW。中本聰(Satoshi Nakamoto)將其改造爲現在所說的“中本聰共識”(Nakamoto consensus)。在該模型下,節點競爭去解決一個計算成本高昂的謎題,以添加一個新區塊。由於完成這項工作的成本很高,在沒有控制超過全網算力一半的情況下,惡意參與者重寫區塊鏈在經濟上並不划算。這類攻擊被稱爲51%攻擊。

PoW並非對拜占庭故障100%免疫,但挖礦成本以及區塊鏈的密碼學安全性使其在實踐中高度可靠。

PoS以不同方式實現類似目標。驗證者不進行計算工作,而是將加密貨幣作爲抵押品。若驗證者行爲不誠實,可能會導致抵押被損失,從而形成強有力的經濟激勵,促使其誠實參與。 

以太坊在2022年切換到PoS,並且其最終性(finality)機制借鑑了Tendermint等協議中使用的BFT原則。這些協議允許網絡在足夠多驗證者完成簽署後將區塊確認並視爲最終,從而相比PoW鏈中的概率性最終性,在速度與安全性方面都有所提升。

常見問題

拜占庭容錯(BFT)是什麼意思?

拜占庭容錯(BFT)意味着:即使某些組件表現得不可預測或不誠實,系統仍能繼續正確運作。在區塊鏈中,這表示網絡即便在部分節點發送虛假或相互衝突的信息的情況下,也能對有效交易達成共識。

爲什麼稱爲拜占庭容錯(Byzantine fault tolerance)?

該名稱來源於“拜占庭將軍問題”(Byzantine Generals' Problem),這是1982年的一個思想實驗:用軍事將軍的故事來描述在一些參與者無法被信任時,如何達成一致的挑戰。在計算機領域,“拜占庭(Byzantine)”指的是任意或惡意的故障,而不是簡單的崩潰(crash)。

要讓BFT生效,網絡中需要有多少參與者是誠實的?

通常,一個BFT系統至少需要有三分之二的參與者誠實。如果網絡中有三分之一或更多的部分表現出惡意,或發生故障,大多數BFT協議就無法再保證得到正確的結果。這個閾值會因具體使用的共識協議而略有差異。

工作量證明(PoW)是拜占庭容錯的嗎?

工作量證明並非“完美”的拜占庭容錯,但它通過挖礦的高成本實現了實際層面的強韌性。攻擊者需要控制超過全網總算力的50%,才能持續操縱區塊鏈,因此此類攻擊會變得昂貴且難以長期維持。

收尾想法

拜占庭容錯是區塊鏈設計中的基礎概念。它解釋了爲什麼像比特幣和以太坊這樣的網絡,即便參與者是匿名的、並且有人可能試圖作弊,仍能可靠運行。無論是通過工作量證明(PoW)、權益證明(PoS),還是現代鏈中使用的更新型BFT協議,目標都是一致的:讓彼此獨立的節點能夠在不需要彼此個體信任的情況下就“真相”達成一致。

延伸閱讀

  • 什麼是區塊鏈共識算法?

  • 什麼是工作量證明(PoW)?

  • 什麼是權益證明(PoS)?

  • 什麼是51%攻擊?


免責聲明:本內容僅以“現狀”提供給您,用於一般信息與教育目的,不作任何形式的陳述或保證。不得將其理解爲金融、法律或其他專業建議,也不意在推薦購買任何特定產品或服務。您應向相關合格的專業顧問尋求獨立建議。如內容由第三方貢獻者提供,請注意其表達的觀點屬於該第三方貢獻者,並不一定反映幣安學院(Binance Academy)的觀點。數字資產價格可能波動。您的投資價值可能漲也可能跌,且您不一定能取回所投入的金額。您的投資決策完全由您自行負責,幣安學院不對您可能產生的任何損失承擔責任。欲瞭解更多信息,請參閱我們的使用條款(Terms of Use)、風險警示(Risk Warning)及幣安學院條款(Binance Academy Terms)。