? ? ? ?本文對區(qū)塊鏈中的共識機(jī)制從基本概念、主要類型、優(yōu)缺點(diǎn)和適用范圍四個(gè)方面做了初步調(diào)研,并且設(shè)想了下一代共識機(jī)制的發(fā)展趨勢。
1.?共識機(jī)制簡介
區(qū)塊鏈系統(tǒng)本質(zhì)就是一個(gè)去中心化的分布式系統(tǒng)。分布式系統(tǒng)的首要問題是如何解決一致性的問題,即在多個(gè)獨(dú)立節(jié)點(diǎn)之間達(dá)成共識。但是在去中心化的場景下,達(dá)成共識會(huì)受到很多制約因素,比如節(jié)點(diǎn)之間的通信延遲、通信故障、甚至節(jié)點(diǎn)宕機(jī)。解決分布式系統(tǒng)中的一致性問題的難點(diǎn)主要體現(xiàn)在三方面:
分布式系統(tǒng)本身可能出現(xiàn)故障;
分布式系統(tǒng)的節(jié)點(diǎn)通信延遲;
分布式系統(tǒng)中節(jié)點(diǎn)處理事務(wù)的效率不一致。
在區(qū)塊鏈里,共識機(jī)制的目標(biāo)就是解決一致性問題,使所有的誠實(shí)節(jié)點(diǎn)保存一致的區(qū)塊鏈視圖。具體一點(diǎn)說,區(qū)塊鏈上的共識機(jī)制主要解決由誰來構(gòu)造區(qū)塊,以及如何維護(hù)區(qū)塊鏈統(tǒng)一的問題,該問題的理論基礎(chǔ)是拜占庭容錯(cuò)(Byzantine Fault-Tolerant,BFT)。BFT從上世紀(jì)80年代開始被研究,考慮在通信各方存在故意破壞者或者叛徒的情況下,如何在整體上保持正確地一致性的問題。區(qū)塊鏈的共識機(jī)制可以保證只要整個(gè)網(wǎng)絡(luò)中的絕大部分節(jié)點(diǎn)都是正常工作的,整個(gè)系統(tǒng)總能在未來某一時(shí)刻達(dá)成數(shù)據(jù)狀態(tài)的一致。
區(qū)塊鏈解決了在不可信信道上傳輸可信信息、價(jià)值轉(zhuǎn)移的問題,而共識機(jī)制解決了區(qū)塊鏈如何在分布式場景下達(dá)成一致性的問題。所以共識機(jī)制在去中心化的思想上解決了節(jié)點(diǎn)間互相信任的問題。區(qū)塊鏈能在眾多節(jié)點(diǎn)達(dá)到一種較為平衡的狀態(tài)也是因?yàn)楣沧R機(jī)制。盡管密碼學(xué)保障了區(qū)塊鏈數(shù)據(jù)傳輸?shù)陌踩?,但是共識機(jī)制是保障區(qū)塊鏈系統(tǒng)不斷運(yùn)行下去的關(guān)鍵。當(dāng)下分布式系統(tǒng)的共識算法設(shè)計(jì)原則遵從兩個(gè)定理:FLP定理和CAP定理。
FLP定理[1]由Fischer, Lynch和Patterson三位作者在1985年提出,其定義為:在網(wǎng)絡(luò)可靠、存在節(jié)點(diǎn)失效的最小化異步模型系統(tǒng)中,不存在一個(gè)解決一致性問題的確定性算法。也就是說不可能為異步分布式系統(tǒng)設(shè)計(jì)出一個(gè)在任何場景都能實(shí)現(xiàn)共識的算法,在允許節(jié)點(diǎn)失效的情況下,純粹異步系統(tǒng)無法確保在有限時(shí)間內(nèi)達(dá)成一致性。
CAP定理[2]最早由Eric Brewer 在2000年ACM一個(gè)研討會(huì)提出,其定義了分布式計(jì)算系統(tǒng)不可能同時(shí)確保一致性(consistency)、可用性(availability)和分區(qū)容錯(cuò)性(partition tolerance)。那么就意味著所有共識機(jī)制的設(shè)計(jì)都是根據(jù)具體的業(yè)務(wù)場景來在這三者之間尋求折中。
結(jié)合以上兩個(gè)定理,在分布式場景下達(dá)成完全一致性是不可能的。但是可以犧牲一部分代價(jià)來換取分布式場景的一致性,所以基于區(qū)塊鏈設(shè)計(jì)的各種公式機(jī)制都可以看作犧牲一部分代價(jià)來換取更適合的一致性,我們可以著力于在這種思想上進(jìn)行一個(gè)靈活的變換,即在適當(dāng)?shù)臅r(shí)間空間犧牲一部分代價(jià)換取適應(yīng)于當(dāng)時(shí)場景的一致性,從而實(shí)現(xiàn)靈活的區(qū)塊鏈系統(tǒng),即可插拔式的區(qū)塊鏈系統(tǒng),比如IBM Hyperledger Fabric[13]。
2.?主要類型
根據(jù)分布式系統(tǒng)中根據(jù)有無作惡節(jié)點(diǎn),可以將共識機(jī)制分為兩個(gè)大類:拜占庭容錯(cuò)和非拜占庭容錯(cuò)機(jī)制。本節(jié)介紹四種主流共識機(jī)制類型。
Paxos算法
Paxos算法[3]1988年由Lamport提出,解決的是非拜占庭將軍問題,也就是假設(shè)分布式系統(tǒng)中的節(jié)點(diǎn)存在故障,但是不存在惡意節(jié)點(diǎn),如何在這種情況下達(dá)成共識,Google的分布式鎖系統(tǒng)Chubby采用了該算法。Paxos可以保證在超過一半的正常節(jié)點(diǎn)存在時(shí),系統(tǒng)達(dá)成共識。
Paxos算法基于選舉領(lǐng)導(dǎo)者的共識機(jī)制。領(lǐng)導(dǎo)者節(jié)點(diǎn)擁有絕對權(quán)限,并允許強(qiáng)監(jiān)督節(jié)點(diǎn)參與,其性能高,資源消耗低。所有節(jié)點(diǎn)一般有線下準(zhǔn)入機(jī)制,但選舉過程中不允許有作惡節(jié)點(diǎn),不具備容錯(cuò)性。
基于CAP定理,Paxos算法有了一系列變體,Paxos算法系列適用于相對私有的環(huán)境中或者網(wǎng)絡(luò)環(huán)境較好的情況。因?yàn)楣?jié)點(diǎn)在確認(rèn)之前需要做一個(gè)自身評估來判斷是否收到大多數(shù)回復(fù),當(dāng)節(jié)點(diǎn)數(shù)不固定的時(shí)候,這個(gè)判斷就會(huì)很難做出,算法效果就會(huì)不理想。
Raft算法
基于Paxos算法晦澀難懂和工程上難以實(shí)現(xiàn)的不足,2013年,斯坦福大學(xué)的Diego
Ongaro和John Ousterhout設(shè)計(jì)了Raft算法[4]。RAFT核心思想大致是:如果多個(gè)數(shù)據(jù)庫初始狀態(tài)一致,只要之后進(jìn)行的操作一致,就能保證之后的數(shù)據(jù)一致。相比于Paxos算法,Raft更易于理解和實(shí)現(xiàn),在性能上并沒有明顯的優(yōu)勢。
Paxos算法是強(qiáng)Leadership的,也就是說,任意包含Leader的時(shí)刻,Leader擁有完全記賬權(quán),如果此Leader節(jié)點(diǎn)是惡意的,后果不堪設(shè)想。且leadership的一致性算法都有個(gè)通病,吞吐量受單個(gè)節(jié)點(diǎn)的限制,這正是Raft算法的痛點(diǎn)。
Pool驗(yàn)證池是一種基于傳統(tǒng)的分布式一致性技術(shù)(Pasox、Raft)和數(shù)據(jù)驗(yàn)證機(jī)制的共識機(jī)制,目前在私有鏈大范圍使用。
實(shí)用拜占庭容錯(cuò)PBFT(Practical Byzantine Fault Tolerance)[5]1999年由Castro和Liskov提出,是第一個(gè)得到廣泛應(yīng)用的BFT算法。在BFT算法中,至多可以容忍不超節(jié)點(diǎn)總數(shù)的1/3的節(jié)點(diǎn)背叛,即只要不少于2/3的節(jié)點(diǎn)正常,系統(tǒng)就可以正常工作。
這是一種基于消息傳遞的一致性算法,算法經(jīng)過三個(gè)階段:預(yù)準(zhǔn)備階段(pre-prepare), 準(zhǔn)備階段(prepared)和確認(rèn)階段(commited)來達(dá)成一致性,這些階段可能因?yàn)槭《貜?fù)進(jìn)行。
假設(shè)節(jié)點(diǎn)總數(shù)為3f+1,f為拜占庭錯(cuò)誤節(jié)點(diǎn),PBFT協(xié)議簡述如下:
1) 在預(yù)準(zhǔn)備階段,由主節(jié)點(diǎn)發(fā)布包含待驗(yàn)證記錄的預(yù)準(zhǔn)備消息。接收到預(yù)準(zhǔn)備消息后,每一個(gè)節(jié)點(diǎn)進(jìn)人準(zhǔn)備階段。
2) 在準(zhǔn)備階段,主節(jié)點(diǎn)向所有節(jié)點(diǎn)發(fā)送包含待驗(yàn)證記錄的準(zhǔn)備消息,每一個(gè)節(jié)點(diǎn)驗(yàn)證其正確性,將正確記錄保存下來 并發(fā)送給其他節(jié)點(diǎn)。直到某一個(gè)節(jié)點(diǎn)接收到2f個(gè)不同節(jié)點(diǎn) 發(fā)送的與預(yù)準(zhǔn)備階段接收的記錄一致的正確記錄,則該節(jié)點(diǎn)向其他節(jié)點(diǎn)廣播確認(rèn)消息,系統(tǒng)進(jìn)入確認(rèn)階段。
3) 在確認(rèn)階段,直到每個(gè)誠實(shí)節(jié)點(diǎn)接收到2f +1個(gè)確認(rèn)消息,協(xié)議終止,各節(jié)點(diǎn)對該記錄達(dá)成一致。
在去中心情況下,利用拜占庭一致性協(xié)議可以實(shí)現(xiàn)區(qū)塊鏈的一致性,剔除多余的計(jì)算量,避免資源浪費(fèi)。此外,在某一時(shí)刻,只有一個(gè)主節(jié)點(diǎn)可以提出新區(qū)塊,其他節(jié)點(diǎn)對該區(qū)塊進(jìn)行驗(yàn)證,避免分叉,縮短了交易確認(rèn)和區(qū)塊確認(rèn)時(shí)間,提高了系統(tǒng)效率。
拜占庭一致性協(xié)議在安全性和擴(kuò)展性方面還存在問題。拜占庭一致性協(xié)議的安全性依賴于失效節(jié)點(diǎn)數(shù)量的限制,失效節(jié)點(diǎn)數(shù)量不超過全網(wǎng)節(jié)點(diǎn)的1/3。在區(qū)塊鏈系統(tǒng)中,惡意節(jié)點(diǎn)可通過實(shí)施sybil攻擊產(chǎn)生多個(gè)節(jié)點(diǎn),使其控制的節(jié)點(diǎn)比例超過全網(wǎng)節(jié)點(diǎn)的1/3,從而破壞系統(tǒng)的 一致性和安全性。拜占庭一致性協(xié)議的效率依賴于參與協(xié)議的節(jié)點(diǎn)數(shù)量,該協(xié)議不適用于節(jié)點(diǎn)數(shù)量過大的區(qū)塊鏈系統(tǒng),擴(kuò)展性差。此外,一輪是否可以取得共識也依賴于主節(jié)點(diǎn)是否誠實(shí),若主節(jié)點(diǎn)提出無效區(qū)塊,則本輪不會(huì)產(chǎn)生區(qū)塊,影響效率。
PBFT算法基于一個(gè)節(jié)點(diǎn)一票,少數(shù)服從多數(shù)的這種方式很適用于聯(lián)盟鏈的應(yīng)用場景。聯(lián)盟鏈的參與機(jī)構(gòu)一般不太多(幾十個(gè)到幾百個(gè)?)。網(wǎng)絡(luò)規(guī)模不是很大。那么在共識機(jī)制選取上可以優(yōu)先考慮效率,以規(guī)模換取安全。未來的的改進(jìn)點(diǎn)是否可以考慮結(jié)合多種共識機(jī)制,保證效率和安全的前提下,進(jìn)一步提高規(guī)模。目前改進(jìn)的PBFT算法主要體現(xiàn)在:1.修改底層網(wǎng)絡(luò)拓?fù)湟?,使用P2P網(wǎng)絡(luò);2.可以動(dòng)態(tài)調(diào)整節(jié)點(diǎn)數(shù)量;3.減少協(xié)議使用的消息數(shù)量。
PBFT項(xiàng)目:IBM hyperledger Fabric,Asch,國內(nèi)央行推出的區(qū)塊鏈數(shù)字票據(jù)交易平臺,騰訊區(qū)塊鏈。
工作量證明機(jī)制-PoW
工作量證明POW(proof of work)[6]多用于比特幣,萊特幣等貨幣型區(qū)塊鏈(公有鏈),在比特幣等貨幣型區(qū)塊鏈中讓各節(jié)點(diǎn)達(dá)成一致性的共識機(jī)制為工作量證明,也就是挖礦。
PoW協(xié)議簡述如下:
1) ?向所有的節(jié)點(diǎn)廣播新的交易;
2) ?每個(gè)節(jié)點(diǎn)把收到的交易放進(jìn)塊中;
3) ?在每一輪中,一個(gè)被隨機(jī)選中的節(jié)點(diǎn)廣播它所保有的塊;
4) ?其他節(jié)點(diǎn)驗(yàn)證該區(qū)塊的hash值并放入下一個(gè)它們創(chuàng)建的區(qū)塊中,表示它們承認(rèn)這個(gè)區(qū)塊的正確性。
PoW機(jī)制會(huì)產(chǎn)生暫時(shí)性分叉,當(dāng)兩個(gè)節(jié)點(diǎn)同時(shí)廣播各自挖出的區(qū)塊,其他節(jié)點(diǎn)以自己最先收到的區(qū)塊為準(zhǔn)開始挖礦,但同時(shí)會(huì)保留另一個(gè)區(qū)塊以防止這個(gè)區(qū)塊日后成為較長的分支。直到其中某個(gè)分支在下一個(gè)工作量證明中變得更長,之前那些在另一條分支上工作的節(jié)點(diǎn)就會(huì)轉(zhuǎn)向這條更長的鏈。因?yàn)楣?jié)點(diǎn)認(rèn)為最長的鏈為合法的鏈,所以產(chǎn)生的分支只需等待多個(gè)確認(rèn)就會(huì)在算力的比拼中自動(dòng)消除。
PoW共識協(xié)議的優(yōu)點(diǎn)是完全去中心化,節(jié)點(diǎn)自由進(jìn)出,網(wǎng)絡(luò)可擴(kuò)展性高。但是以來機(jī)器進(jìn)行數(shù)學(xué)運(yùn)算來獲取記賬圈,資源消耗相對較高,可監(jiān)管性弱,同時(shí)每次達(dá)成共識需要全網(wǎng)共同參與運(yùn)算,效率較低,在容錯(cuò)性上允許全網(wǎng)50%節(jié)點(diǎn)出錯(cuò)。
股權(quán)權(quán)益證明PoS(Proof of Stack)[7]由Quantum Mechanic在2011年提出,最基本的概念就是選擇生成新的數(shù)據(jù)塊的機(jī)會(huì)應(yīng)和股權(quán)大小成比例。股權(quán)可以是投入的資金,也可以是預(yù)先投入的其他資源。也就是說,新數(shù)據(jù)塊的產(chǎn)生與系統(tǒng)中最富的人關(guān)系更大。
如果簡單的把PoW當(dāng)作比力量大小的話,PoS就是比耐力多少。PoS要求參與者預(yù)先放一些代幣(利益)在區(qū)塊鏈上,相當(dāng)于押金,參與者投入了利益到鏈里,做出的決定才會(huì)更理性。
PoS運(yùn)行的機(jī)制大致如下:
1) 加入PoS機(jī)制的都是持幣人,成為驗(yàn)證者(validator);
2) PoS算法在這些驗(yàn)證者里挑一個(gè)給予生成新區(qū)塊的權(quán)利;
3) ?如果在一定時(shí)間內(nèi),沒有生成區(qū)塊,PoS則選取下一個(gè)驗(yàn)證者,給與生成新區(qū)塊的權(quán)利;
4) ?以此類推,以區(qū)塊鏈中最長的鏈為準(zhǔn)。
相比于PoW,PoS的優(yōu)勢是不會(huì)產(chǎn)生通縮。因?yàn)樵赑oS下,持幣是有利息的,PoS引入了幣齡的概念,幣齡與持幣數(shù)量和持幣時(shí)間相關(guān),每當(dāng)驗(yàn)證者發(fā)現(xiàn)一個(gè)PoS區(qū)塊時(shí),幣齡就會(huì)清零,沒被清空365幣齡都會(huì)從區(qū)塊中獲得一定利息,從而在比特幣整體減少的趨勢下避免了通縮的問題。
此外,與PoW相比,PoS不需要為了生成新區(qū)塊而耗費(fèi)大量電力,但是在發(fā)現(xiàn)區(qū)塊上依舊拼算力,對計(jì)算機(jī)還是有一定要求。
委托權(quán)益人證明機(jī)制-DPoS
委托權(quán)益人證明機(jī)制DPoS(Delegated Proof of Stake)[8][9]是對PoS的改進(jìn),2014年4月由Bitshares 的首席開發(fā)者 Dan Larimer (現(xiàn)為EOS CTO)提出并應(yīng)用。DPoS是一種帶權(quán)重投票機(jī)制,類似于董事會(huì)的投票機(jī)制,代幣持有者可以看做股東,由股東投票選出101名受托人(Delegates),然后由這些受托人負(fù)責(zé)產(chǎn)生區(qū)塊。那么需要解決的核心問題主要有:受托人如何被選出,受托人如何自由退出“董事會(huì)”,受托人之間如何協(xié)作產(chǎn)生區(qū)塊等。
一個(gè)區(qū)塊鏈項(xiàng)目的受托人個(gè)數(shù)由項(xiàng)目發(fā)起方?jīng)Q定,一般是101個(gè)受托人。任何一個(gè)持幣用戶都可以參與到投票和競選受托人這兩個(gè)過程中。用戶可以隨時(shí)投票、撤票,每個(gè)用戶投票的權(quán)重和自己的持幣量成正比。投票和撤票可以隨時(shí)進(jìn)行,在每一輪(round)選舉結(jié)束后,得票率最高的101(一般為101,也可以是其他數(shù)字,具體由區(qū)塊鏈項(xiàng)目方?jīng)Q定)個(gè)用戶則成為該項(xiàng)目的受托人,負(fù)責(zé)打包區(qū)塊、維持系統(tǒng)的運(yùn)轉(zhuǎn)并獲得相應(yīng)的獎(jiǎng)勵(lì)。
在DPoS共識算法中,區(qū)塊鏈的正常運(yùn)轉(zhuǎn)依賴于受托人,這些受托人是完全等價(jià)的。受托人的職責(zé)主要有:
1) ?提供一臺服務(wù)器節(jié)點(diǎn),保證節(jié)點(diǎn)的正常運(yùn)行;
2) ?節(jié)點(diǎn)服務(wù)器收集網(wǎng)絡(luò)里的交易;
3) ?節(jié)點(diǎn)驗(yàn)證交易,把交易打包到區(qū)塊;
4) ?節(jié)點(diǎn)廣播區(qū)塊,其他節(jié)點(diǎn)驗(yàn)證后把區(qū)塊添加到自己的數(shù)據(jù)庫;
5) ? 帶領(lǐng)并促進(jìn)區(qū)塊鏈項(xiàng)目的發(fā)展。
受托人的節(jié)點(diǎn)服務(wù)器相當(dāng)于比特幣網(wǎng)絡(luò)里的礦機(jī),在完成本職工作的同時(shí)可以領(lǐng)取區(qū)塊獎(jiǎng)勵(lì)和交易的手續(xù)費(fèi)。
委托人機(jī)制有以下特點(diǎn):
1) ?委托人的具體數(shù)量由權(quán)益所有者決定,至少需要確保11個(gè)委托人;
2) ?委托人必須長時(shí)間在線,以便做出響應(yīng);
3) ?委托人代表權(quán)益所屬人簽署和廣播區(qū)塊鏈;
4) ?委托人如果無法簽署區(qū)塊鏈或者不老實(shí)生產(chǎn)區(qū)塊,就將失去資格,也將失去這一筆收入;
5) ?委托人無法簽署無效的交易,因?yàn)榻灰仔枰幸娮C人都確認(rèn)。
選舉的根本目的,是通過對于項(xiàng)目發(fā)展和運(yùn)行最有利的101個(gè)委托人的貢獻(xiàn)來維護(hù)系統(tǒng)的運(yùn)轉(zhuǎn)。區(qū)塊鏈保留了一些中心化系統(tǒng)的關(guān)鍵優(yōu)勢,同時(shí)又能保證一定的去中心化。從某種角度來說,DPOS可以理解為多中心系統(tǒng),兼具去中心化和中心化優(yōu)勢,從而保證了整個(gè)系統(tǒng)的運(yùn)行效率和減少能源浪費(fèi)。
DPoS 項(xiàng)目:Bitshares(DPoS),EOS(DPoS + BFT),Asch(DPoS + PBFT)
3.?優(yōu)缺點(diǎn)對比
本節(jié)總結(jié)目前主要的四大類共識機(jī)制:PoW、PoS、DPoS和Pool的優(yōu)缺點(diǎn)。從安全、效率、網(wǎng)絡(luò)規(guī)模,以及交易容量四個(gè)維度對共識算法性能做出對比。
PoW工作量證明,就是大家熟悉的挖礦,通過與或運(yùn)算,計(jì)算出一個(gè)滿足規(guī)則的隨機(jī)數(shù),即獲得本次記賬權(quán),發(fā)出本輪需要記錄的數(shù)據(jù),全網(wǎng)其它節(jié)點(diǎn)驗(yàn)證后一起存儲(chǔ)。優(yōu)點(diǎn):完全去中心化,節(jié)點(diǎn)自由進(jìn)出;缺點(diǎn):目前bitcoin已經(jīng)吸引全球大部分的算力,其它再用PoW共識機(jī)制的區(qū)塊鏈應(yīng)用很難獲得相同的算力來保障自身的安全;挖礦造成大量的資源浪費(fèi);共識達(dá)成的周期較長,不適合商業(yè)應(yīng)用。
PoS權(quán)益證明,PoW的一種升級共識機(jī)制;根據(jù)每個(gè)節(jié)點(diǎn)所占代幣的比例和時(shí)間;等比例的降低挖礦難度,從而加快找隨機(jī)數(shù)的速度。優(yōu)點(diǎn):在一定程度上縮短了共識達(dá)成的時(shí)間缺點(diǎn):還是需要挖礦,本質(zhì)上沒有解決商業(yè)應(yīng)用的痛點(diǎn)。
DPoS股份授權(quán)證明機(jī)制,類似于董事會(huì)投票,持幣者投出一定數(shù)量的節(jié)點(diǎn),代理他們進(jìn)行驗(yàn)證和記賬。優(yōu)點(diǎn):大幅縮小參與驗(yàn)證和記賬節(jié)點(diǎn)的數(shù)量,可以達(dá)到秒級的共識驗(yàn)證;缺點(diǎn):整個(gè)共識機(jī)制還是依賴于代幣,很多商業(yè)應(yīng)用是不需要代幣存在的。
PBFT實(shí)用拜占庭容錯(cuò)機(jī)制,一個(gè)節(jié)點(diǎn)代表一票,少數(shù)服從多數(shù)。優(yōu)點(diǎn):無分叉,資源消耗低;缺點(diǎn):安全性依賴于失效節(jié)點(diǎn)數(shù)量,節(jié)點(diǎn)過少會(huì)輕易突破51%,導(dǎo)致作弊。算法效率依賴于參與協(xié)議的節(jié)點(diǎn)數(shù)量,不適用于大規(guī)模區(qū)塊鏈系統(tǒng),擴(kuò)展性差。
Pool驗(yàn)證池,基于傳統(tǒng)的分布式一致性技術(shù),加上數(shù)據(jù)驗(yàn)證機(jī)制,是目前私有鏈大范圍在使用的共識機(jī)制。優(yōu)點(diǎn):不需要代幣也可以工作,在成熟的分布式一致性算法(Pasox、Raft)基礎(chǔ)上,實(shí)現(xiàn)秒級共識驗(yàn)證;缺點(diǎn):去中心化程度不如bitcoin,更適合多方參與的多中心商業(yè)模式。

