大家銀行賬戶里面有哪些收入,又有哪些支出,余額還有多少,這樣的信息是由銀行這樣的中心機(jī)構(gòu)來統(tǒng)一記錄和維護(hù)的。
那對(duì)于區(qū)塊鏈這樣的去中心化的、點(diǎn)對(duì)點(diǎn)的分布式數(shù)據(jù)庫(kù)(該數(shù)據(jù)庫(kù)是由一個(gè)連著一個(gè)的區(qū)塊組成),網(wǎng)上成千上萬的節(jié)點(diǎn),誰有權(quán)創(chuàng)建下一個(gè)區(qū)塊?對(duì)要?jiǎng)?chuàng)建的區(qū)塊發(fā)生分歧怎么辦?怎么防止有人惡意區(qū)塊來盜取利益?
這就是共識(shí)機(jī)制負(fù)責(zé)解決的問題。簡(jiǎn)單講,共識(shí)機(jī)制就是讓分散在全球各地成千上萬的節(jié)點(diǎn)就區(qū)塊的創(chuàng)建達(dá)成一致的意見。共識(shí)機(jī)制是通過數(shù)學(xué)算法方式讓大家都認(rèn)可、信任數(shù)據(jù)庫(kù)的內(nèi)容,這就是區(qū)塊鏈建立信任的基礎(chǔ)。
共識(shí)機(jī)制是區(qū)塊鏈的核心基石之一,是區(qū)塊鏈系統(tǒng)安全性的重要保障。
區(qū)塊鏈中的共識(shí)算法有很多,我們先從比特幣使用的PoW(工作量證明,Proof-of-Work)來談起。簡(jiǎn)單來講,PoW的工作原理就是網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)通過自身的計(jì)算能力(算力)來獲得創(chuàng)建下一個(gè)區(qū)塊的權(quán)利。
比特幣早期,基本上都是個(gè)人電腦參與算力競(jìng)爭(zhēng),后來,由于比特幣價(jià)格一路上漲,出現(xiàn)了專門的礦機(jī)。再后來,隨著礦機(jī)算力的快速增強(qiáng),個(gè)人電腦基本退出了算力比拼的舞臺(tái)。
PoW飽受詬病的是對(duì)全球電量大量的消耗。例如,比特幣2017年消耗的電量已經(jīng)超過159個(gè)國(guó)家的年均耗電量(來源:powercompare)。另外目前總市值排名第二的ETH全網(wǎng)每秒消耗價(jià)值17美元的電力,每年消耗的電力的價(jià)值在5億美元左右。
由于PoW提供的安全性由系統(tǒng)外的物理資產(chǎn)(礦機(jī)、礦池等等)來實(shí)現(xiàn)。這樣會(huì)帶來很大的安全隱患。最為典型的問題大部分算力集中在少數(shù)人和公司手中,這和理想中的去中心化分布式網(wǎng)絡(luò)背道而馳。另一個(gè)典型的問題便是51%算力攻擊。理論上,只要惡意攻擊者控制了全網(wǎng)51%以上的算力,那么惡意攻擊者便可以篡改區(qū)塊鏈。例如,量子計(jì)算機(jī)可能比現(xiàn)有的礦機(jī)快10億倍,第一獲得量子計(jì)算能力的人或組織可能在很短的時(shí)間內(nèi)破壞掉區(qū)塊鏈。
由于這些問題的存在,更多的區(qū)塊鏈會(huì)選擇或轉(zhuǎn)移到我們下面要講的第二種共識(shí)機(jī)制:PoS(股權(quán)證明,Proof-of-Stake)。
PoS通過區(qū)塊鏈系統(tǒng)內(nèi)部的虛擬資產(chǎn)來管理安全性。區(qū)塊鏈系統(tǒng)的參與者鎖定他們?cè)谠搮^(qū)塊鏈上持有的虛擬資產(chǎn)(Coin或Token),他們會(huì)簽署消息以達(dá)成一致意見。只有那些已經(jīng)成為系統(tǒng)一部分的參與者才能夠決定下一個(gè)區(qū)塊的內(nèi)容。
PoW共識(shí)算法從經(jīng)濟(jì)角度,可以自然做到防止區(qū)塊鏈分叉(區(qū)塊鏈分叉的本質(zhì)就是網(wǎng)絡(luò)各節(jié)點(diǎn)對(duì)區(qū)塊鏈的生成產(chǎn)生分歧,無法達(dá)成共識(shí))。但是PoS則需要精心設(shè)計(jì)好相應(yīng)的規(guī)則來防止分叉(即“nothing at stake”問題,礦工為獲得生成區(qū)塊的獎(jiǎng)勵(lì)而同時(shí)支持多個(gè)有沖突的區(qū)塊鏈分叉,導(dǎo)致區(qū)塊鏈系統(tǒng)無法達(dá)成共識(shí))。例如PoS可以設(shè)定懲罰機(jī)制,參與挖礦的礦工被要求鎖定一定數(shù)量的虛擬資產(chǎn)。如果他們被偵測(cè)到了存在不當(dāng)?shù)男袨椋瑒t系統(tǒng)會(huì)沒收全部或部分被鎖定的虛擬資產(chǎn)。(參考:ETH PoS FAQ)
同時(shí),一個(gè)好的PoS共識(shí)算法還需要解決遠(yuǎn)程攻擊(LongRange Attacks)和卡特爾的形成(Cartel Formation)這兩個(gè)問題。遠(yuǎn)程攻擊是指礦工在撤回被鎖定的虛擬資產(chǎn)后,再發(fā)起之前生成的歷史區(qū)塊的分叉??ㄌ貭柺侵冈趨^(qū)塊鏈上的寡頭壟斷。由于PoS共識(shí)算法的本質(zhì)是誰“富有”,誰就有更大的話語權(quán),這樣少數(shù)富有礦工之間的“協(xié)調(diào)”將導(dǎo)致寡頭壟斷的形成。(參考:Consensus Compare: Casper vs. Tendermint)
目前業(yè)內(nèi)的PoS共識(shí)算法的實(shí)現(xiàn)主要分為兩大類:
第一類是簡(jiǎn)單的PoS系統(tǒng),很少甚至沒有從算法的設(shè)計(jì)上來解決這些問題。這類一般是比較早期的PoS嘗試。比較典型的例子是Peer Coin(點(diǎn)點(diǎn)幣,PPC)、新星幣(Nova Coin,NVC)、黑幣(Black Coin,BLK)、NextCoin(未來幣,NXT)等等。
第二類是精心設(shè)計(jì)的PoS系統(tǒng),相對(duì)來說都比較新?;诓煌膶?shí)現(xiàn)方式,精心設(shè)計(jì)的PoS系統(tǒng)可以分為兩種。一種是基于拜占庭容錯(cuò)的權(quán)益證明(BFT based PoS),另一種是基于鏈的權(quán)益證明(Chain based PoS)。(參考:Consensus Compare: Casper vs. Tendermint)
基于BFT的PoS的典型例子是Tendermint?;阪湹腜oS的典型例子是ETH Casper和ADA的Ouroboros。
第一類PoS系統(tǒng)安全性不夠。第二類PoS系統(tǒng)目前還不夠成熟,有一些處于早期運(yùn)行階段,有一些還處理討論和測(cè)試階段,這些都需要后續(xù)的持續(xù)迭代優(yōu)化和長(zhǎng)時(shí)間的運(yùn)行檢驗(yàn)。
最后,由于PoS區(qū)塊鏈系統(tǒng)由于缺少了PoW挖礦的過程,PoS系統(tǒng)面臨如何分發(fā)虛擬資產(chǎn)的問題。PoS系統(tǒng)一般通過社區(qū)空投、基于BTC/ETH等相對(duì)成熟的系統(tǒng)空投、分享合作等方式,快速獲取用戶,增加網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)量。在實(shí)際操作上,也有一些區(qū)塊鏈系統(tǒng)采用先采用PoW挖礦實(shí)現(xiàn)虛擬資產(chǎn)的分發(fā),然后再逐步過渡到PoS。