區塊鏈的常識之,什麼是區塊鏈,實用拜占庭 PBFT(下)

區塊鏈的常識之,什麼是區塊鏈,實用拜占庭 PBFT(下)

專業科普

改進型實用拜占庭容錯的共識機制是少數服從多數,根據資訊在分散式網路中節點間互相交換後各節點列出所有得到的資訊,一個節點代表一票,選擇大多數的結果作為解決辦法。PBET將容錯量控制在全部節點數的1/3,即如只要有超過2/3的正常節點,整個系統便可正常運作。

“拜占庭容錯”早在1999年,就由兩位美國計算機科學家Barbara Liskov和Miguel Castro提出。但要理解這個概念,就得了解一個由來已久的拜占庭將軍問題。

PBFT是一種狀態機副本複製演算法,即服務作為狀態機進行建模,狀態機在分散式系統的不同節點進行副本複製。每個狀態機的副本都儲存了服務的狀態,同時也實現了服務的操作。

區塊鏈的常識之,什麼是區塊鏈,實用拜占庭 PBFT(下)

授權拜占庭容錯演算法

dBFT,是基於持有權益比例來選出專門的記賬人(記賬節點),然後記賬人之間透過拜占庭容錯演算法(即少數服從多數的投票機制)來達成共識,決定動態參與節點。dBFT可以容忍任何型別的錯誤,且專門的多個記賬人使得每一個區塊都有最終性、不會分叉。

比特幣的區塊鏈網路在設計時提出了創新的 PoW(Proof of Work) 演算法思路。一個是限制一段時間內整個網路中出現提案的個數,另外一個是放寬對最終一致性確認的需求,約定好大家都確認並沿著已知最長的鏈進行拓寬。系統的最終確認是機率意義上的存在。這樣,即便有人試圖惡意破壞,也會付出很大的經濟代價(付出超過系統一半的算力)

後來的各種 PoX 系列演算法,也都是沿著這個思路進行改進,採用經濟上的懲罰來制約破壞者。

區塊鏈的常識之,什麼是區塊鏈,實用拜占庭 PBFT(下)

什麼是拜占庭容錯?

拜占庭容錯就是要確保誠實的將軍們在受到叛徒干擾的情況下也能達成共識。應用到分散式區塊鏈系統中,每個將軍就是一個節點,拜占庭容錯就是要保證該系統能夠容忍一定程度的拜占庭失效,讓誠實節點(將軍)免受惡意節點的影響,達成共識、保證系統正常執行。

最初設計這種機制是為了解決拜占庭將軍問題,運用集體決策的力量降低惡意節點對整體網路的影響力,避免網路出現嚴重故障。

什麼是拜占庭失效?

這些將軍在地理上是分隔開來的,並且將軍中存在叛徒。叛徒可以任意行動以達到以下目標:欺騙某些將軍採取進攻行動;促成一個不是所有將軍都同意的決定,如當將軍們不希望進攻時促成進攻行動;或者迷惑某些將軍,使他們無法做出決定。如果叛徒達到了這些目的之一,則任何攻擊行動的結果都是註定要失敗的,只有完全達成一致的努力才能獲得勝利。

區塊鏈的常識之,什麼是區塊鏈,實用拜占庭 PBFT(下)

實用拜占庭容錯機制的執行邏輯

實用拜占庭容錯機制會指定系統中的一個節點為主節點(領導節點),其他節點就是次節點(候補節點)。當主節點出現故障時,系統中所有的合法節點都有資格從次節點升級為主節點,遵循少數服從多數的原則確保誠實節點能達成共識。

但是想要讓實用拜占庭容錯機制正常執行,惡意節點數量必須小於網路裡節點總數的1/3。關於這一容錯程度, Lesile Lamport在其關於拜占庭將軍問題的論文中也有所論證,即惡意節點數為m時,只要總節點數能夠達到3m+1,就能確保共識的達成。換句話說,要想順利達成共識,就得保證系統內至少2/3的節點是誠實的。

區塊鏈的常識之,什麼是區塊鏈,實用拜占庭 PBFT(下)

實用拜占庭容錯機制的價值

1、 提高計算效率:與工作量證明(PoW)共識機制相比,實用拜占庭容錯機制不需要耗費算力解決複雜的數學問題就能讓分散式系統達成共識,能有效節省能源消耗。

2、 縮短交易確認時間:在運用工作量證明(PoW)作為共識機制的比特幣區塊鏈中,所有節點都會參與交易驗證,根據參與驗證的節點的數量不同,出塊時間在10到60分鐘不等。但是在運用實用拜占庭容錯機制的區塊鏈裡,交易一旦被誠實節點認可就不需要其他多方再確認,縮短交易時間。

3、 減小獎勵差異:實用拜占庭容錯機制中所有節點都會回覆使用者需求,為系統決策做出差不多的貢獻,所以收到的獎勵差異也會相應減小。

區塊鏈的常識之,什麼是區塊鏈,實用拜占庭 PBFT(下)

基礎常識

舉個 慄 子

一家公司,在全國開了很多個分公司,每個公司都有一個經理負責管理,各經理之間透過手機聯絡。現在很多分公司經理要協商產品投放全國市場的方案和時間,保證各分公司統一行動,擰成一股繩,發揮最大的效果,一舉攻佔全國市場,形成頭部品牌效應。但是,某分公司經理裡有競爭對手的人,企圖讓其他分公司的經理跳槽,無法保證產品統一時間投放到市場。這時候,在已知有分公司經理跳槽的情況下,其餘,忠誠的分公司經理在不受競爭對手利誘下,如何達成一致的協議,讓競爭對手無法阻撓忠誠的分公司經理們的協商,最終達成統一行動方案。