區塊鏈開發共識,共識算法是什么?
共識機制就是用來解決分布式系統的一致性問題,其核心為在某個協議(共識算法)保障下,在有限的時間內,使得指定操作在分布式網絡中是一致的、被承認的、不可篡改的。在區塊鏈系統中,特定的共識算法用於解決去中心化多方互信的問題。
其實簡單理解就是達成一致。現實生活中很多場景是需要達成一致的。區塊鏈系統中,每個節點必須讓自己的賬本和其他節點的賬本保持一致。而中心化世界里,這幾乎不可能,因為有一個中心服務器存在。
共識算法有幾類?
在區塊鏈系統中,共識算法則通過經濟利益的博弈,來鼓勵對系統的貢獻及提高不可信節點的作惡成本。常用算法如PoW、PoS、DPoS等,不同的算法,其實就是不同的游戲玩法。
PoW(Proof of Work,工作量證明)—主要代表:比特幣所謂的比特幣挖礦就是通過計算符合某一個比特幣區塊頭的哈希散列值爭奪記賬權。這個過程需要通過大量的計算實現,簡單理解就是你進行的計算量大(工作量大),你就有大概率獲得記賬權。包括:Bitcoin,Ethereum,Litecoin,Zcash。優點:隨機性、公平性好;缺點:耗能。
PoS(Proof of Stake,權益證明)—主要代表:點點幣簡單理解就是根據資產的多寡分配獲取記賬權的概率,類似股份公司中的股東。包括:Ethereum-PoS,Tendermint,Algorand,EOS DPoS,DFINITY,VBFT。優點:攻擊更昂貴,性能效率高;缺點:權利集中。
DPoS(Delegate Proof of Stake,委托權益證明)—主要代表:EOSPoS的改進,通過社區選舉產生記賬者,類似股份公司中的董事會。如:Steemit, EOS, bitshare優點:廉價的交易,可伸縮的;缺點:目前部分集中。
為適應不同的應用場景,區塊鏈共識機制的研究集中於優化系統的可擴展性、運行效率、容錯性等方面。在新興的區塊鏈方案中,會將各種共識機制結合使用,例如在分層/分片方案中,最上層的主鏈使用PoW機制以確保全局共識的有效性並用來對抗女巫攻擊,而在相對小范圍的分片中,使用PoS或者BFT算法來實現更高效率的共識。典型的案例包括未來引入基於校驗器管理和約分片方案的以太坊以及Zilliqa等。盡管這些方案尚未落地驗證,但他們代表了未來區塊鏈設計的趨勢。
共識算法發展歷程:
從歷史上看,共識算法起源於多處理器計算的研究;它們解決的是處理器可能出現故障(即變得無響應)時的全局狀態問題。在這些情況下通信是同步的,即受一些已知的時間上限。
后來,隨着電信和計算機網絡的發展,出現了另外兩個問題:未知的通信延遲和對手的存在。前者導致了部分新的研究同步和異步共識算法和創建算法可以容忍任意代理行為(拜占庭行為)——即所謂的拜占庭容錯算法(或BFT共識)。
隨着互聯網的廣泛應用,對手的問題變得更加嚴重。如果在多處理器環境或電信基礎設施中可以識別每個代理,那么在Internet的許多情況下就不能這樣做。因此,出現了一種新的公共(或無許可)共識,共識算法必須成為一種協議,其中嵌入了識別和排除拜占庭式代理的規則和程序——就像一些附帶機制降低了此類代理進一步參與協議的經濟能力一樣。這種制度以POW 和POS的名義引起了公眾的注意。我們將以經濟激勵(BFT- ei)命名這些協議。在許多情況下,異步性和無許可性要求犧牲其他共識品質,比如決定論或適用於領導人選舉場景的能力。
共識算法應用:
通常,共識算法用於解決以下問題:
· 領袖選舉(在所有共識參與者中選擇代理人,有權更新系統的全球狀態)
· 原子交換(不能根據事件的內部屬性確定其順序事件的確切順序)
· 狀態復制(維護所有或大多數代理共享的全局狀態)
總體來說,主流共識算法逐漸由PoW轉向PoS共識算法,出現POW和POS混合的趨勢,POW的公平性和POS的效率得到融合補充。但即便是每種加密貨幣背后都有一種偉大的共識算法,沒有一種共識算法是完美的,各有優缺點。隨着區塊鏈項目越來越多,而共識算法也會不斷改進。