李福濤
【摘要】? ? 共識機制作為區塊鏈中的關鍵技術,是區塊鏈系統中的所有參與節點達成一致的策略和方法,決定了區塊鏈能在多個節點中達到一種相對平衡的狀態。隨著區塊鏈技術發展和不斷成熟,區塊鏈的共識機制也在不斷發展與完善。本文介紹了幾種主流共識機制的特點,具體為PoW、PoS、DPoS、PBFT等共識機制。
【關鍵詞】? ? 區塊鏈? ? 共識機制? ? 去中心化
一、前言
2008 年,學者中本聰(Nakamoto)發表論文《比特幣:一種點對點的電子現金系統》,在該文中首次提出區塊鏈概念。作為一種近幾年逐漸興起的前沿性、基礎性技術,區塊鏈(Blockchain)是一種全新的去中心的分布式系統,其整合了共識機制、密碼學技術、分布式數據存儲、P2P技術等關鍵技術。該系統是按照時間順序將各個數據區塊以順序相連,從而組合成一種鏈式數據結構,使用非對稱加密算法來保證鏈中的數據區塊不可篡改和不可偽造。區塊鏈的這種去中心化、去信任化的鏈式數據結構具有廣闊的應用前景和重要的應用價值,其應用已延伸到當前網絡環境下的各類商品的交易和數據的傳輸中。
二、共識機制
區塊鏈作為一種分布式記賬系統,其中的節點無需互相信任,各節點通過統一的共識機制共同維護一份賬本。區塊鏈建立的是一種去中心化的共識機制,區塊鏈的共識機制是區塊鏈系統中的所有參與節點達成一致的策略和方法。共識機制作為區塊鏈中的關鍵技術,直接影響到區塊鏈應用的有效性和適用性。
當前區塊鏈主要有四大類共識機制:工作量證明(Proof Of Work,PoW)機制、權益證明(Proof of Stake,PoS)機制、股份授權證明(Delegate Proof of Stake,DPoS)機制和實用拜占庭容錯(Practical Byzantine Fault Tolerance,PBFT)機制。
2.1工作量證明(PoW)
作為一種現今較為成熟的共識技術,PoW共識過程為:觸發交易的節點向區塊鏈網絡廣播交易請求后,網絡中的所有節點競爭獲得創建新區塊的權利,競爭成功的節點執行智能合約后向網絡廣播生成的新區塊,然后所有節點驗證該新區塊的正確性。PoW依賴機器進行數學運算來獲取記賬權,資源消耗相比其他共識機制高,同時每次達成共識需要全網節點共同參與運算,性能效率比較低,容錯性方面允許全網一半節點出錯。雖然PoW可以達到完全去中心化,節點自由進出,但是目前比特幣已經吸引全球大部分的算力。且由于依賴機器進行數學運算來獲取記賬權,資源消耗相比其它共識機制高、可監管性弱。
2.2權益證明(PoS)
PoS的主要思想是節點記賬權的獲得難度與節點持有的權益成反比,其出發點在于解決工作量證明的能源浪費問題。作為Pow的一種升級共識機制,PoS根據每個節點所占代幣的比例和時間,等比例的降低挖礦難度,從而加快找隨機數的速度,且該共識機制容錯性和PoW相同。相對于PoW,PoS一定程度減少了數學運算帶來的資源消耗,性能也得到了一定的提升,但依然是基于哈希運算競爭獲取記賬權的方式,可監管性弱。PoS共識過程僅僅靠內部幣齡和權益,而不需要消耗外部算力和資源,解決了算力浪費問題,但是算力卻大打折扣。
2.3股份授權證明(DPoS)
隨著對PoS研究的深入,基于PoS產生了DPoS,意為股份授權證明機制,DPoS與PoS的主要區別在于節點選舉若干代理人,由代理人驗證和記賬。其合規監管、性能、資源消耗和容錯性與PoS相似。類似于董事會投票,股東們投出一定數量的節點,作為代理人,代理他們進行驗證和記賬,并負責維護貨幣系統運行,其合法性驗證性能也與PoS相似。由于大幅縮小參與驗證和記賬節點的數量,其共識驗證的時間就更短。DPoS整個共識機制還是依賴于代幣,很多商業應用是不需要代幣存在的,普適性較差。
2.4實用拜占庭容錯(PBFT)
PBFT是一種基于消息傳遞的一致性算法,算法經過三個階段達成一致性,每個階段可能因為失敗而重復進行,其解決了原始拜占庭容錯算法效率不高的問題,使得拜占庭容錯算法在實際系統應用中變得可行。PBFT算法是假定攻擊者數量在容錯條件下,預設的大多數節點通過依賴一個選舉過程達成節點共識,然后由選舉的節點按照約定生成區塊。PBFT的缺點在于:網絡資源消耗較高,網絡開銷較大,且容錯率低、靈活性差,超過1/3的節點作惡就會導致系統崩潰,以及只適用聯盟鏈或私鏈場景。
三、結語
區塊鏈的去中心化、防篡改、可追溯等特性使其具有良好的應用潛力和前景。共識機制作為區塊鏈中的關鍵技術,解決了區塊鏈如何在分布式場景下達成一致性的問題。如何降低共識算法的復雜度,將是未來區塊鏈領域中的主要研究趨勢。
參? 考? 文? 獻
[1]沈鑫, 等. 區塊鏈技術綜述[J]. 網絡與信息安全學報,2016,2(11).
[2]北京航空航天大學. 一種基于P2P金融的區塊鏈機制與共識算法:中國, 106920167[P].2017-07-04.
[3]Cryptape.共識算法,區塊鏈的引擎.http://cryptape.com/ consensus-the-engine-of-blockchain.html, 2016.