作者:Shaan Ray
譯者:Tan.Z | H.Forest Ventures
原文標題: 《Federated Byzantine Agreement》
推薦理由:拜占庭協議是了解區塊鏈的基礎,這個問題是由圖靈獎獲得者、分佈式系統關鍵奠基人——Lamport大神所提出的。用於解釋和解決去中心化共識問題。
隨著區塊鏈技術越來越受歡迎,開發人員越來越多地調整和試驗共識機制。
達成共識的最傳統方式是通過拜占庭協議(區塊鏈技術的基本概念)。區塊鏈上的節點通過就給定問題的解決方案達成共識來驗證數據塊。當某個最小數量的節點(稱為法定人數)同意所提出的解決方案是正確的時候,就達成了拜占庭協議,從而驗證了一個塊並允許將其包含在區塊鏈中。
聯邦拜占庭協議
瑞波區塊鏈開創了聯邦拜占庭協議(FBA)共識機制。 Stellar 區塊鏈進一步完善了這種方法,採用了第一個可證明安全的FBA 協議。在FBA 系統中,不必提前知道和驗證每個節點,成員資格是開放的,控制是分散的。節點可以選擇他們信任的人。系統範圍的仲裁來自各個節點做出的決定。
仲裁切片
法定人數是在系統內達成一致所需的節點數。 FBA 改為使用“仲裁切片”。仲裁切片是仲裁的子集,可以說服另一個特定節點同意。
一個節點可以依賴於許多切片,並且節點的選擇可能取決於外部標準。例如,“節點X”可以說:“為了達成共識,我們必須從我們選擇的五家銀行中的三家節點中購買”。五家銀行中的三家現在可以確定節點X 是否同意。添加另一層複雜性節點X 可能是另一個節點的仲裁切片的一部分。
如果將節點編程為依賴仲裁片,用戶必須相信仲裁片足夠值得信賴,如果它同意某事,則該節點肯定應該同意它。
仲裁切片
法定人數交叉點
信任是在節點的配置文件中設置的。由於節點可能具有不同的配置文件,因此網絡中的切片和仲裁可能會動態形成。一個好的仲裁共享節點,導致仲裁重疊。這種重疊稱為“群體交叉”。當法定人數不相交時,系統最終會出現“不相交的法定人數”。不相交的法定人數是不可取的,因為它們中的每一個都可以獨立地同時就矛盾的交易達成一致,從而破壞整體共識。
法定人數交叉點
受阻狀態與發散狀態
區塊鏈應該是快速和安全的。如果節點在達成協議的過程中被“阻塞”,區塊鏈就會變慢。當區塊鏈上的節點呈現與其他節點不同的值時,系統是“發散的”。發散系統比阻塞系統更危險:阻塞系統只是速度慢,但發散系統開始顯示相互矛盾的數據。
3組不相交的法定人數
FBA的優勢
· 開放會員和去中心化控制
· 沒有看門人或中央權威——單個節點可以決定他們信任誰來獲取信息
· 選擇每個節點信任誰的能力使網絡去中心化
· 節點可以有多個切片
· 進入門檻低(任何人都可以加入)
· 面對故障時堅韌性(一個節點可以關閉,系統的其餘部分將保持不變)
· 可以對節點進行編程以信任仲裁切片或外部源,具體取決於其不同時間的性能
· 單個節點的選擇可以基於外部標準(例如,屬於汽車金融公司的節點可能需要來自受信任的銀行節點、受信任的信貸機構和與機動車輛部相關的節點的確認才能接受交易為有效的。)
結論
FBA 分類帳可以是最新且準確的,而無需其所有節點都同意。相反,從每個節點的選擇中會出現一個仲裁。
仲裁片可以說服單個節點達成一致,而仲裁片可以說服整個系統達成一致。如果一個節點發現一個特定的仲裁片完全值得信賴,它可以同意遵循該仲裁片同意的任何內容。
傳統拜占庭協議系統與FBA 系統的不同之處在於,在後者中,每個節點都選擇自己的仲裁切片。
譯者筆記:
PBFT (拜占庭容錯算法)中每一個子節點要與另外節點P2P同步共識,所以如果節點的數量增加,那麼改鏈性能將會下降。不過在節點較少的區塊鏈還是可以有很好的性能,而且有很低的分差機率。因此聯盟鍊或斯鏈會有更多的應用,例如螞蟻鍊和Fabric。
但是,在大規模擴張的公鏈裡也有項目嘗試採用PBFT。例如EOS採用DPOS+ABFT共識協議,波卡採用BABE+GRANDPA的混合公式協議。這兩條鏈在BFT共識前,先在節點中選擇出參與共識的節點。這樣可以減少節點數量,增加性能。因此筆者認為BFT協議可以在眾多公鏈中也可以廣泛應用。
關注我們:
我們的推特: @Forest_Ventures
我們的mirror: H.Forest
公眾號:H Forest