區(qū)塊鏈主流共識(shí)算法的淺析
工作量證明(Proof of Work)
區(qū)塊鏈共識(shí)算法中最常見(jiàn)的是比特幣的工作量證明機(jī)制,它主要有兩個(gè)功能:一是保證區(qū)塊鏈的下一區(qū)塊是唯一正確的塊,二是防止強(qiáng)大的敵手干擾區(qū)塊鏈系統(tǒng)從而導(dǎo)致區(qū)塊鏈分叉。
工作量證明中,礦工通過(guò)競(jìng)爭(zhēng)解決密碼學(xué)難題來(lái)完成下一個(gè)塊的增加和區(qū)塊鏈的擴(kuò)展,如圖1所示為比特幣工作量證明的簡(jiǎn)圖;參與挖礦的礦工競(jìng)爭(zhēng)將前一區(qū)塊的hash與一個(gè)隨機(jī)的比特串一起來(lái)計(jì)算出一個(gè)hash值,若輸出的hash值滿足前若干比特為0,即為解出了該難題。第一個(gè)解出難題的人獲得擴(kuò)展一個(gè)塊的機(jī)會(huì),并且能夠獲得一定量新挖出的比特幣以及一小筆交易費(fèi)作為其工作量的獎(jiǎng)勵(lì)。
盡管比特幣的工作量證明機(jī)制是個(gè)非常杰出的共識(shí)設(shè)計(jì),但并不是完美的。最常見(jiàn)的對(duì)工作量證明的質(zhì)疑有兩點(diǎn):一是消耗算力巨大,不適合大規(guī)模系統(tǒng),并且交易的確認(rèn)時(shí)間需要10-16分鐘,不能滿足實(shí)時(shí)性需求;二是大多數(shù)挖礦活動(dòng)集中在電力成本較低的區(qū)域,形成了局部中心化的趨勢(shì)。
圖1 比特幣系統(tǒng)中工作量證明示意圖
比特幣的創(chuàng)造者Satoshi Nakamoto讓人們初步認(rèn)識(shí)到區(qū)塊鏈改變未來(lái)世界的巨大潛力,但落實(shí)到具體應(yīng)用,仍需要進(jìn)一步探索更快速的、更加去中心化以及資源效率更高的共識(shí)算法。為此,許多互聯(lián)網(wǎng)、計(jì)算機(jī)科學(xué)、金融、工業(yè)等行業(yè)的學(xué)者和業(yè)界人士進(jìn)行了不斷的探索,并提出了若干代替性的區(qū)塊鏈共識(shí)方案,其中最有影響力的是權(quán)益證明(Proof of Stake)共識(shí)算法。
權(quán)益證明(Proof of Stake)
權(quán)益證明共識(shí)是代替工作量證明的共識(shí)機(jī)制中最完善和受到最多關(guān)注的,其共識(shí)的達(dá)成不需要參與者投入昂貴的計(jì)算機(jī)設(shè)備來(lái)參與挖礦競(jìng)爭(zhēng)。相對(duì)于以比特幣為代表的工作量證明共識(shí)系統(tǒng)中的礦工而言,基于權(quán)益證明共識(shí)的區(qū)塊鏈系統(tǒng)中,參與者的角色是驗(yàn)證者Validator,他們只需要投資系統(tǒng)的代幣并在特定時(shí)間內(nèi)驗(yàn)證自己是否為下一區(qū)塊創(chuàng)造者,即可完成下一區(qū)塊的創(chuàng)建。如圖2所示為權(quán)益證明的簡(jiǎn)要示意圖。下一區(qū)塊創(chuàng)造者是以某種確定的方式來(lái)選擇,被選中的驗(yàn)證者將合適的交易打包成塊并發(fā)布到區(qū)塊鏈上。驗(yàn)證者被選中為下一區(qū)塊創(chuàng)造者的概率與其所擁有的系統(tǒng)中代幣的數(shù)量成正比例,簡(jiǎn)單來(lái)說(shuō)即擁有300個(gè)代幣的驗(yàn)證者被選中為下一區(qū)塊創(chuàng)造者的概率是即擁有100個(gè)代幣驗(yàn)證者的3倍。
由于權(quán)益證明中創(chuàng)造區(qū)塊不需要算力資源等高成本,區(qū)塊創(chuàng)造者不會(huì)獲得區(qū)塊獎(jiǎng)勵(lì),但可以獲得一定數(shù)額的交易打包費(fèi)用。用權(quán)益證明共識(shí)產(chǎn)生區(qū)塊和擴(kuò)展區(qū)塊鏈的方式也比比特幣中用工作量證明的共識(shí)效率提高上千倍,并且大大節(jié)約了資源。
圖2 權(quán)益證明共識(shí)簡(jiǎn)圖
權(quán)益證明共識(shí)中一旦驗(yàn)證者創(chuàng)建了一個(gè)塊,該塊也需要提交到區(qū)塊鏈上。不同的權(quán)益證明系統(tǒng)對(duì)提交過(guò)程的處理方式不同。
一個(gè)典型的例子是Tendermint,其系統(tǒng)中的每個(gè)節(jié)點(diǎn)都必須在每一個(gè)塊上簽名(在此過(guò)程中的角色稱為“簽名者”),直至達(dá)成了大多數(shù)節(jié)點(diǎn)對(duì)區(qū)塊驗(yàn)證和記錄到鏈上的共識(shí);在其他一些系統(tǒng)中,選擇一組隨機(jī)的節(jié)點(diǎn)進(jìn)行簽名即可達(dá)成共識(shí)。
權(quán)益證明有效率高、節(jié)約資源的優(yōu)點(diǎn),但同時(shí)也面臨著一些潛在的現(xiàn)實(shí)風(fēng)險(xiǎn),業(yè)內(nèi)研究者通常將其表述為nothing-at-stake問(wèn)題,意即區(qū)塊創(chuàng)造者和區(qū)塊驗(yàn)證者完成各自的工作所投入的成本都極低,因而違背系統(tǒng)協(xié)議作惡的損失也很小。基于理性人的自利假設(shè),參與者難免會(huì)出現(xiàn)做惡的情況,例如區(qū)塊創(chuàng)造者同時(shí)創(chuàng)造2個(gè)塊并收取兩筆交易費(fèi),或者簽名者同時(shí)簽名2個(gè)塊以獲得2筆工作報(bào)酬。這些都與系統(tǒng)協(xié)議中同一時(shí)間段只能產(chǎn)生一個(gè)合法的區(qū)塊且簽名者不可對(duì)不合法的區(qū)塊簽名的規(guī)范相違背。
在新興的“加密經(jīng)濟(jì)學(xué)”領(lǐng)域,區(qū)塊鏈工程師們正在探索解決這些問(wèn)題的方法。其中一個(gè)解決方案是要求驗(yàn)證者將其擁有的系統(tǒng)代幣鎖定在一種虛擬保險(xiǎn)庫(kù)中。如果驗(yàn)證者試圖對(duì)系統(tǒng)進(jìn)行雙重簽名或同時(shí)產(chǎn)生多個(gè)塊進(jìn)行分叉,那么這些代幣就會(huì)被全部或部分罰沒(méi)。類似的改進(jìn)機(jī)制也在不同的采用權(quán)益證明的區(qū)塊鏈系統(tǒng)被提出并進(jìn)行了許多實(shí)踐。
Peercoin是第一個(gè)將權(quán)益證明實(shí)現(xiàn)的代幣,其次是blackcoin和NXT。此外,以太坊最早依賴于工作量證明共識(shí),但正計(jì)劃在2018年初遷移到權(quán)益證明,提出Casper試圖解決工作量證明和權(quán)益證明中的問(wèn)題。Decred采用的是工作量證明和權(quán)益證明的混合共識(shí)方案。
其他共識(shí)算法
除了工作量證明和權(quán)益證明外,區(qū)塊鏈相關(guān)的研究者還提出了委托權(quán)益證明(Delegated Proof of Stake,DPOS)、實(shí)用拜占庭容錯(cuò)共識(shí)(Practical Byzantine Fault Tolerance,PBFT)和Proof of Concepts等具有廣泛應(yīng)用價(jià)值的共識(shí)方案,下文簡(jiǎn)介DPOS和PBFT。
(1)委任權(quán)益證明DPOS
DPOS是權(quán)益共識(shí)的一種改進(jìn)版本,共識(shí)過(guò)程不再需要所有參與節(jié)點(diǎn)的大多數(shù)通過(guò),而是委托部分代表來(lái)進(jìn)行,這樣可以進(jìn)一步提高共識(shí)效率,也能較好地處理系統(tǒng)節(jié)點(diǎn)不在線的問(wèn)題。在比特股(Bitshare)系統(tǒng)中采用的DPOS共識(shí)的原理是讓每一個(gè)持有比特股的人進(jìn)行投票,由此產(chǎn)生101位代表, 他們彼此的權(quán)利完全平等,可以將其理解為101個(gè)超級(jí)節(jié)點(diǎn)或者礦池。
從某種角度來(lái)看,DPOS與議會(huì)制度或人民代表大會(huì)制度有相似之處。如果代表不能履行他們的職責(zé),例如當(dāng)輪到他們產(chǎn)生區(qū)塊時(shí)沒(méi)能按時(shí)生成,他們會(huì)被除名,繼而網(wǎng)絡(luò)會(huì)選出新的超級(jí)節(jié)點(diǎn)來(lái)將其取代。采用DPOS共識(shí)的系統(tǒng)通常都會(huì)采用經(jīng)濟(jì)方面的獎(jiǎng)勵(lì)和懲罰機(jī)制來(lái)達(dá)成更穩(wěn)定的共識(shí)。
(2)實(shí)用拜占庭容錯(cuò)共識(shí)PBFT
PBFT是一種基于嚴(yán)格數(shù)學(xué)證明的算法,需要經(jīng)過(guò)三個(gè)階段的信息交互和局部共識(shí)來(lái)達(dá)成最終的一致輸出。可以證明,系統(tǒng)中只要有三分之二以上比例的正常節(jié)點(diǎn),就能保證最終一定可以輸出一致的共識(shí)結(jié)果,盡管達(dá)成共識(shí)的時(shí)間不確定。
實(shí)用拜占庭容錯(cuò)協(xié)議的缺點(diǎn)在于不適用于大規(guī)模的節(jié)點(diǎn)共識(shí),因?yàn)殡S著節(jié)點(diǎn)規(guī)模的增大,達(dá)成共識(shí)需要的時(shí)間大大增加,不符合效率需求。許多相關(guān)研究人員在探討改進(jìn)拜占庭協(xié)議,以解決不同應(yīng)用場(chǎng)景下的效率問(wèn)題。
總結(jié)
共識(shí)算法的性能直接影響著分布式系統(tǒng)的性能,例如安全性、魯棒性、共識(shí)成本和效率等。如何在兼顧安全性和魯棒性的基礎(chǔ)上提高效率是一個(gè)需要持續(xù)討論和研究的重點(diǎn)。目前關(guān)于區(qū)塊鏈共識(shí)的各種研究也在根據(jù)具體應(yīng)用場(chǎng)景做出多方面的改進(jìn),除了技術(shù)方案的改進(jìn)之外,還需要結(jié)合經(jīng)濟(jì)和社會(huì)等因素尋找更加有針對(duì)性、更加完善的解決方案。
總的來(lái)說(shuō),對(duì)于區(qū)塊鏈共識(shí)方案的研究為分布式系統(tǒng)中的一致性問(wèn)題提供了較好的解決方案,目前已經(jīng)有一些算法能較好地解決分布式系統(tǒng)中的共識(shí)等問(wèn)題,在EUROCRYPT,ACM, Cryptology ePrint Archive等高水平會(huì)議、刊物上也有高質(zhì)量的文章發(fā)表,對(duì)于上述問(wèn)題進(jìn)行了更深刻和前瞻性的探討,但該領(lǐng)域仍然由許多問(wèn)題有待解決,仍有很大的研究?jī)r(jià)值和發(fā)展空間。

責(zé)任編輯:任我行
- 相關(guān)閱讀
- 業(yè)務(wù)信息化
- 戰(zhàn)略規(guī)劃
- IT運(yùn)維與治理
-
對(duì)于培訓(xùn)出身的同學(xué),接下來(lái)該怎么學(xué)習(xí)技術(shù)?
-
邊緣計(jì)算漸成香餑餑 那云計(jì)算呢?
-
蘋果證實(shí) iOS 9 源碼泄露:只要更新系統(tǒng)就沒(méi)事
-
區(qū)塊鏈主流共識(shí)算法的淺析
-
對(duì)于培訓(xùn)出身的同學(xué),接下來(lái)該怎么學(xué)習(xí)技術(shù)?
-
邊緣計(jì)算漸成香餑餑 那云計(jì)算呢?