區塊鏈共識機制概要掃描
一句話概括:
區塊鏈上的共識機制有多種,沒有一種共識機制是完美無缺的,同時也意味著沒有一種共識機制是適合所有應用場景的。本次掃描重點針對目前行業中經典的共識機制進行概要描述,用最科普的語言說明,便於大家有個全面的瞭解。
技術特徵:
PoW:Proof of Work,工作量證明
依賴機器進行數學運算來獲取記賬權,資源消耗相比其他共識機制高、可監管性弱,同時每次達成共識需要全網共同參與運算,效能效率比較低,容錯性方面允許全網50%節點出錯。實在是太有名了,這裡就不詳細介紹了,網上一大堆資料。
優點:完全去中心化,節點自由進出;
PoS:Proof of Stake,權益證明
Proof of Stake由
總體上說,POS演算法如下所示。存在一個持幣人的集合,他們把手中的代幣放入POS機制中,這樣他們就變成驗證者。假設在區塊鏈最前面一個區塊(區塊鏈中最新的塊),這時POS演算法在這些驗證者中隨機選取一個(選擇驗證者的權重依據他們投入的代幣多少,比如一個投入押金為10000代幣的驗證者被選擇的概率是一個投入1000代幣驗證者的10倍),給他們權利產生下一個區塊。如果在一定時間內,這個驗證者沒有產生一個區塊,則選出第二個驗證者來代替來產生新區塊。與POW一樣,以最長的鏈為準。
有什麼好處?
簡而言之:不再需要為了安全產生區塊而大量消耗電能。
由於不再需要大量能耗,通過發行新幣以激勵參與者繼續參與網路的壓力會下降。理論上負總髮行量甚至成為可能,由於一部分交易費“被燒”掉因此貨幣供應隨著時間減少。
有可能通過“合作博弈論”減少自私挖礦攻擊遭成的系統弱點,雖然POW在一定程度上也可以做到這一點。
隨著規模經濟(指擴大生產規模引起經濟效益增加的現象)的消失,中心化所帶來的風險減小了。價值一千萬美元的代筆帶來的回報不多不少是價值一百萬美元代幣的10倍,不會有人因為負擔得起大規模生產工具得到不成比例的額外回報。
DPoS:Delegate Proof of Stake,股份授權證明
BitShares社群首先提出了DPoS機制。
與PoS的主要區別在於節點選舉若干代理人,由代理人驗證和記賬。其合規監管、效能、資源消耗和容錯性與
DPoS的工作原理為:
去中心化表示每個股東按其持股比例擁有影響力,51%股東投票的結果將是不可逆且有約束力的。其挑戰是通過及時而高效的方法達到51%批准。為達到這個目標,每個股東可以將其投票權授予一名代表。獲票數最多的前100位代表按既定時間表輪流產生區塊。每名代表分配到一個時間段來生產區塊。所有的代表將收到等同於一個平均水平的區塊所含交易費的10%作為報酬。如果一個平均水平的區塊含有100股作為交易費,一名代表將獲得1股作為報酬。
網路延遲有可能使某些代表沒能及時廣播他們的區塊,而這將導致區塊鏈分叉。然而,這不太可能發生,因為製造區塊的代表可以與製造前後區塊的代表建立直接連線。建立這種與你之後的代表(也許也包括其後的那名代表)的直接連線是為了確保你能得到報酬。
該模式可以每30秒產生一個新區塊,並且在正常的網路條件下區塊鏈分叉的可能性極其小,即使發生也可以在幾分鐘內得到解決。
成為代表:
成為一名代表,你必須在網路上註冊你的公鑰,然後分配到一個32位的特有識別符號。然後該識別符號會被每筆交易資料的“頭部”引用。
授權選票:
每個錢包有一個引數設定視窗,在該窗口裡使用者可以選擇一個或更多的代表,並將其分級。一經設定,使用者所做的每筆交易將把選票從“輸入代表”轉移至“輸出代表”。一般情況下,使用者不會建立特別以投票為目的的交易,因為那將耗費他們一筆交易費。但在緊急情況下,某些使用者可能覺得通過支付費用這一更積極的方式來改變他們的投票是值得的。
保持代表誠實:
每個錢包將顯示一個狀態指示器,讓使用者知道他們的代表表現如何。如果他們錯過了太多的區塊,那麼系統將會推薦使用者去換一個新的代表。如果任何代表被發現簽發了一個無效的區塊,那麼所有標準錢包將在每個錢包進行更多交易前要求選出一個新代表。
抵抗攻擊:
在抵抗攻擊上,因為前100名代表所獲得的權力權是相同的,每名代表都有一份相等的投票權。因此,無法通過獲得超過1%的選票而將權力集中到一個單一代表上。因為只有100名代表,可以想象一個攻擊者對每名輪到生產區塊的代表依次進行拒絕服務攻擊。幸運的是,由於事實上每名代表的標識是其公鑰而非IP地址,這種特定攻擊的威脅很容易被減輕。這將使確定DDOS攻擊目標更為困難。而代表之間的潛在直接連線,將使妨礙他們生產區塊變得更為困難。
優點:大幅縮小參與驗證和記賬節點的數量,可以達到秒級的共識驗證。
Casper:投注共識
這是一種以太坊下一代的共識機制,屬於PoS。Casper的共識是按塊達成的而不是像PoS那樣按鏈達成的。
為了防止驗證人在不同的世界中提供不同的投注,我們還有一個簡單嚴格的條款:如果你有兩次投注序號一樣,或者說你提交了一個無法讓Casper合約處理的投注,你將失去所有保證金。從這一點我們可以看出,Casper與傳統的PoS不同的是Casper有懲罰機制,這樣非法節點通過惡意攻擊網路不僅得不到交易費,而且還面臨著保證金被沒收的風險。
Casper協議下的驗證人需要完成出塊和投注兩個活動。具體如下:
出塊是一個獨立於其它所有事件而發生的過程:驗證人收集交易,當輪到他們的出塊時間時,他們就製造一個區塊,簽名,然後傳送到網路上。投注的過程更為複雜一些。目前Casper預設的驗證人策略被設計為模仿傳統的拜占庭容錯共識:觀察其他的驗證人如何投注,取33%處的值,向0或者1進一步移動。
而客戶端的確認當前狀態的過程如下所示:
一開始先下載所有的區塊和投注,然後用上面的演算法來形成自己的意見,但是不公佈意見。它只要簡單的按順序在每個高度進行觀察,如果一個塊的概率高於0.5就處理它,否則就跳過它。在處理所有的區塊之後得到的狀態就可以顯示為區塊鏈的“當前狀態”。客戶端還可以給出對於“最終確定”的主觀看法:當高度k之前的每個塊,意見要麼高於99.999%或者低於0.001%,那麼客戶端就可以認為前k個塊已經最終確定。
Ripple Consensus:瑞波共識機制
瑞波幣的共識演算法如下:
瑞波共識演算法,使一組節點能夠基於特殊節點列表達成共識。初始特殊節點列表就像一個俱樂部,要接納一個新成員,必須由51%的該俱樂部會員投票通過。共識遵循這核心成員的51%權力,外部人員則沒有影響力。由於該俱樂部由“中心化”開始,它將一直是“中心化的”,而如果它開始腐化,股東們什麼也做不了。與比特幣及點點幣一樣,瑞波系統將股東們與其投票權隔開,並因此比其他系統更中心化。
Pool驗證池
基於傳統的分散式一致性技術,加上資料驗證機制;是目前行業鏈大範圍在使用的共識機制。
優點:不需要代幣也可以工作,在成熟的分散式一致性演算法(Pasox、Raft)基礎上,實現秒級共識驗證。
缺點:去中心化程度不如bictoin;更適合多方參與的多中心商業模式。
PBFT:Practical Byzantine Fault Tolerance,實用拜占庭容錯
在分散式計算上,不同的計算機透過訊息交換,嘗試達成共識;但有時候,系統上協調計算機(Coordinator / Commander)或成員計算機 (Member /Lieutanent)可能因系統錯誤並交換錯的訊息,導致影響最終的系統一致性。拜占庭將軍問題就根據錯誤計算機的數量,尋找可能的解決辦法,這無法找到一個絕對的答案,但只可以用來驗證一個機制的有效程度。
而拜占庭問題的可能解決方法為:
在 N ≥ 3F + 1 的情況下一致性是可能解決。其中,N為計算機總數,F為有問題計算機總數。資訊在計算機間互相交換後,各計算機列出所有得到的資訊,以大多數的結果作為解決辦法。
最早由 Castro 和 Liskov 在 1999 年提出的 Practical Byzantine Fault Tolerant(PBFT)是第一個得到廣泛應用的 BFT 演算法。只要系統中有2/3的節點是正常工作的,則可以保證一致性。
dBFT:delegated BFT,授權拜占庭容錯
一種改進的拜占庭容錯演算法,使其能夠適用於區塊鏈系統。dBFT演算法在PBFT基礎上進行了改進:
將C/S架構的請求響應模式,改進為適合P2P網路的對等節點模式;
將靜態的共識參與節點改進為可動態進入、退出的動態共識參與節點;
為共識參與節點的產生設計了一套基於持有權益比例的投票機制,通過投票決定共識參與節點(記賬節點);
在區塊鏈中引入數字證書,解決了投票中對記賬節點真實身份的認證問題。
問題:
當有1/3或以上記賬人停止工作後,系統將無法提供服務;
當有1/3或以上記賬人聯合作惡,且其它所有的記賬人被恰好分割為兩個網路孤島時,惡意記賬人可以使系統出現分叉,但是會留下密碼學證據;
以上總結來說,dBFT機制最核心的一點,就是最大限度地確保系統的最終性,使區塊鏈能夠適用於真正的金融應用場景。
PoET:Proof of Elapsed Time,消逝時間量證明
它是由英特爾構建在可信執行環境的一種彩票協議。核心是用intel支援SGX技術的CPU硬體,在受控安全環境(TEE)下隨機產生一些延時,同時CPU從硬體級別證明延時的可信性,類似於彩票演算法,誰的延時最低,誰將獲取記賬權。這樣,增加記賬權的唯一方法就是多增加CPU的數量,具備了當初中本聰設想的一個CPU一票的可能,同時增加的CPU會提升整個系統的資源,變相實現了記賬權與提供資源之間的正比例關係。
Quorum Voting:仲裁投票
它採用了瑞波和恆星的共識協議,用來解決需立即交易定局的需求。
Paxos
這是一種傳統的分散式一致性演算法。
是一種基於選舉領導者的共識機制,領導者節點擁有絕對許可權,並允許強監管節點參與,效能高,資源消耗低。所有節點一般有線下准入機制,但選舉過程中不允許有作惡節點,不具備容錯性。
Raft
這是一種傳統的分散式一致性演算法。
主流共識機制的不足:
POW不足:目前bitcoin已經吸引全球大部分的算力,其它再用Pow共識機制的區塊鏈應用很難獲得相同的算力來保障自身的安全;挖礦造成大量的資源浪費;共識達成的週期較長。
POS不足:還是需要挖礦,本質上沒有解決商業應用的痛點;所有的確認都只是一個概率上的表達,而不是一個確定性的事情,理論上有可能存在其他攻擊影響。
DPOS不足:整個共識機制還是依賴於代幣,很多商業應用是不需要代幣存在的。
主流共識機制的應用進展:
POW:目前佔據最主流的共識機制還是POW,比特幣和以太坊這個兩個最大的公鏈還是採用POW,以太坊預計今年要切換到Casper(屬於POS一種,改進性)。
POS:Peercoin和NXT都以不同思路實現。
DPOS:典型的應用就是BTS。
CASPER:以太坊計劃採用。
PBFT: 超級賬本等
簡單總結一下除POW外的共識演算法:
共識演算法 |
PoS |
DPoS |
Casper |
PBFT |
PoET |
效能 |
較高 |
高 |
較高 |
高 |
高 |
去中心化程度 |
完全 |
完全 |
完全 |
半中心化 |
半中心化 |
最大允許作惡節點數量 |
51% |
51% |
51% |
33% |
51% |
是否需要代幣 |
是 |
是 |
是 |
否 |
否 |
應用型別 |
公有鏈 |
公有鏈 |
公有鏈 |
聯盟鏈 |
聯盟鏈 |
能否防範女巫攻擊 |
是 |
是 |
是 |
否 |
是 |
技術成熟度 |
成熟 |
成熟 |
未應用 |
成熟 |
未應用 |
需要專用硬體 |
否 |
否 |
否 |
否 |
是 |
商業模式:
暫無。