夏 清, 張鳳軍, 左 春(中國科學院軟件研究所 互聯網金融技術研究中心, 北京 0090)(中國科學院大學 計算機與控制學院, 北京 0090)(中科軟科技股份有限公司, 北京 0090)
加密數字貨幣系統共識機制綜述①
夏 清1,2, 張鳳軍1, 左 春31(中國科學院軟件研究所 互聯網金融技術研究中心, 北京 100190)2(中國科學院大學 計算機與控制學院, 北京 100190)3(中科軟科技股份有限公司, 北京 100190)
共識機制是以區塊鏈技術為支撐的加密數字貨幣系統的核心, 分析并比較了現有的三種典型共識機制,為區塊鏈開發者設計共識機制提供參考和建議. 解析了三種主流共識機制PoW、PoS、DPoS的基本思想、運行過程與優缺點, 隨后從公平性、運轉開銷、可持續性等幾個方面歸納出每種共識機制的特點, 然后從信用的去中心化程度、授權等多個角度進行分析比較, 考量不同應用場景下的共識需求. 從應用場景出發, 將兩種或以上共識機制結合使用, 在完全去中心化與中心化中間尋找到適合的平衡點, 更符合未來共識機制的應用需求.
共識機制; 加密數字貨幣; 區塊鏈; 去中心化; 開發
近年來, 以比特幣為代表的加密數字貨幣使用范圍日益擴大, 交易規模也快速增長, 逐漸引起人們的廣泛關注. 比特幣系統從2009年開始正式運行, 到今天已經成功運轉了7年, 雖然其中經歷了幾次貨幣價格的大漲大跌, 但通過對等網實現的比特幣自身的匿名性、不可更改、低成本跨境支付[1]等特點使它越來越受到重視, 并為加密數字貨幣領域的研究發展提供了新的思路.
區塊鏈作為比特幣系統的底層支撐技術, 以其具備的分布式、去中心化、可追溯、不可篡改[2]等特點, 在全球金融技術領域掀起一波新的討論熱潮. 區塊鏈是一種分布式數據庫技術, 它維護了一個持續增長并且不可被篡改和修改的數據記錄列表, 系統中的有效信息按時間順序排列存放在一個個區塊中, 除了創世區塊外每個區塊還包含指向前一個區塊的鏈接信息, 從而形成一個從前往后有序鏈接的數據結構鏈條[3]. 區塊鏈技術已成為金融技術領域最具顛覆性的前沿技術,除了數字貨幣領域外, 金融、物聯網、公證等其他領域人士也在積極探索基于區塊鏈的落地項目.
區塊鏈本質上是一種對等的分布式系統, 所有節點共同保障系統的正常運行. 在這種分布式系統中,除了互聯網本身面臨的網絡延時、傳輸錯誤等固有問題, 還有由于去中心化而帶來的不能信任任意參與者、可能存在惡意節點、各方利益不一致導致數據分歧等問題, 為了防范這些潛在的威脅, 區塊鏈系統需要一種共識機制來使各個節點達成共識, 保證數據的最終一致性.
在基于區塊鏈技術的加密數字貨幣系統中, 中央銀行的角色不再存在, 貨幣發行和交易流通的職責由所有節點共同承擔[4]. 選擇哪個節點來發行貨幣、如何識別一筆交易是否是雙重支付、交易鏈條出現分叉時如何處理等重要問題需要節點采用共識機制來解決,一個良好的共識機制是保證數字貨幣系統準確高效運轉的必要條件.
基于此, 本文對數字貨幣領域實踐運行的五種共識機制進行研究. 比較典型的有PoW(Proof-of-Work,工作量證明)、PoS(Proof-of-Stake, 權益證明)及其變種PoSV(Proof-of-Stake-Velocity, 權益和活動頻率證明)和PoA(Proof-of-Activity, 行動證明)、DPoS(Delegated Proof-of-Stake, 授權股權證明), 通過對這些共識機制的分析比較, 探究在不同的應用場景下合適的共識方案.
分布式計算和多代理系統中的一個基本目標是在部分進程出錯的前提下實現整個系統的可靠性[5], 這往往需要在計算過程中對于某些所需信息達成一致,例如是否將某個交易提交到數據庫, 是否認證某個參與者的領導者身份等. 這種為了達成關于某個問題的一致意見的過程即是形成共識的過程, 共識問題實質上就是一致性問題[6].
分布式數據庫和大多數的分布式系統都構建在一致性問題上, 這個問題聽起來很簡單, 但卻是從上世紀70年代就開始研究的經典問題. Fischer, Lynch和Patterson在1985年發表的《Impossibility of Distributed Consensuswith One Faulty Process》[7]一文中提出了重要的分布式系統定理——FLP不可能性. 該理論認為沒有一個完全異步的共識協議可以容忍哪怕僅僅一個進程失效. FLP定理限定了分布式系統共識算法求解上限.
在比特幣系統中可能存在惡意節點的情況下, 共識機制要解決雙重花費問題, 并使所有節點在期限內就一個記錄所有交易信息的總賬本達成一致. 中本聰通過引入經濟激勵和獎懲機制在算法體系之外對共識機制進行突破, 使比特幣系統以很小的概率出現系統不可用的情況, 滿足實際應用場景.
一個正確的分布式共識協議需要滿足以下三個條件:
① 協商——所有節點針對相同的值進行表決;
② 終止——所有節點在有限時間內達成一致;
③ 有效——最后達成一致的值由系統中的節點提出[8,9].
可以看出, 比特幣的共識協議均滿足這三個條件,是一個靈巧的針對共識問題的解決方案. 在比特幣系統中, 當節點發現一個新區塊后, 立即在全網廣播,所有節點通過驗證區塊的有效性來決定是否同意該區塊, 當區塊擁有大多數節點的確認后, 即可被認為有效. 比特幣共識問題就是一個典型的拜占庭將軍問題.
1981年Leslie Lamport在《The Byzantine generals problem》[10]一文中描述分布式系統容錯與一致性問題設想時首次提出拜占庭將軍問題. 拜占庭位于現在土耳其的伊斯坦布爾, 是東羅馬帝國的首都. 由于當時拜占庭羅馬帝國國土遼闊, 為了防御敵人, 每個軍隊都分隔很遠, 將軍與將軍之間只能靠信差傳遞消息.在戰爭時期, 拜占庭軍隊內所有將軍必須達成一致共識, 發現有贏的機會時才去攻打敵人的陣營, 但是有些將軍可能是叛徒, 他們會故意發出錯誤信息竭力擾亂其他人. 忠誠的將軍們如何在已知有叛徒的情況下達成一致協議, 這就是拜占庭將軍問題. 比特幣的每個節點可以看做是一位將軍, 將軍們想對系統總賬內容達成一致, 節點中可能存在惡意節點, 它們想方設法對總賬內容進行篡改, 從而使自身獲得更大經濟利益.
在傳統貨幣體系中, 中央銀行擁有貨幣發行權,負責貨幣供給并維持貨幣穩定性, 而在以比特幣為代表的加密貨幣體系中, 所有節點共同協作實現中央銀行的兩大功能: 發行貨幣和維護一個記錄貨幣所有權流轉的總賬本.