4. ?適用范圍
本節(jié)按照區(qū)塊鏈的組織方式,分析目前主要共識機(jī)制的適用范圍。區(qū)塊鏈的組織方式大致可以分為三種:
1) ?私有鏈:封閉生態(tài)的存儲(chǔ)網(wǎng)絡(luò),所有節(jié)點(diǎn)都是可信的,使用傳統(tǒng)分布式一致性模型最優(yōu);
2) ?聯(lián)盟鏈:半封閉生態(tài)的交易網(wǎng)絡(luò),存在對等的不信任節(jié)點(diǎn),使用DPFT最優(yōu);
3) ?公有鏈:開放生態(tài)的交易網(wǎng)絡(luò),及所有人都可以參與交易,沒有任何限制和資格審核,使用PoW最優(yōu)。

下一代共識機(jī)制
在保證安全性和一致性的基礎(chǔ)上,對于共識機(jī)制的研究[12]一直圍繞在如何平衡系統(tǒng)的性能效率、擴(kuò)展性和資源消耗等因素上。由于不同共識機(jī)制的特點(diǎn)不同,如何將各具優(yōu)勢的共識機(jī)制巧妙組合,根據(jù)具體業(yè)務(wù)場景,設(shè)計(jì)綜合評價(jià)最優(yōu)的共識機(jī)制,是未來研究的主流方向。
根據(jù)初步調(diào)研,針對區(qū)塊鏈共識機(jī)制在金融應(yīng)用(聯(lián)盟鏈)上的發(fā)展趨勢,三句話總結(jié)個(gè)人認(rèn)識:
傳統(tǒng)一致性機(jī)制經(jīng)典依舊;
蠻力挖礦呈現(xiàn)下降趨勢;
組合機(jī)制成為后起之秀。
[if !supportLists][1]???? [endif]Fischer M J, Lynch N A, Paterson M S.
Impossibility of distributed consensus with one faulty process[M]. ACM, 1985.
[if !supportLists][2]????[endif]Towards
Robust Distributed Systems, Eric Brewer, 2000
[if !supportLists][3]????[endif]Lamport L. Paxos made simple[J]. ACM Sigact
News, 2001, 32(4): 18-25.
[if !supportLists][4]???? [endif]Raft算法簡介:https://raft.github.io/
[if !supportLists][5]???? [endif]Castro M, Liskov B. Practical Byzantine fault
tolerance[C]// ACM, 1999:173-186.
[if !supportLists][6]???? [endif]PoW
wikipedia. https://en.wikipedia.org/wiki/Proof-of-work_system
[if !supportLists][7]???? [endif]PoShttps://en.bitcoin.it/wiki/Proof_of_Stake
[if !supportLists][8]???? [endif]《授權(quán)股權(quán)證明機(jī)制白皮書》 Delegated Proof of Stake (DPOS) White Paper by Daniel Larimer
[if !supportLists][9]???? [endif]DPoSDelegated Proof-of-Stake Consensus - BitShares
[if !supportLists][10] [endif]《以太坊白皮書》
[if !supportLists][11] [endif]《白話區(qū)塊鏈》
[if !supportLists][12] [endif]韓璇, 劉亞敏. 區(qū)塊鏈技術(shù)中的共識機(jī)制研究[J]. 信息網(wǎng)絡(luò)安全,
2017(9):147-152.
[if !supportLists][13] [endif]IBM技術(shù)微講堂HyperLedger
Fabric中的共識機(jī)制
[if !supportLists][14] [endif]區(qū)塊鏈共識機(jī)制淺談https://blog.csdn.net/Jeffrey__Zhou/article/details/56672948