不能不了解系列:從 PoS 到 PBFT 的共識協議

不能不了解系列:從 PoS 到 PBFT 的共識協議



最近,與各位讀者回顧了 Ethereum 的 Casper 及 Sharding。分別也提到了不同的概念在內,其中最重點的就是 PoW 了。可是,可能有不少讀者仍不了解 PoW 是什麼,或者與 PoS 等其他共識協議有什麼分別。今次會與大家分別探討不同的共識協議的優點及缺點。


最多人認識的應該是 PoW (Proof of Work) 及 PoS (Proof of Stake),Ethereum 以前一直套用的是 PoW,而現在就正在進行不同改變,長遠而言是想把 PoW 轉換成 PoS 的。那麼究竟那個共識協議較好?


PoW (Proof of Work) 工作量證明


PoW 的概念最早是由 Cynthia Dwork 及 Moni Naor 於 1993 年的學術論文提出,而工作量證明一詞則是在 1999 年由 Markus Jakobsson 與 Ari Juels. 所發表的。不過,現在 PoW 技術已成為了加密貨幣世界中的主流共識機制之一,例如是 Bitcoin 比特幣。


PoW 是一種對應服務與資源濫用,或是阻斷服務攻擊的經濟對策。一般是要求使用者進行一些耗時的複雜運算,並且答案能被服務方快速驗算,以此耗用的時間、裝置與能源做為擔保成本,以確保服務與資源是被真正的需求所使用。簡單來說,PoW 就是「挖礦」。礦工解決複雜的加密難題,他們以硬幣或代幣的形式獲得獎勵,「多勞者多得」。不過,PoW 仍然是較受歡迎的共識協議。


優點:

a. 演算法簡單,容易實現
b. 節點間無需交換額外的資訊即可達成共識
c. 需要投入極大的成本才能破壞系統


缺點:

a. 高能耗的
b. 確認區塊的時間難以縮短
c. 新的區塊鏈必須找到一種不同的散列演算法,否則就會面臨算力攻擊
d. 容易產生分叉,需要等待多個確認
e. 永遠沒有最終性,需要檢查點機制來彌補最終性


應用:

Bitcoin、Litecoin、Zcash、Ethereum、Ethereum Classic 等等⋯⋯


PoS (Proof of Stake) 持有量證明


PoS 是以共識演算法的方式,使用偽亂數的方式指定持有貨幣的人為交易的驗證者,並創造新的區段並接續在最長的鏈後面。PoS 最初被認為是能改善 PoW 原有的一些問題,例如能耗。在 PoS 模型中,那些持有硬幣的人可以將他們放在下一個區塊是正確區塊的可能性上,假設正確便會收到獎勵


優點:

a. PoS 比 PoW 消耗更少的能量
b. PoS 積極懲罰不誠實行為,阻止驗證者之間的欺詐行為
c. 縮短了達成共識的時間


缺點:

a. 仍需要挖礦,本質上沒有解決商業應用的痛點
b. 由於持有量越多時被指定到獲得的獎勵也越多,有可能會造成屯幣的狀況,降低貨幣的流通量


應用:

a. 純 PoW 應用:Reddcoin、Decred 及 NavCoin
b. PoW 算法的問題導致 Ethereum 擺脫純 PoW 並採用了 Poper / PoS 混合器 Casper


dPoS (Delegated Proof of Stake) 權益委託證明


dPoS 由 Steemit 的聯合創始人兼 EOS 的 CTO Daniel Larimer 發明,他們都使用 dPoS。與POS 的主要區別在於節點選舉若干代理人,由代理人驗證和記帳。監管規範、性能、資源消耗和容錯性與 POS 相似。


dPoS 的工作原理為:


每個股東按其持股比例擁有相應的投票權,51% 股東投票的結果將是不可逆且有約束力的,其挑戰是通過及時而高效的方法達到 51% 批准。dPoS 的投票模式可以每 30 秒產生一個新區塊,並且在正常的網絡條件下,區塊鏈分叉的可能性極其小,即使發生也可以在幾分鐘內得到解決。


優點:

a. 大幅縮小參與驗證和記帳節點的數量,可以達到秒級的共識驗證
b. 更加去中心化的機制
c. 擁有更高的處理效率


缺點:

a. 整個共識機制還是依賴於代幣,很多商業應用是不需要代幣存在的。


應用:

BitShares、Steem 及 EOS




PoA (Proof of Assignment) 作業證明


與 dPoS 類似,分配證明模型在網絡中建立了幾個可信節點,但只有那些節點存儲整個分類帳。通過允許其他網絡貢獻者在沒有分類帳存儲的情況下參與,分配證明模型允許在物聯網(IoT) 上運行的任何支持網絡的設備挖掘令牌。這一過程被稱為「微觀採礦」,使得連接互聯網的家用電器能夠為區塊鍊網絡的計算能力做出貢獻。


優點:

a. 通過利用更廣泛的機器網絡的計算能力,PoA 可以通過大幅降低的能耗來處理更快的交易速度


缺點:

a. PoA 仍然處於起步階段,需要在早期階段證明其彈性,直到網絡採用獲得牽引力


應用:

IOTW


PBFT (Practical Byzantine Fault Tolerance) 實用拜占庭容錯算法


PBFT 降低了拜占庭協議的運行複雜度,從指數級別降低到多項式級別 (Polynomial),使拜占庭協議在分佈式系統中應用成為可能。


PBFT 是一種基於嚴格數據證明的算法,至少需要經過三個階段的信息交換和通過局部共識達至最終的一致性結果。


核心概念是,只要系統中有問題的節點不超過 1/3 時,不管這些節點如何廣播有問題的信息,可信節點之間都一定能達到一致共識;簡單來說,PBFT 實際上是對於每一個收到信息的節點,都會廣播至其他人,就是說不斷重複進行信息交換,相互驗證,讓可信的節點之間能夠確認正確的信息,識別出有問題的節點。


所以一個能夠保證達到一致共識的拜占庭系統節點數至少為4個,容許出現1個壞的節點。亦即 N ≥ 3F + 1 (N為節點總數,F為有問題的節點總數)。


優點:

a. 具備容錯性
b. 不用靠發幣維持系統運作
c. 共識效率佳


缺點:

a. 封閉性
b. 系統穩定性
c. 高性能開銷


應用:

a. IBM 的 Hyperledger Fabric


另外,誠意邀請各位讀者加入我們的 Whatsapp 對話群組,以作交流分享諮詢用途。

https://chat.whatsapp.com/4oALXpHes9G06UelQuYUqJ


** 請謹記,本文不是在給予投資的意見,
投資中存有一定的風險,若不能承受該風險請量力而為。