圖1 傳統貨幣體系和比特幣系統對比圖
如圖1所示, 比特幣系統中沒有中央銀行的概念,或者可以理解為系統中的每個參與者都是一個小銀行,因為每個節點現在都有發行貨幣的機會, 同時也都要維護一個總賬本, 從而確定貨幣與人的對應關系. 哪個節點擁有貨幣發行權, 在貨幣不斷流轉的過程中如何明確貨幣所有權, 這就是加密貨幣系統中的共識機制主要解決的問題[11]. 而貨幣所有權的確定則是一個更加棘手的問題, 因為分布式網絡的種種特點, 惡意參與者可能發起雙重支付、拒絕服務攻擊等擾亂系統正確運行.
依據貨幣系統網絡中節點的權利大小進行分類,共識協議可分為無授權(permissionless)協議和有授權(permissioned)協議[12]. 無授權協議中典型的是PoW,所有節點權利平等, 有授權協議中根據授權程度的不同, 較典型的有PoS和DPoS. 三種共識機制分別對應不同的應用場景, 授權程度由弱到強, 因此下文將對這三種典型共識機制進行介紹、分析與比較, 同時展望加密數字貨幣共識機制的未來.
2.1 PoW
PoW即工作量證明, 是比特幣系統中采用的共識機制. 比特幣交易的合法性是由整個網絡合力驗證的,只有大多數參與者認同某筆交易, 該交易才被視為有效[13]. 然而, 在這種機制下, 假身份的問題凸顯出來,即敵手可能發起女巫攻擊(Sybil attack)[14]. 交易發起方可以偽造多個身份, 隨后對自己的交易進行確認,由于“大多數人”都認同這筆交易, 即便是雙重支付,接收方也會相信并接受該交易. 基于控制系統中大部分算力比控制大部分實體難得多的假設, 比特幣協議使用工作量證明來防止女巫攻擊. 在確認交易前, 參與者需要做一些工作來證明他們的真實實體身份, 這項工作是解決一個密碼學難題, 人為地提高了確認交易的計算成本. 因此, 驗證交易的能力取決于算力,而不是實體身份數量.
比特幣系統中不斷產生新交易, 節點需要將合法交易放進一個區塊中. 區塊頭由版本號、前一個區塊哈希值、Merkle根、時間戳、難度目標和隨機數六部分組成, 參與者需要尋找隨機數使區塊頭哈希值小于或等于難度目標[15]. 比特幣協議中使用SHA-256哈希算法, 除非算法被攻破, 否則最有成效的方法是嘗試不同隨機數, 直到滿足目標, 例如, 難度目標為二進制哈希值以48個0開頭, 則平均要經過248次嘗試才能解決難題.
難度目標每經過2016個區塊后會進行調整, 使區塊的平均速度保持在每10分鐘一個, 因此每兩周(2016*10min)難度目標會更新, 新難度值T的計算公式為:

