夏 清, 張鳳軍, 左 春(中國科學(xué)院軟件研究所 互聯(lián)網(wǎng)金融技術(shù)研究中心, 北京 0090)(中國科學(xué)院大學(xué) 計(jì)算機(jī)與控制學(xué)院, 北京 0090)(中科軟科技股份有限公司, 北京 0090)
加密數(shù)字貨幣系統(tǒng)共識機(jī)制綜述①
夏 清1,2, 張鳳軍1, 左 春31(中國科學(xué)院軟件研究所 互聯(lián)網(wǎng)金融技術(shù)研究中心, 北京 100190)2(中國科學(xué)院大學(xué) 計(jì)算機(jī)與控制學(xué)院, 北京 100190)3(中科軟科技股份有限公司, 北京 100190)
共識機(jī)制是以區(qū)塊鏈技術(shù)為支撐的加密數(shù)字貨幣系統(tǒng)的核心, 分析并比較了現(xiàn)有的三種典型共識機(jī)制,為區(qū)塊鏈開發(fā)者設(shè)計(jì)共識機(jī)制提供參考和建議. 解析了三種主流共識機(jī)制PoW、PoS、DPoS的基本思想、運(yùn)行過程與優(yōu)缺點(diǎn), 隨后從公平性、運(yùn)轉(zhuǎn)開銷、可持續(xù)性等幾個方面歸納出每種共識機(jī)制的特點(diǎn), 然后從信用的去中心化程度、授權(quán)等多個角度進(jìn)行分析比較, 考量不同應(yīng)用場景下的共識需求. 從應(yīng)用場景出發(fā), 將兩種或以上共識機(jī)制結(jié)合使用, 在完全去中心化與中心化中間尋找到適合的平衡點(diǎn), 更符合未來共識機(jī)制的應(yīng)用需求.
共識機(jī)制; 加密數(shù)字貨幣; 區(qū)塊鏈; 去中心化; 開發(fā)
近年來, 以比特幣為代表的加密數(shù)字貨幣使用范圍日益擴(kuò)大, 交易規(guī)模也快速增長, 逐漸引起人們的廣泛關(guān)注. 比特幣系統(tǒng)從2009年開始正式運(yùn)行, 到今天已經(jīng)成功運(yùn)轉(zhuǎn)了7年, 雖然其中經(jīng)歷了幾次貨幣價(jià)格的大漲大跌, 但通過對等網(wǎng)實(shí)現(xiàn)的比特幣自身的匿名性、不可更改、低成本跨境支付[1]等特點(diǎn)使它越來越受到重視, 并為加密數(shù)字貨幣領(lǐng)域的研究發(fā)展提供了新的思路.
區(qū)塊鏈作為比特幣系統(tǒng)的底層支撐技術(shù), 以其具備的分布式、去中心化、可追溯、不可篡改[2]等特點(diǎn), 在全球金融技術(shù)領(lǐng)域掀起一波新的討論熱潮. 區(qū)塊鏈?zhǔn)且环N分布式數(shù)據(jù)庫技術(shù), 它維護(hù)了一個持續(xù)增長并且不可被篡改和修改的數(shù)據(jù)記錄列表, 系統(tǒng)中的有效信息按時(shí)間順序排列存放在一個個區(qū)塊中, 除了創(chuàng)世區(qū)塊外每個區(qū)塊還包含指向前一個區(qū)塊的鏈接信息, 從而形成一個從前往后有序鏈接的數(shù)據(jù)結(jié)構(gòu)鏈條[3]. 區(qū)塊鏈技術(shù)已成為金融技術(shù)領(lǐng)域最具顛覆性的前沿技術(shù),除了數(shù)字貨幣領(lǐng)域外, 金融、物聯(lián)網(wǎng)、公證等其他領(lǐng)域人士也在積極探索基于區(qū)塊鏈的落地項(xiàng)目.
區(qū)塊鏈本質(zhì)上是一種對等的分布式系統(tǒng), 所有節(jié)點(diǎn)共同保障系統(tǒng)的正常運(yùn)行. 在這種分布式系統(tǒng)中,除了互聯(lián)網(wǎng)本身面臨的網(wǎng)絡(luò)延時(shí)、傳輸錯誤等固有問題, 還有由于去中心化而帶來的不能信任任意參與者、可能存在惡意節(jié)點(diǎn)、各方利益不一致導(dǎo)致數(shù)據(jù)分歧等問題, 為了防范這些潛在的威脅, 區(qū)塊鏈系統(tǒng)需要一種共識機(jī)制來使各個節(jié)點(diǎn)達(dá)成共識, 保證數(shù)據(jù)的最終一致性.
在基于區(qū)塊鏈技術(shù)的加密數(shù)字貨幣系統(tǒng)中, 中央銀行的角色不再存在, 貨幣發(fā)行和交易流通的職責(zé)由所有節(jié)點(diǎn)共同承擔(dān)[4]. 選擇哪個節(jié)點(diǎn)來發(fā)行貨幣、如何識別一筆交易是否是雙重支付、交易鏈條出現(xiàn)分叉時(shí)如何處理等重要問題需要節(jié)點(diǎn)采用共識機(jī)制來解決,一個良好的共識機(jī)制是保證數(shù)字貨幣系統(tǒng)準(zhǔn)確高效運(yùn)轉(zhuǎn)的必要條件.
基于此, 本文對數(shù)字貨幣領(lǐng)域?qū)嵺`運(yùn)行的五種共識機(jī)制進(jìn)行研究. 比較典型的有PoW(Proof-of-Work,工作量證明)、PoS(Proof-of-Stake, 權(quán)益證明)及其變種PoSV(Proof-of-Stake-Velocity, 權(quán)益和活動頻率證明)和PoA(Proof-of-Activity, 行動證明)、DPoS(Delegated Proof-of-Stake, 授權(quán)股權(quán)證明), 通過對這些共識機(jī)制的分析比較, 探究在不同的應(yīng)用場景下合適的共識方案.
分布式計(jì)算和多代理系統(tǒng)中的一個基本目標(biāo)是在部分進(jìn)程出錯的前提下實(shí)現(xiàn)整個系統(tǒng)的可靠性[5], 這往往需要在計(jì)算過程中對于某些所需信息達(dá)成一致,例如是否將某個交易提交到數(shù)據(jù)庫, 是否認(rèn)證某個參與者的領(lǐng)導(dǎo)者身份等. 這種為了達(dá)成關(guān)于某個問題的一致意見的過程即是形成共識的過程, 共識問題實(shí)質(zhì)上就是一致性問題[6].
分布式數(shù)據(jù)庫和大多數(shù)的分布式系統(tǒng)都構(gòu)建在一致性問題上, 這個問題聽起來很簡單, 但卻是從上世紀(jì)70年代就開始研究的經(jīng)典問題. Fischer, Lynch和Patterson在1985年發(fā)表的《Impossibility of Distributed Consensuswith One Faulty Process》[7]一文中提出了重要的分布式系統(tǒng)定理——FLP不可能性. 該理論認(rèn)為沒有一個完全異步的共識協(xié)議可以容忍哪怕僅僅一個進(jìn)程失效. FLP定理限定了分布式系統(tǒng)共識算法求解上限.
在比特幣系統(tǒng)中可能存在惡意節(jié)點(diǎn)的情況下, 共識機(jī)制要解決雙重花費(fèi)問題, 并使所有節(jié)點(diǎn)在期限內(nèi)就一個記錄所有交易信息的總賬本達(dá)成一致. 中本聰通過引入經(jīng)濟(jì)激勵和獎懲機(jī)制在算法體系之外對共識機(jī)制進(jìn)行突破, 使比特幣系統(tǒng)以很小的概率出現(xiàn)系統(tǒng)不可用的情況, 滿足實(shí)際應(yīng)用場景.
一個正確的分布式共識協(xié)議需要滿足以下三個條件:
① 協(xié)商——所有節(jié)點(diǎn)針對相同的值進(jìn)行表決;
② 終止——所有節(jié)點(diǎn)在有限時(shí)間內(nèi)達(dá)成一致;
③ 有效——最后達(dá)成一致的值由系統(tǒng)中的節(jié)點(diǎn)提出[8,9].
可以看出, 比特幣的共識協(xié)議均滿足這三個條件,是一個靈巧的針對共識問題的解決方案. 在比特幣系統(tǒng)中, 當(dāng)節(jié)點(diǎn)發(fā)現(xiàn)一個新區(qū)塊后, 立即在全網(wǎng)廣播,所有節(jié)點(diǎn)通過驗(yàn)證區(qū)塊的有效性來決定是否同意該區(qū)塊, 當(dāng)區(qū)塊擁有大多數(shù)節(jié)點(diǎn)的確認(rèn)后, 即可被認(rèn)為有效. 比特幣共識問題就是一個典型的拜占庭將軍問題.
1981年Leslie Lamport在《The Byzantine generals problem》[10]一文中描述分布式系統(tǒng)容錯與一致性問題設(shè)想時(shí)首次提出拜占庭將軍問題. 拜占庭位于現(xiàn)在土耳其的伊斯坦布爾, 是東羅馬帝國的首都. 由于當(dāng)時(shí)拜占庭羅馬帝國國土遼闊, 為了防御敵人, 每個軍隊(duì)都分隔很遠(yuǎn), 將軍與將軍之間只能靠信差傳遞消息.在戰(zhàn)爭時(shí)期, 拜占庭軍隊(duì)內(nèi)所有將軍必須達(dá)成一致共識, 發(fā)現(xiàn)有贏的機(jī)會時(shí)才去攻打敵人的陣營, 但是有些將軍可能是叛徒, 他們會故意發(fā)出錯誤信息竭力擾亂其他人. 忠誠的將軍們?nèi)绾卧谝阎信淹降那闆r下達(dá)成一致協(xié)議, 這就是拜占庭將軍問題. 比特幣的每個節(jié)點(diǎn)可以看做是一位將軍, 將軍們想對系統(tǒng)總賬內(nèi)容達(dá)成一致, 節(jié)點(diǎn)中可能存在惡意節(jié)點(diǎn), 它們想方設(shè)法對總賬內(nèi)容進(jìn)行篡改, 從而使自身獲得更大經(jīng)濟(jì)利益.
在傳統(tǒng)貨幣體系中, 中央銀行擁有貨幣發(fā)行權(quán),負(fù)責(zé)貨幣供給并維持貨幣穩(wěn)定性, 而在以比特幣為代表的加密貨幣體系中, 所有節(jié)點(diǎn)共同協(xié)作實(shí)現(xiàn)中央銀行的兩大功能: 發(fā)行貨幣和維護(hù)一個記錄貨幣所有權(quán)流轉(zhuǎn)的總賬本.
圖1 傳統(tǒng)貨幣體系和比特幣系統(tǒng)對比圖
如圖1所示, 比特幣系統(tǒng)中沒有中央銀行的概念,或者可以理解為系統(tǒng)中的每個參與者都是一個小銀行,因?yàn)槊總€節(jié)點(diǎn)現(xiàn)在都有發(fā)行貨幣的機(jī)會, 同時(shí)也都要維護(hù)一個總賬本, 從而確定貨幣與人的對應(yīng)關(guān)系. 哪個節(jié)點(diǎn)擁有貨幣發(fā)行權(quán), 在貨幣不斷流轉(zhuǎn)的過程中如何明確貨幣所有權(quán), 這就是加密貨幣系統(tǒng)中的共識機(jī)制主要解決的問題[11]. 而貨幣所有權(quán)的確定則是一個更加棘手的問題, 因?yàn)榉植际骄W(wǎng)絡(luò)的種種特點(diǎn), 惡意參與者可能發(fā)起雙重支付、拒絕服務(wù)攻擊等擾亂系統(tǒng)正確運(yùn)行.
依據(jù)貨幣系統(tǒng)網(wǎng)絡(luò)中節(jié)點(diǎn)的權(quán)利大小進(jìn)行分類,共識協(xié)議可分為無授權(quán)(permissionless)協(xié)議和有授權(quán)(permissioned)協(xié)議[12]. 無授權(quán)協(xié)議中典型的是PoW,所有節(jié)點(diǎn)權(quán)利平等, 有授權(quán)協(xié)議中根據(jù)授權(quán)程度的不同, 較典型的有PoS和DPoS. 三種共識機(jī)制分別對應(yīng)不同的應(yīng)用場景, 授權(quán)程度由弱到強(qiáng), 因此下文將對這三種典型共識機(jī)制進(jìn)行介紹、分析與比較, 同時(shí)展望加密數(shù)字貨幣共識機(jī)制的未來.
2.1 PoW
PoW即工作量證明, 是比特幣系統(tǒng)中采用的共識機(jī)制. 比特幣交易的合法性是由整個網(wǎng)絡(luò)合力驗(yàn)證的,只有大多數(shù)參與者認(rèn)同某筆交易, 該交易才被視為有效[13]. 然而, 在這種機(jī)制下, 假身份的問題凸顯出來,即敵手可能發(fā)起女巫攻擊(Sybil attack)[14]. 交易發(fā)起方可以偽造多個身份, 隨后對自己的交易進(jìn)行確認(rèn),由于“大多數(shù)人”都認(rèn)同這筆交易, 即便是雙重支付,接收方也會相信并接受該交易. 基于控制系統(tǒng)中大部分算力比控制大部分實(shí)體難得多的假設(shè), 比特幣協(xié)議使用工作量證明來防止女巫攻擊. 在確認(rèn)交易前, 參與者需要做一些工作來證明他們的真實(shí)實(shí)體身份, 這項(xiàng)工作是解決一個密碼學(xué)難題, 人為地提高了確認(rèn)交易的計(jì)算成本. 因此, 驗(yàn)證交易的能力取決于算力,而不是實(shí)體身份數(shù)量.
比特幣系統(tǒng)中不斷產(chǎn)生新交易, 節(jié)點(diǎn)需要將合法交易放進(jìn)一個區(qū)塊中. 區(qū)塊頭由版本號、前一個區(qū)塊哈希值、Merkle根、時(shí)間戳、難度目標(biāo)和隨機(jī)數(shù)六部分組成, 參與者需要尋找隨機(jī)數(shù)使區(qū)塊頭哈希值小于或等于難度目標(biāo)[15]. 比特幣協(xié)議中使用SHA-256哈希算法, 除非算法被攻破, 否則最有成效的方法是嘗試不同隨機(jī)數(shù), 直到滿足目標(biāo), 例如, 難度目標(biāo)為二進(jìn)制哈希值以48個0開頭, 則平均要經(jīng)過248次嘗試才能解決難題.
難度目標(biāo)每經(jīng)過2016個區(qū)塊后會進(jìn)行調(diào)整, 使區(qū)塊的平均速度保持在每10分鐘一個, 因此每兩周(2016*10min)難度目標(biāo)會更新, 新難度值T的計(jì)算公式為:
其中,prevT是舊難度目標(biāo),actualt是最近產(chǎn)生的2016個區(qū)塊的實(shí)際花費(fèi)時(shí)間. 難度目標(biāo)值越小, 尋找到滿足條件的隨機(jī)數(shù)就越困難, 如果actualt小于兩周時(shí)間, 意味著區(qū)塊確認(rèn)速度加快, 網(wǎng)絡(luò)算力提升, 因此新難度值將變小使區(qū)塊平均生成時(shí)間延長從而保持系統(tǒng)穩(wěn)定性.
解決工作量證明難題需要花費(fèi)算力, 實(shí)際上就是花費(fèi)金錢, 為了鼓勵節(jié)點(diǎn)共同參與進(jìn)來維護(hù)網(wǎng)絡(luò)安全,比特幣協(xié)議提供了一個激勵機(jī)制, 給第一個解決數(shù)學(xué)難題的節(jié)點(diǎn)一筆回報(bào), 包括挖礦獎勵和交易費(fèi). 比特幣區(qū)塊的第一筆交易被稱為coinbase交易, 在此交易中系統(tǒng)將一定數(shù)量的比特幣發(fā)送到解決工作量證明難題的礦工賬戶. 挖礦獎勵最開始設(shè)置為50個比特幣,每經(jīng)過210000個區(qū)塊(即接近四年的時(shí)間)獎勵減半,預(yù)計(jì)到2140年左右比特幣開采完畢, 隨后網(wǎng)絡(luò)安全的維護(hù)全取決于交易費(fèi), 挖出來的共21*106個比特幣在系統(tǒng)內(nèi)流通[16]. 激勵機(jī)制既是貨幣發(fā)行手段, 同時(shí)也保障了系統(tǒng)的網(wǎng)絡(luò)安全.
比特幣系統(tǒng)中的主鏈定義為累積了最多難度的區(qū)塊鏈, 一般情況下, 也是包含最多區(qū)塊的那個鏈. 當(dāng)兩個區(qū)塊在較短的相隔時(shí)間內(nèi)被挖出來時(shí), 主鏈就會產(chǎn)生分叉, 此時(shí)系統(tǒng)會將分支保留, 如果在未來的某個時(shí)刻他們中的一個延長了并且在難度值上超過了主鏈, 那么后續(xù)的區(qū)塊就會引用它們.
工作量證明機(jī)制從貨幣供應(yīng)、防止雙重支付、采取激勵措施保證安全、在有限時(shí)間內(nèi)對于交易達(dá)成一致四個方面保障了比特幣系統(tǒng)的安全運(yùn)行, 為拜占庭將軍問題提供了一種解法[17].
2.2 PoS
比特幣網(wǎng)絡(luò)的安全由物理稀缺資源進(jìn)行保障, 包括執(zhí)行哈希操作的物理硬件和電力兩部分, 為了增加挖礦報(bào)酬, 礦工們不得不參與競爭日益激烈的挖礦軍備競賽, 因此從能源角度來看, 工作量證明是一種生態(tài)不友好的共識機(jī)制, 這也導(dǎo)致了能源消耗較少的共識機(jī)制——權(quán)益證明的出現(xiàn)[18].
權(quán)益證明即PoS, 目前點(diǎn)點(diǎn)幣(Peercoin)[19]、未來幣(Nextcoin)等多種加密貨幣都使用了這種共識機(jī)制,它的出發(fā)點(diǎn)在于解決工作量證明的能源浪費(fèi)問題. 權(quán)益證明基于幣齡的概念, 幣齡被定義為貨幣數(shù)量和貨幣持有時(shí)間的乘積, 例如, Bob從Alice那里收到了兩個幣, 并持有了90天, 那么Bob就收集到了180幣天(2*90)的幣齡, 而當(dāng)Bob將這筆錢花費(fèi)以后, 收集到的幣齡則被銷毀. 權(quán)益證明蘊(yùn)含的理念是區(qū)塊鏈應(yīng)該由那些在其中具有經(jīng)濟(jì)權(quán)益的人進(jìn)行保障.
PoS挖礦在2012年由匿名開發(fā)者Sunny King發(fā)布的點(diǎn)點(diǎn)幣中首次實(shí)現(xiàn). 在點(diǎn)點(diǎn)幣區(qū)塊中有一個稱為coinstake的交易, 命名類似于比特幣區(qū)塊中的coinbase交易. 在coinstake交易中, 規(guī)定貨幣所有者將持有的貨幣發(fā)送給他們自己(保證生成權(quán)益區(qū)塊后幣齡歸零), 用來產(chǎn)生點(diǎn)點(diǎn)幣區(qū)塊并得到部分利息, 得到利息幣的代價(jià)是幣齡的消耗. 和比特幣系統(tǒng)中類似的是, 點(diǎn)點(diǎn)幣區(qū)塊也要求參與者尋找隨機(jī)數(shù)使區(qū)塊頭哈希值滿足目標(biāo)難度, 不同之處在于點(diǎn)點(diǎn)幣系統(tǒng)中每個參與者產(chǎn)生區(qū)塊的難度目標(biāo)值各不相同, 難度目標(biāo)和coinstake交易中消耗的幣齡成反比, 參與者累積的幣齡越多, 生成區(qū)塊的幾率也就越大[20].
可以將PoS中幣齡的概念想象為PoW中的算力,如果某人將一大筆錢持有很長一段時(shí)間, 那他在下次挖礦中就相當(dāng)于擁有一次使用強(qiáng)有力的ASIC礦機(jī)的機(jī)會, 但這種機(jī)會不依賴于硬件設(shè)施的購買和電力的消耗, 而是取決于用戶在系統(tǒng)中的存款以及儲蓄時(shí)間.不同于PoW挖礦中競賽的性質(zhì), PoS更像是抽獎, 累積幣齡越多越有機(jī)會中獎, 而一旦中獎由于幣齡已經(jīng)被消耗, 再次中獎概率就降低了, 避免了“富人越富”[21]情況的發(fā)生.
PoS中將主鏈定義為消耗幣齡最高的鏈, 每個區(qū)塊的交易都會將其消耗的幣齡提交給該區(qū)塊, 以增加區(qū)塊得分. 在這種情況下, 攻擊者如果想發(fā)起對主鏈的攻擊, 必須要擁有一大筆錢, 并且要累積到足夠多的幣齡才行, 攻擊者得到PoS系統(tǒng)中一大筆錢的花費(fèi)似乎比掌握比特幣系統(tǒng)中大部分算力代價(jià)更高, 而且一旦實(shí)施攻擊, 破壞貨幣體系的同時(shí)自身擁有的大量貨幣也會受損, 這可能從一開始就降低了攻擊者的行為動機(jī). 而一旦區(qū)塊生成后幣齡立即清零, 這也保障了攻擊者不能進(jìn)行持續(xù)攻擊.
在PoS出現(xiàn)后, 一些針對其中某個缺點(diǎn)進(jìn)行修改而誕生的新協(xié)議被稱作PoS的衍生協(xié)議, 比如PoSV和PoA[22].
PoSV針對PoS中幣齡是時(shí)間的線性函數(shù)這一問題進(jìn)行改進(jìn), 致力于消除貨幣持有者的屯幣現(xiàn)象. PoSV意為權(quán)益和活動頻率證明, 是瑞迪幣(Reddcoin)目前使用的共識機(jī)制, 瑞迪幣在前期使用POW進(jìn)行幣的分發(fā), 后期使用PoSV維護(hù)網(wǎng)絡(luò)長期安全. PoSV將PoS中幣齡和時(shí)間的線性函數(shù)修改為指數(shù)式衰減函數(shù), 即幣齡的增長率隨時(shí)間逐漸減少最后趨于零,因此新幣的幣齡比老幣增長得更快, 直到達(dá)到上限閾值,這樣在一定程度上緩和了貨幣持有者屯幣現(xiàn)象.
PoA意為行動證明, 也是POS的一種改進(jìn)方案.它的本質(zhì)是通過獎勵參與度高的貨幣持有者而不是懲罰消極參與者來維護(hù)系統(tǒng)安全. PoA將PoW和PoS結(jié)合在一起, 主要思想是將PoW挖礦生成幣的一部分以抽獎的方式分發(fā)給所有活躍節(jié)點(diǎn), 而節(jié)點(diǎn)擁有的股權(quán)與抽獎券的數(shù)量即抽中概率成正比.
2.3 DPoS
為了進(jìn)一步加快交易速度, 同時(shí)解決PoS中節(jié)點(diǎn)離線也能累積幣齡的安全問題, Daniel Larimer于2014年4月提出DPoS[23]. DPoS是PoS的衍生物, 意為股份授權(quán)證明機(jī)制, 股東們將權(quán)利授予一定數(shù)量的受托人(delegates), 由受托人負(fù)責(zé)維護(hù)貨幣系統(tǒng)運(yùn)行, 這在某種程度上類似于代議制制度, 但和現(xiàn)實(shí)中的議會議員有所不同的是, 選民有權(quán)在一段時(shí)間后根據(jù)受托人的表現(xiàn)重新選舉, 如果對他們的工作表現(xiàn)不滿意, 也可以要求罷免受托人. DPoS目前是比特股、Crypti平臺內(nèi)置的共識機(jī)制.
在DPoS中, 股東投票給某個受托人, 系統(tǒng)根據(jù)股東所持股權(quán)在系統(tǒng)中占比計(jì)算出票數(shù)最高的一定數(shù)量受托人, 受托人們按照事先規(guī)定的順序輪流負(fù)責(zé)生成區(qū)塊. 通過所有股東的投票后, 系統(tǒng)中的信任已經(jīng)由全體參與者集中到了少數(shù)參與者, 節(jié)點(diǎn)發(fā)起交易后不用再等待相當(dāng)數(shù)量未授信任節(jié)點(diǎn)的確認(rèn), 而只需要讓受托人對交易進(jìn)行驗(yàn)證, 這就大大縮短了交易的確認(rèn)時(shí)間. 例如, 比特股可以達(dá)到每個塊10秒的區(qū)塊生成速度, 相比于比特幣平均每個區(qū)塊接近10分鐘的生成時(shí)間有了重大提升.
在一些DPoS協(xié)議版本中, 節(jié)點(diǎn)要獲得競爭成為受托人的資格首先得付出一定代價(jià), 比如繳納一筆保證金到某個安全賬戶, 如果節(jié)點(diǎn)作惡保證金將被沒收[24].受托人維護(hù)系統(tǒng)運(yùn)行將獲得報(bào)酬, 他將與其他受托人共享區(qū)塊交易費(fèi), 酬勞對其形成正向反饋從而激勵受托人更加努力維護(hù)系統(tǒng)安全. 由于區(qū)塊被受托人輪流簽署, 如果某位受托人因離線錯過了簽署區(qū)塊, 他將面臨被其他候選受托人取代的風(fēng)險(xiǎn), 因此為了營利,受托人必須保證充足的在線時(shí)間. 需要繳納保證金的這種DPoS協(xié)議也被稱作基于存款的股權(quán)證明協(xié)議(deposit-based proof of stake).
3.1 PoW的特點(diǎn)
工作量證明的最大特點(diǎn)及優(yōu)點(diǎn)體現(xiàn)在協(xié)議的公平性上, 具體表現(xiàn)為若礦工所持算力占全網(wǎng)總算力的p%, 則相應(yīng)地有p%的可能性生成區(qū)塊并獲得報(bào)酬.這也側(cè)面說明了攻擊的困難性, 攻擊者的算力需要同全網(wǎng)其它誠實(shí)結(jié)點(diǎn)共同競爭才能生成對其“有利”的區(qū)塊. 工作量證明算法保障著比特幣網(wǎng)絡(luò)從誕生開始安全運(yùn)行至今, 然而隨著越來越多人使用比特幣進(jìn)行交易, 它的缺陷逐漸體現(xiàn)出來. 工作量證明的初衷是采用“一個CPU一票”的“全民”公投方式達(dá)到去中心化民主實(shí)現(xiàn)共識, 這種方式達(dá)成共識是一個耗時(shí)的過程.此外, 由于比特幣價(jià)格上漲, 利益驅(qū)動使市場上出現(xiàn)專業(yè)挖礦設(shè)備, 購置礦機(jī)的用戶數(shù)量增多導(dǎo)致越來越多小礦工的流失, 民主基礎(chǔ)受到損害, 壟斷問題凸顯出來[25].
隨著越來越多用戶參與比特幣挖礦, 為了降低挖礦門檻, 也為了提升比特幣開采穩(wěn)定性使礦工薪酬趨于平穩(wěn), 系統(tǒng)中出現(xiàn)眾多商業(yè)礦池. 礦池一般是對外開放的團(tuán)隊(duì)開采服務(wù)器, 將眾多用戶的算力匯聚到一起組隊(duì)進(jìn)行挖礦, 目前較為著名的有AntPool, F2Pool, BW.COM, BTCC Pool等.
圖2 比特幣礦池哈希算力分布
如圖2所示, 在截止至2016年7月14日的前四天時(shí)間中, 超過50%的區(qū)塊被前三大礦池開采出, 超過80%的區(qū)塊被前六大礦池開采出, 礦池掌握了及其龐大的算力資源是不可否認(rèn)的事實(shí). 在PoW的共識機(jī)制中, 算力即代表著記賬權(quán). 如果單個礦池算力超過了50%, 或者幾家大礦池私下組成聯(lián)盟, 就可以對比特幣系統(tǒng)輕易發(fā)起51%攻擊, 壟斷開采權(quán)、記賬權(quán)、分配權(quán).
其次就是一直受人詬病的能源浪費(fèi)問題, 礦機(jī)夜以繼日地運(yùn)轉(zhuǎn)浪費(fèi)掉大量電力, 而這些能源除了生成比特幣以外沒有任何其他作用.
圖3 比特幣網(wǎng)絡(luò)哈希算力變化圖
從圖3中可以看到, 從2013年底開始, 比特幣網(wǎng)絡(luò)的算力大體上以指數(shù)級別在不斷增長. 2016年7月,哈希算力已經(jīng)達(dá)到1500 000 000GH/s, 表示每秒可以進(jìn)行15*1017次哈希運(yùn)算, 據(jù)估計(jì), 目前運(yùn)行比特幣網(wǎng)絡(luò)需要的電力會超過1GW(100萬千瓦), 差不多相當(dāng)于整個愛爾蘭耗費(fèi)的電力.
最后當(dāng)我們暢想比特幣網(wǎng)絡(luò)的未來時(shí), 難免會看到公地悲劇的影子. 公地悲劇是一種涉及個人利益與公共利益對資源分配有所沖突的社會陷阱, 有限的公共資源被大眾無限攫取就會發(fā)生這種情況, 最終資源損耗的代價(jià)會轉(zhuǎn)移到所有可使用資源的人們身上. 比特幣系統(tǒng)中的公地悲劇有兩方面, 分別是用戶群體和礦工群體[26]. 對用戶群體來說, 支付交易費(fèi)為礦工提供激勵從而保證系統(tǒng)安全涉及到用戶公共利益, 然而對用戶個人而言, 讓其他用戶付交易費(fèi)是個人利益最大化的途徑, 如果大部分用戶都抱有這種想法, 挖礦最終將會無利可圖, 礦工也不再維護(hù)系統(tǒng). 對于礦工群體來說, 讓用戶每筆交易支付較高交易費(fèi)有利于公共利益, 但由于將一筆交易打包進(jìn)區(qū)塊的成本相對于區(qū)塊交易費(fèi)來說可以忽略不計(jì), 礦工為了個人利益在交易費(fèi)極低的情況下也會打包, 就會造成礦工自己將交易費(fèi)壓低的后果.
3.2 PoS的特點(diǎn)
PoS類似于股東大會決策, 區(qū)塊生成由“權(quán)益大的股東”說了算, 共識機(jī)制設(shè)計(jì)基礎(chǔ)的轉(zhuǎn)變帶來以下優(yōu)點(diǎn).
首先, PoS使PoW挖礦浪費(fèi)的問題有所緩解, 在比特幣系統(tǒng)中, 生成區(qū)塊的概率和礦工工作量成正比,而在權(quán)益證明系統(tǒng)中, 區(qū)塊生成的概率和幣齡成正比,因此證明者不要求完成一定數(shù)量的計(jì)算工作來搶奪打包權(quán), 礦工們也不再需要投入大量錢財(cái)進(jìn)行算力軍備競賽. 其次, 攻擊者對貨幣系統(tǒng)攻擊難度加大, 由于掌握大量貨幣成為了攻擊者實(shí)施成功攻擊的必要條件,而在一個活躍的貨幣系統(tǒng)中, 這個代價(jià)無疑是高昂的.最后, 能力越大, 責(zé)任越大, 維護(hù)貨幣系統(tǒng)的責(zé)任回歸到了貨幣所有者和利益相關(guān)人的身上, 因?yàn)檫@群人持有系統(tǒng)大量貨幣, 一旦網(wǎng)絡(luò)遭到攻擊, 貨幣價(jià)格下跌, 他們將遭受最大的損失[27].
但PoS共識機(jī)制也并不是完美的.
首先是初始幣的分發(fā). 目前使用權(quán)益證明機(jī)制的加密貨幣使用兩種方式對初始幣進(jìn)行供應(yīng), 一種是初期仍用PoW進(jìn)行挖礦后期用PoS進(jìn)行系統(tǒng)維護(hù), 另一種是用IPO(首次公開募股)的方式. 但用后者發(fā)行貨幣是缺乏信任基礎(chǔ)的, 貨幣集中在開發(fā)者和少數(shù)人手中,而不像在PoW機(jī)制中每個人都有分得貨幣的機(jī)會. 其次是鼓勵了屯幣行為. PoS區(qū)塊中的coinstake交易通過銷毀幣齡來生成區(qū)塊和獲得利息, 但被打包進(jìn)區(qū)塊的其他普通交易的幣齡也會被重置為零, 這些幣齡并沒有為貨幣持有者帶來利益, 對貨幣持有者來說它們只是白白消失了. 最后是節(jié)點(diǎn)離線, 這是PoS機(jī)制中的最大問題[28]. 由于幣齡在節(jié)點(diǎn)離線時(shí)也會累積, 因此節(jié)點(diǎn)可能會傾向選擇偶爾上線, 在幣齡累積到一定程度后參與區(qū)塊生成, 以此獲利. 缺乏足夠的在線節(jié)點(diǎn)將使網(wǎng)絡(luò)攻擊變得容易.
3.3 DPoS的特點(diǎn)
DPoS機(jī)制類似于現(xiàn)實(shí)世界中的董事會決策, 是一種代議制共識, 通過投票機(jī)制將所有用戶的權(quán)利集中到了少數(shù)人手中, 形成一種有約束的中心化, 這種中心化大大加快了交易的確認(rèn)速度, 確認(rèn)時(shí)間縮短到秒級, 將加密貨幣技術(shù)帶到了一個新的層次. 但與現(xiàn)實(shí)情況類似的是, 權(quán)利一旦集中到少數(shù)人手中, 我們就不得不提防這群人是否會為了自身利益損害公正.
以比特股為例, 系統(tǒng)中共選舉出101個代表生成區(qū)塊, 第101個代表將獲得交易費(fèi)用的1/101, 但第102個代表卻一無所獲, 收益的陡峭下降可能會促使第102個代表與某些用戶達(dá)成協(xié)議, 通過某些手段使自己躋身前101名, 例如和手握股權(quán)的人分享部分交易費(fèi)用. 除此之外, 用戶不得不擔(dān)心代表是否會為了賺取交易費(fèi)而迎合大股東, 做出損害普通用戶利益的事情.
3.4 三種共識機(jī)制的比較
圖4 信用的去中心化程度
如圖4所示, 從信用的去中心化角度考慮貨幣系統(tǒng), 比特幣和法幣是兩個極端. 比特幣系統(tǒng)的信用是完全去中心化的, 貨幣信用依靠算力維持, 但目前可以看出, 算力已經(jīng)走向中心化, 而法幣信用由政府背書, 是完全中心化的. 點(diǎn)點(diǎn)幣所代表的PoS和比特股所代表的DPoS共識機(jī)制介于其間, 屬于信用的部分去中心化. PoS中幣齡的特點(diǎn)導(dǎo)致大股東對系統(tǒng)安全影響較大, 一定程度上用戶需要信任大股東不會做壞事, 因?yàn)檫@會損害他們自身利益, DPoS類似于代議制,選出一定數(shù)量代理人維持系統(tǒng)安全, 同樣我們得信任這群代理人能公正辦事.
表1 三種典型共識機(jī)制的特征對比
通過表1可以看出, 加密數(shù)字貨幣的共識機(jī)制由PoW發(fā)展到PoS再到DPoS, 權(quán)益競爭逐漸部分甚至完全代替了算力競爭, 挖礦成本呈現(xiàn)逐漸降低的趨勢,而交易速度隨著需求增大逐漸提升. 共識機(jī)制在發(fā)展的過程中, 基于權(quán)益所有者不愿意破壞貨幣系統(tǒng)使自身受損的假設(shè), 權(quán)益的重要性逐漸被機(jī)制設(shè)計(jì)者們注意到[29]. 但PoS也有不少缺點(diǎn), 因此出現(xiàn)許多基于PoS進(jìn)行改進(jìn)的共識機(jī)制, 即PoS的變種, 比如前面提到的PoSV和PoA. DPoS因?yàn)槠浣灰姿俣瓤煲约肮?jié)能優(yōu)點(diǎn), 越來越受到開發(fā)者的關(guān)注, 以太坊作為有名的“下一代加密貨幣與去中心化應(yīng)用平臺”, 宣稱將來要將DPoS運(yùn)用到系統(tǒng)維護(hù)中, 雖然現(xiàn)在他們使用的是PoW共識機(jī)制.
圖5 系統(tǒng)授權(quán)程度與運(yùn)轉(zhuǎn)費(fèi)用關(guān)系圖
依據(jù)系統(tǒng)授權(quán)程度的高低, 可將現(xiàn)有的加密數(shù)字貨幣系統(tǒng)分為圖5中的三類[30]. 比特幣系統(tǒng)是典型的無需許可、公共的共享系統(tǒng), 節(jié)點(diǎn)可以隨時(shí)自由進(jìn)入或退出貨幣系統(tǒng), 所有節(jié)點(diǎn)權(quán)利也是均等的, 這種完全平等的系統(tǒng)需要達(dá)成共識的代價(jià)也是最高的, 如果我們將目前為止系統(tǒng)運(yùn)作的電能費(fèi)用均攤到每筆被確認(rèn)的交易上, 每筆交易的確認(rèn)費(fèi)用在1-6美元之間, 而這筆錢目前是由礦工和比特幣投機(jī)者出的. 因此若想得到良好的去中心化特質(zhì)就需要付出達(dá)成共識的高昂代價(jià).
從左到右的三類系統(tǒng)某種程度上對應(yīng)著現(xiàn)實(shí)生活中的公有鏈、聯(lián)盟鏈、私有鏈三種應(yīng)用場景. PoW作為無授權(quán)協(xié)議, 更適應(yīng)于公有鏈系統(tǒng), 這種系統(tǒng)雖然網(wǎng)絡(luò)維護(hù)費(fèi)用高但卻是完全去中心化系統(tǒng)安全運(yùn)行的保障. PoS作為需要授權(quán)但授權(quán)程度較低的共識機(jī)制,在需要許可的, 公共的共享系統(tǒng)中更有其發(fā)揮余地.而DPoS則是需要許可的、私有的共享系統(tǒng)的較好選擇, 因?yàn)槲腥巳后w的原因, 保障系統(tǒng)安全運(yùn)轉(zhuǎn)無需較大花費(fèi).
共識機(jī)制是加密貨幣系統(tǒng)的核心, 通過對幾種現(xiàn)有共識機(jī)制進(jìn)行分析比較后, 我們看出在共識機(jī)制的發(fā)展過程中, 權(quán)益機(jī)制由于其可以避免資源浪費(fèi)的天然優(yōu)勢, 越來越引起人們重視, 而事實(shí)也證明, 對基于權(quán)益的共識機(jī)制進(jìn)行改進(jìn)是共識機(jī)制未來的一個發(fā)展方向.
不同應(yīng)用場景需要采用不同共識機(jī)制, 現(xiàn)有的共識機(jī)制都有其缺點(diǎn), 因此實(shí)際中也可以采取將幾種共識機(jī)制混合使用的做法, 以便結(jié)合發(fā)揮彼此長處, 例如以太坊和點(diǎn)點(diǎn)幣都采用的是工作量證明和權(quán)益證明的混合機(jī)制. 為了避免出現(xiàn)算力集中的問題, 需要在完全去中心化和完全中心化之間尋找一個平衡點(diǎn), 折中處理, 這也符合現(xiàn)實(shí)生活中大部分應(yīng)用場景的真實(shí)情況.
1 Nakamoto S. Bitcoin: A peer-to-peer electronic cash system. 2008.
2 Antonopoulos A. Mastering bitcoin. 2015.
3 譚磊,陳剛.區(qū)塊鏈2.0.北京:中國工信出版社,2016.
4 高航,俞學(xué)勱,王毛路.區(qū)塊鏈與新經(jīng)濟(jì):數(shù)字貨幣2.0時(shí)代.北京:電子工業(yè)出版社,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 張錚文.一種用于區(qū)塊鏈的拜占庭容錯算法.http://www. onchain.com/paper/66c6773b.pdf, 2016.
11 Pass R, Shi E. Hybrid Consensus: Scalable Permissionless Consensus.
12 Cryptape.共識算法,區(qū)塊鏈的引擎. http://cryptape.com/ consensus-the-engine-of-blockchain.html, 2016.
13 崔屹東,鄭曉彤.對新型貨幣比特幣的經(jīng)濟(jì)學(xué)分析.現(xiàn)代經(jīng)濟(jì)信息, 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 徐明星,劉勇,段新星,郭大治.區(qū)塊鏈:重塑經(jīng)濟(jì)與世界.北京:中信出版集團(tuán),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;收到修改稿時(shí)間:2016-10-12
10.15888/j.cnki.csa.005773