其中,prevT是舊難度目標,actualt是最近產生的2016個區塊的實際花費時間. 難度目標值越小, 尋找到滿足條件的隨機數就越困難, 如果actualt小于兩周時間, 意味著區塊確認速度加快, 網絡算力提升, 因此新難度值將變小使區塊平均生成時間延長從而保持系統穩定性.
解決工作量證明難題需要花費算力, 實際上就是花費金錢, 為了鼓勵節點共同參與進來維護網絡安全,比特幣協議提供了一個激勵機制, 給第一個解決數學難題的節點一筆回報, 包括挖礦獎勵和交易費. 比特幣區塊的第一筆交易被稱為coinbase交易, 在此交易中系統將一定數量的比特幣發送到解決工作量證明難題的礦工賬戶. 挖礦獎勵最開始設置為50個比特幣,每經過210000個區塊(即接近四年的時間)獎勵減半,預計到2140年左右比特幣開采完畢, 隨后網絡安全的維護全取決于交易費, 挖出來的共21*106個比特幣在系統內流通[16]. 激勵機制既是貨幣發行手段, 同時也保障了系統的網絡安全.
比特幣系統中的主鏈定義為累積了最多難度的區塊鏈, 一般情況下, 也是包含最多區塊的那個鏈. 當兩個區塊在較短的相隔時間內被挖出來時, 主鏈就會產生分叉, 此時系統會將分支保留, 如果在未來的某個時刻他們中的一個延長了并且在難度值上超過了主鏈, 那么后續的區塊就會引用它們.
工作量證明機制從貨幣供應、防止雙重支付、采取激勵措施保證安全、在有限時間內對于交易達成一致四個方面保障了比特幣系統的安全運行, 為拜占庭將軍問題提供了一種解法[17].
2.2 PoS
比特幣網絡的安全由物理稀缺資源進行保障, 包括執行哈希操作的物理硬件和電力兩部分, 為了增加挖礦報酬, 礦工們不得不參與競爭日益激烈的挖礦軍備競賽, 因此從能源角度來看, 工作量證明是一種生態不友好的共識機制, 這也導致了能源消耗較少的共識機制——權益證明的出現[18].
權益證明即PoS, 目前點點幣(Peercoin)[19]、未來幣(Nextcoin)等多種加密貨幣都使用了這種共識機制,它的出發點在于解決工作量證明的能源浪費問題. 權益證明基于幣齡的概念, 幣齡被定義為貨幣數量和貨幣持有時間的乘積, 例如, Bob從Alice那里收到了兩個幣, 并持有了90天, 那么Bob就收集到了180幣天(2*90)的幣齡, 而當Bob將這筆錢花費以后, 收集到的幣齡則被銷毀. 權益證明蘊含的理念是區塊鏈應該由那些在其中具有經濟權益的人進行保障.
PoS挖礦在2012年由匿名開發者Sunny King發布的點點幣中首次實現. 在點點幣區塊中有一個稱為coinstake的交易, 命名類似于比特幣區塊中的coinbase交易. 在coinstake交易中, 規定貨幣所有者將持有的貨幣發送給他們自己(保證生成權益區塊后幣齡歸零), 用來產生點點幣區塊并得到部分利息, 得到利息幣的代價是幣齡的消耗. 和比特幣系統中類似的是, 點點幣區塊也要求參與者尋找隨機數使區塊頭哈希值滿足目標難度, 不同之處在于點點幣系統中每個參與者產生區塊的難度目標值各不相同, 難度目標和coinstake交易中消耗的幣齡成反比, 參與者累積的幣齡越多, 生成區塊的幾率也就越大[20].
可以將PoS中幣齡的概念想象為PoW中的算力,如果某人將一大筆錢持有很長一段時間, 那他在下次挖礦中就相當于擁有一次使用強有力的ASIC礦機的機會, 但這種機會不依賴于硬件設施的購買和電力的消耗, 而是取決于用戶在系統中的存款以及儲蓄時間.不同于PoW挖礦中競賽的性質, PoS更像是抽獎, 累積幣齡越多越有機會中獎, 而一旦中獎由于幣齡已經被消耗, 再次中獎概率就降低了, 避免了“富人越富”[21]情況的發生.
PoS中將主鏈定義為消耗幣齡最高的鏈, 每個區塊的交易都會將其消耗的幣齡提交給該區塊, 以增加區塊得分. 在這種情況下, 攻擊者如果想發起對主鏈的攻擊, 必須要擁有一大筆錢, 并且要累積到足夠多的幣齡才行, 攻擊者得到PoS系統中一大筆錢的花費似乎比掌握比特幣系統中大部分算力代價更高, 而且一旦實施攻擊, 破壞貨幣體系的同時自身擁有的大量貨幣也會受損, 這可能從一開始就降低了攻擊者的行為動機. 而一旦區塊生成后幣齡立即清零, 這也保障了攻擊者不能進行持續攻擊.
在PoS出現后, 一些針對其中某個缺點進行修改而誕生的新協議被稱作PoS的衍生協議, 比如PoSV和PoA[22].
PoSV針對PoS中幣齡是時間的線性函數這一問題進行改進, 致力于消除貨幣持有者的屯幣現象. PoSV意為權益和活動頻率證明, 是瑞迪幣(Reddcoin)目前使用的共識機制, 瑞迪幣在前期使用POW進行幣的分發, 后期使用PoSV維護網絡長期安全. PoSV將PoS中幣齡和時間的線性函數修改為指數式衰減函數, 即幣齡的增長率隨時間逐漸減少最后趨于零,因此新幣的幣齡比老幣增長得更快, 直到達到上限閾值,這樣在一定程度上緩和了貨幣持有者屯幣現象.
PoA意為行動證明, 也是POS的一種改進方案.它的本質是通過獎勵參與度高的貨幣持有者而不是懲罰消極參與者來維護系統安全. PoA將PoW和PoS結合在一起, 主要思想是將PoW挖礦生成幣的一部分以抽獎的方式分發給所有活躍節點, 而節點擁有的股權與抽獎券的數量即抽中概率成正比.
2.3 DPoS
為了進一步加快交易速度, 同時解決PoS中節點離線也能累積幣齡的安全問題, Daniel Larimer于2014年4月提出DPoS[23]. DPoS是PoS的衍生物, 意為股份授權證明機制, 股東們將權利授予一定數量的受托人(delegates), 由受托人負責維護貨幣系統運行, 這在某種程度上類似于代議制制度, 但和現實中的議會議員有所不同的是, 選民有權在一段時間后根據受托人的表現重新選舉, 如果對他們的工作表現不滿意, 也可以要求罷免受托人. DPoS目前是比特股、Crypti平臺內置的共識機制.
在DPoS中, 股東投票給某個受托人, 系統根據股東所持股權在系統中占比計算出票數最高的一定數量受托人, 受托人們按照事先規定的順序輪流負責生成區塊. 通過所有股東的投票后, 系統中的信任已經由全體參與者集中到了少數參與者, 節點發起交易后不用再等待相當數量未授信任節點的確認, 而只需要讓受托人對交易進行驗證, 這就大大縮短了交易的確認時間. 例如, 比特股可以達到每個塊10秒的區塊生成速度, 相比于比特幣平均每個區塊接近10分鐘的生成時間有了重大提升.
在一些DPoS協議版本中, 節點要獲得競爭成為受托人的資格首先得付出一定代價, 比如繳納一筆保證金到某個安全賬戶, 如果節點作惡保證金將被沒收[24].受托人維護系統運行將獲得報酬, 他將與其他受托人共享區塊交易費, 酬勞對其形成正向反饋從而激勵受托人更加努力維護系統安全. 由于區塊被受托人輪流簽署, 如果某位受托人因離線錯過了簽署區塊, 他將面臨被其他候選受托人取代的風險, 因此為了營利,受托人必須保證充足的在線時間. 需要繳納保證金的這種DPoS協議也被稱作基于存款的股權證明協議(deposit-based proof of stake).
3.1 PoW的特點
工作量證明的最大特點及優點體現在協議的公平性上, 具體表現為若礦工所持算力占全網總算力的p%, 則相應地有p%的可能性生成區塊并獲得報酬.這也側面說明了攻擊的困難性, 攻擊者的算力需要同全網其它誠實結點共同競爭才能生成對其“有利”的區塊. 工作量證明算法保障著比特幣網絡從誕生開始安全運行至今, 然而隨著越來越多人使用比特幣進行交易, 它的缺陷逐漸體現出來. 工作量證明的初衷是采用“一個CPU一票”的“全民”公投方式達到去中心化民主實現共識, 這種方式達成共識是一個耗時的過程.此外, 由于比特幣價格上漲, 利益驅動使市場上出現專業挖礦設備, 購置礦機的用戶數量增多導致越來越多小礦工的流失, 民主基礎受到損害, 壟斷問題凸顯出來[25].
隨著越來越多用戶參與比特幣挖礦, 為了降低挖礦門檻, 也為了提升比特幣開采穩定性使礦工薪酬趨于平穩, 系統中出現眾多商業礦池. 礦池一般是對外開放的團隊開采服務器, 將眾多用戶的算力匯聚到一起組隊進行挖礦, 目前較為著名的有AntPool, F2Pool, BW.COM, BTCC Pool等.

圖2 比特幣礦池哈希算力分布
如圖2所示, 在截止至2016年7月14日的前四天時間中, 超過50%的區塊被前三大礦池開采出, 超過80%的區塊被前六大礦池開采出, 礦池掌握了及其龐大的算力資源是不可否認的事實. 在PoW的共識機制中, 算力即代表著記賬權. 如果單個礦池算力超過了50%, 或者幾家大礦池私下組成聯盟, 就可以對比特幣系統輕易發起51%攻擊, 壟斷開采權、記賬權、分配權.
其次就是一直受人詬病的能源浪費問題, 礦機夜以繼日地運轉浪費掉大量電力, 而這些能源除了生成比特幣以外沒有任何其他作用.

圖3 比特幣網絡哈希算力變化圖
從圖3中可以看到, 從2013年底開始, 比特幣網絡的算力大體上以指數級別在不斷增長. 2016年7月,哈希算力已經達到1500 000 000GH/s, 表示每秒可以進行15*1017次哈希運算, 據估計, 目前運行比特幣網絡需要的電力會超過1GW(100萬千瓦), 差不多相當于整個愛爾蘭耗費的電力.
最后當我們暢想比特幣網絡的未來時, 難免會看到公地悲劇的影子. 公地悲劇是一種涉及個人利益與公共利益對資源分配有所沖突的社會陷阱, 有限的公共資源被大眾無限攫取就會發生這種情況, 最終資源損耗的代價會轉移到所有可使用資源的人們身上. 比特幣系統中的公地悲劇有兩方面, 分別是用戶群體和礦工群體[26]. 對用戶群體來說, 支付交易費為礦工提供激勵從而保證系統安全涉及到用戶公共利益, 然而對用戶個人而言, 讓其他用戶付交易費是個人利益最大化的途徑, 如果大部分用戶都抱有這種想法, 挖礦最終將會無利可圖, 礦工也不再維護系統. 對于礦工群體來說, 讓用戶每筆交易支付較高交易費有利于公共利益, 但由于將一筆交易打包進區塊的成本相對于區塊交易費來說可以忽略不計, 礦工為了個人利益在交易費極低的情況下也會打包, 就會造成礦工自己將交易費壓低的后果.
3.2 PoS的特點
PoS類似于股東大會決策, 區塊生成由“權益大的股東”說了算, 共識機制設計基礎的轉變帶來以下優點.
首先, PoS使PoW挖礦浪費的問題有所緩解, 在比特幣系統中, 生成區塊的概率和礦工工作量成正比,而在權益證明系統中, 區塊生成的概率和幣齡成正比,因此證明者不要求完成一定數量的計算工作來搶奪打包權, 礦工們也不再需要投入大量錢財進行算力軍備競賽. 其次, 攻擊者對貨幣系統攻擊難度加大, 由于掌握大量貨幣成為了攻擊者實施成功攻擊的必要條件,而在一個活躍的貨幣系統中, 這個代價無疑是高昂的.最后, 能力越大, 責任越大, 維護貨幣系統的責任回歸到了貨幣所有者和利益相關人的身上, 因為這群人持有系統大量貨幣, 一旦網絡遭到攻擊, 貨幣價格下跌, 他們將遭受最大的損失[27].
但PoS共識機制也并不是完美的.
首先是初始幣的分發. 目前使用權益證明機制的加密貨幣使用兩種方式對初始幣進行供應, 一種是初期仍用PoW進行挖礦后期用PoS進行系統維護, 另一種是用IPO(首次公開募股)的方式. 但用后者發行貨幣是缺乏信任基礎的, 貨幣集中在開發者和少數人手中,而不像在PoW機制中每個人都有分得貨幣的機會. 其次是鼓勵了屯幣行為. PoS區塊中的coinstake交易通過銷毀幣齡來生成區塊和獲得利息, 但被打包進區塊的其他普通交易的幣齡也會被重置為零, 這些幣齡并沒有為貨幣持有者帶來利益, 對貨幣持有者來說它們只是白白消失了. 最后是節點離線, 這是PoS機制中的最大問題[28]. 由于幣齡在節點離線時也會累積, 因此節點可能會傾向選擇偶爾上線, 在幣齡累積到一定程度后參與區塊生成, 以此獲利. 缺乏足夠的在線節點將使網絡攻擊變得容易.
3.3 DPoS的特點
DPoS機制類似于現實世界中的董事會決策, 是一種代議制共識, 通過投票機制將所有用戶的權利集中到了少數人手中, 形成一種有約束的中心化, 這種中心化大大加快了交易的確認速度, 確認時間縮短到秒級, 將加密貨幣技術帶到了一個新的層次. 但與現實情況類似的是, 權利一旦集中到少數人手中, 我們就不得不提防這群人是否會為了自身利益損害公正.
以比特股為例, 系統中共選舉出101個代表生成區塊, 第101個代表將獲得交易費用的1/101, 但第102個代表卻一無所獲, 收益的陡峭下降可能會促使第102個代表與某些用戶達成協議, 通過某些手段使自己躋身前101名, 例如和手握股權的人分享部分交易費用. 除此之外, 用戶不得不擔心代表是否會為了賺取交易費而迎合大股東, 做出損害普通用戶利益的事情.
3.4 三種共識機制的比較

圖4 信用的去中心化程度
如圖4所示, 從信用的去中心化角度考慮貨幣系統, 比特幣和法幣是兩個極端. 比特幣系統的信用是完全去中心化的, 貨幣信用依靠算力維持, 但目前可以看出, 算力已經走向中心化, 而法幣信用由政府背書, 是完全中心化的. 點點幣所代表的PoS和比特股所代表的DPoS共識機制介于其間, 屬于信用的部分去中心化. PoS中幣齡的特點導致大股東對系統安全影響較大, 一定程度上用戶需要信任大股東不會做壞事, 因為這會損害他們自身利益, DPoS類似于代議制,選出一定數量代理人維持系統安全, 同樣我們得信任這群代理人能公正辦事.

表1 三種典型共識機制的特征對比
通過表1可以看出, 加密數字貨幣的共識機制由PoW發展到PoS再到DPoS, 權益競爭逐漸部分甚至完全代替了算力競爭, 挖礦成本呈現逐漸降低的趨勢,而交易速度隨著需求增大逐漸提升. 共識機制在發展的過程中, 基于權益所有者不愿意破壞貨幣系統使自身受損的假設, 權益的重要性逐漸被機制設計者們注意到[29]. 但PoS也有不少缺點, 因此出現許多基于PoS進行改進的共識機制, 即PoS的變種, 比如前面提到的PoSV和PoA. DPoS因為其交易速度快以及節能優點, 越來越受到開發者的關注, 以太坊作為有名的“下一代加密貨幣與去中心化應用平臺”, 宣稱將來要將DPoS運用到系統維護中, 雖然現在他們使用的是PoW共識機制.

圖5 系統授權程度與運轉費用關系圖
依據系統授權程度的高低, 可將現有的加密數字貨幣系統分為圖5中的三類[30]. 比特幣系統是典型的無需許可、公共的共享系統, 節點可以隨時自由進入或退出貨幣系統, 所有節點權利也是均等的, 這種完全平等的系統需要達成共識的代價也是最高的, 如果我們將目前為止系統運作的電能費用均攤到每筆被確認的交易上, 每筆交易的確認費用在1-6美元之間, 而這筆錢目前是由礦工和比特幣投機者出的. 因此若想得到良好的去中心化特質就需要付出達成共識的高昂代價.
從左到右的三類系統某種程度上對應著現實生活中的公有鏈、聯盟鏈、私有鏈三種應用場景. PoW作為無授權協議, 更適應于公有鏈系統, 這種系統雖然網絡維護費用高但卻是完全去中心化系統安全運行的保障. PoS作為需要授權但授權程度較低的共識機制,在需要許可的, 公共的共享系統中更有其發揮余地.而DPoS則是需要許可的、私有的共享系統的較好選擇, 因為委托人群體的原因, 保障系統安全運轉無需較大花費.
共識機制是加密貨幣系統的核心, 通過對幾種現有共識機制進行分析比較后, 我們看出在共識機制的發展過程中, 權益機制由于其可以避免資源浪費的天然優勢, 越來越引起人們重視, 而事實也證明, 對基于權益的共識機制進行改進是共識機制未來的一個發展方向.
不同應用場景需要采用不同共識機制, 現有的共識機制都有其缺點, 因此實際中也可以采取將幾種共識機制混合使用的做法, 以便結合發揮彼此長處, 例如以太坊和點點幣都采用的是工作量證明和權益證明的混合機制. 為了避免出現算力集中的問題, 需要在完全去中心化和完全中心化之間尋找一個平衡點, 折中處理, 這也符合現實生活中大部分應用場景的真實情況.
1 Nakamoto S. Bitcoin: A peer-to-peer electronic cash system. 2008.
2 Antonopoulos A. Mastering bitcoin. 2015.
3 譚磊,陳剛.區塊鏈2.0.北京:中國工信出版社,2016.
4 高航,俞學勱,王毛路.區塊鏈與新經濟:數字貨幣2.0時代.北京:電子工業出版社,2016.
5 Castro M, Liskov B. Practical byzantine fault tolerance. In OSDI, 1999.
6 Pinna A, Ruttenberg W. Distributed ledger technologies in securities post-trading revolution or evolution? ECB Occasional Paper, 2016, (172).
7 Fischer MJ, Lynch NA, Paterson MS. Impossibility ofdistributed consensus with one faulty process. Journal of the ACM (JACM), 1985, 32(2): 374–382.
8 Eyal I, Gencer AE, Sirer EG, van Renesse R. Bitcoin-NG: A scalable blockchain protocol. In NSDI, 2016.
9 Lamport L, Shostak R, Pease M. The Byzantine generals problem. ACM Trans. on Programming Languages and Systems, 1982, 4(3): 382–401
10 張錚文.一種用于區塊鏈的拜占庭容錯算法.http://www. onchain.com/paper/66c6773b.pdf, 2016.
11 Pass R, Shi E. Hybrid Consensus: Scalable Permissionless Consensus.
12 Cryptape.共識算法,區塊鏈的引擎. http://cryptape.com/ consensus-the-engine-of-blockchain.html, 2016.
13 崔屹東,鄭曉彤.對新型貨幣比特幣的經濟學分析.現代經濟信息, 2012,(16):8.
14 Sybil attack. https://en.wikipedia.org/wiki/Sybil_attack.
15 Antonopoulos AM. Mastering Bitcoin: Unlocking Digital Crypto-Currencies. Oreilly Media Inc Usa, 2015.
16 Tschorsch F, Scheuermann B. Bitcoin and beyond: A technical survey on decentralized digital currencies. IEEE Communications Surveys & Tutorials, 2015, 18(3): 2084–2123.
17 Garay JA, Kiayias A, Leonardos N. The bitcoin backbone protocol: Analysis and applications. In Eurocrypt, 2015.
18 Bentov I, Gabizon A, Mizrahi A. Cryptocurrencies without proof of work. arXiv preprint arXiv:1406.5694, 2014.
19 King S, Nadal S. Ppcoin: Peer-to-peer crypto-currency with proof-of-stake. self-published paper , 2012.
20 徐明星,劉勇,段新星,郭大治.區塊鏈:重塑經濟與世界.北京:中信出版集團,2016.
21 Houy N. It will cost you nothing to ’kill’ a proof-of-stake crypto-currency. Ssrn Electronic Journal, 2014(2), 1038–1044.
22 Wood G. Ethereum: A secure decentralised generalised transaction ledger. Ethereum Project Yellow Paper, 2014.
23 ThePiachu’s Bitcoin Blog. Thoughts on delegated proof of stake and bitshares. http://www.8btc.com/thoughts-ondelegated-proof-of-stake-and-bitshares, 2014.
24 Larimer D, Kasper L, Schuh F. BitShares 2.0: Financial Smart Contract Platform. 2015.
25 Laszka A, Johnson B, Grossklags J. When bitcoin mining pools run dry. International Conference on Financial Cryptography and Data Security. Springer Berlin Heidelberg. 2015. 63–77.
26 Kroll JA, Davey IC, Felten EW. The economics of Bitcoin mining, or Bitcoin in the presence of adversaries. Proc. WEIS. 2013.
27 BitFury Group . Proof of Stake versus Proof of Work White Paper. http://bitfury.com/content/5-white-papers-research/posvs-pow-1.0.2.pdf. 2015.
28 Lampson B. How to build a highly available system using consensus. Distributed Algorithms, 1996: 1–17.
29 Canetti R. Universally composable security: A new paradigm for cryptographic protocols. In FOCS. 2001.
30 Walport M. Distributed ledger technology: Beyond blockchain. UK Government Office for Science, Tech. Rep, 2016, (19).
Review for Consensus Mechanism of Cryptocurrency System
XIA Qing1,2, ZHANG Feng-Jun1, ZUO Chun31(Research Center for Internet Finance Technology, Institute of Software Chinese Academy of Sciences, Beijing 100190, China) 2(School of Computer and Control Engineering, University of Chinese Academy of Sciences, Beijing 100190, China) 3(Sinosoft Company Limited, Beijing 100190, China)
Consensus mechanism is the core of the cryptocurrency system which is based on the block chain technology. This paper analyzes and compares the three typical consensus mechanisms to provide references and suggestions for the design of consensus mechanism for block chain developers. The basic idea, operation process and advantages and disadvantages of the three mainstream consensus mechanisms, PoW, PoS and DPoS, are analyzed. Then the characteristics of each consensus mechanism are summarized from the aspects of fairness, running cost and sustainability. And then we analyze and compare them from the credit to the degree of decentralization, authorization and other aspects, consider the consensus needs under the different application scenarios. From the application scenario, two or more consensus mechanisms are used in combination to find a suitable balance point between the complete de-centralization and the centralization, which is more in line with the application requirements of the future consensus mechanism.
consensus; cryptocurrency; blockchain; decentralization; development
2016-07-18;收到修改稿時間:2016-10-12
10.15888/j.cnki.csa.005773