區(qū)塊鏈主流共識(shí)算法

一.POW(Proof Of Work)

Proof Of Work,也就是工作量證明。工作量證明系統(tǒng)(或者說(shuō)協(xié)議、函數(shù)),是一種應(yīng)對(duì)拒絕服務(wù)攻擊和其他服務(wù)濫用的經(jīng)濟(jì)對(duì)策。它要求發(fā)起者進(jìn)行一定量的運(yùn)算,也就意味著需要消耗計(jì)算機(jī)一定的時(shí)間。這種系統(tǒng)要求得到證明的過(guò)程是低效且漫長(zhǎng)的,可是校驗(yàn)則是高效且迅速,概括起來(lái)就是求解難,驗(yàn)證容易。

比特幣是第一個(gè)區(qū)塊鏈應(yīng)用,同時(shí)也是最著名的應(yīng)用之一,它所使用的共識(shí)機(jī)制就是POW。那么具體是怎么實(shí)現(xiàn)的呢?

在比特幣中,使用了SHA256這種哈希函數(shù)作為求解手段。SHA256有以下特征:

  1. 是一種散列函數(shù),即相鄰的x1和x2,求得的f(x1)和f(x2)差別極大。
  2. 不可逆推,給定了f(x)的值,推斷不出輸入值。
  3. 不存在比窮舉更好的方法,可以使f(x)落在特定的范圍。

實(shí)際使用過(guò)程中,每個(gè)節(jié)點(diǎn)需要打包的交易數(shù)據(jù)相同,再?gòu)奈膊考右粋€(gè)隨機(jī)數(shù)(節(jié)點(diǎn)自己選)作為整體輸入來(lái)求輸出值,把結(jié)果和當(dāng)前的挖礦難度對(duì)比(要求輸出值前x位為0),滿足條件則向附近節(jié)點(diǎn)廣播;不滿足則更換隨機(jī)數(shù)繼續(xù)求解。最快求得解的節(jié)點(diǎn),則可以視為挖礦勝出,取得其他節(jié)點(diǎn)的共識(shí)。

目前比特幣已經(jīng)吸引了全球大部分的運(yùn)算能力,其他再使用PoW共識(shí)機(jī)制的區(qū)塊鏈應(yīng)用很難獲得相同的計(jì)算能力來(lái)保障自身的安全,從而無(wú)法復(fù)制比特幣的輝煌;同時(shí)由于挖礦造成大量的資源被浪費(fèi),共識(shí)達(dá)成的周期很長(zhǎng),導(dǎo)致了比特幣的TPS(transaction per second,每秒執(zhí)行事務(wù)數(shù)量)極低,只有個(gè)位數(shù)。

二.POS(Proof of Stake)

POS通過(guò)區(qū)塊鏈系統(tǒng)內(nèi)部的虛擬資產(chǎn)來(lái)管理安全性,根據(jù)節(jié)點(diǎn)持有的通證數(shù)量或者時(shí)長(zhǎng)來(lái)決定節(jié)點(diǎn)享有的權(quán)利大小。區(qū)塊鏈系統(tǒng)的參與者鎖定他們?cè)谠搮^(qū)塊鏈上持有的虛擬資產(chǎn)(Coin或Token),他們會(huì)簽署消息以達(dá)成一致意見(jiàn)。只有那些已經(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)生分歧,無(wú)法達(dá)成共識(shí))。但是PoS則需要精心設(shè)計(jì)好相應(yīng)的規(guī)則來(lái)防止分叉,例如PoS可以設(shè)定懲罰機(jī)制,參與挖礦的礦工被要求鎖定一定數(shù)量的虛擬資產(chǎn)。如果他們被偵測(cè)到了存在不當(dāng)?shù)男袨椋瑒t系統(tǒng)會(huì)沒(méi)收全部或部分被鎖定的虛擬資產(chǎn)。

三.DPOS(Delegated Proof of Stake)

DPoS機(jī)制,中文名叫做股份授權(quán)證明機(jī)制(又稱受托人機(jī)制),它的原理是讓每一個(gè)通證的節(jié)點(diǎn)進(jìn)行投票,選出集中多數(shù)票的節(jié)點(diǎn),例如100個(gè),然后這些節(jié)點(diǎn)會(huì)行使類似POS的權(quán)力。
DPOS利用利益相關(guān)方批準(zhǔn)投票的權(quán)力以公平和民主的方式解決共識(shí)問(wèn)題,所有網(wǎng)絡(luò)參數(shù),從費(fèi)用估算到塊間隔和交易規(guī)模,都可以通過(guò)選定的代表進(jìn)行調(diào)整。從某種角度來(lái)看,DPOS有點(diǎn)像是議會(huì)制度或人民代表大會(huì)制度。如果代表不能履行他們的職責(zé)(當(dāng)輪到他們時(shí),沒(méi)能生成區(qū)塊),他們會(huì)被除名,網(wǎng)絡(luò)會(huì)選出新的超級(jí)節(jié)點(diǎn)來(lái)取代他們。

四.PBFT(Practical Byzantine Fault Tolerance)

Practical Byzantine Fault Tolerance,實(shí)用拜占庭容錯(cuò)算法。

拜占庭假設(shè)是對(duì)現(xiàn)實(shí)世界的模型化,由于硬件錯(cuò)誤、網(wǎng)絡(luò)擁塞或斷開(kāi)以及遭到惡意攻擊,計(jì)算機(jī)和網(wǎng)絡(luò)可能出現(xiàn)不可預(yù)料的行為。拜占庭容錯(cuò)協(xié)議必須處理這些失效,并且這些協(xié)議還要滿足所要解決的問(wèn)題要求的規(guī)范。這些算法通常以其彈性t作為特征,t表示算法可以應(yīng)付的錯(cuò)誤進(jìn)程數(shù)。很多經(jīng)典算法問(wèn)題只有在t小于n/3時(shí)才有解,如拜占庭將軍問(wèn)題,其中n是系統(tǒng)中進(jìn)程的總數(shù)。

五.BFT-DPoS

BFT-DPoS,Byzantine Fault Tolerance - Deligated Proof of Stake,帶有拜占庭容錯(cuò)的委托股權(quán)證明。
EOS的白皮書中,每個(gè)見(jiàn)證人出塊時(shí)全網(wǎng)廣播,其他見(jiàn)證人收到新區(qū)塊后,立即對(duì)此區(qū)塊進(jìn)行驗(yàn)證,并將驗(yàn)證簽名完成的區(qū)塊立即返回出塊見(jiàn)證人,不需等待其他見(jiàn)證人自己出塊時(shí)再確認(rèn)。從當(dāng)前的出塊見(jiàn)證人看來(lái),他生產(chǎn)了一個(gè)區(qū)塊,并全網(wǎng)廣播,然后陸續(xù)收到了其他見(jiàn)證人對(duì)此區(qū)塊的確認(rèn),在收到 2/3 見(jiàn)證人確認(rèn)的瞬間,區(qū)塊(包括其中的交易)就不可逆了。交易確認(rèn)時(shí)間大大縮短,從 45 秒縮短至 3 秒左右(主要為等待生產(chǎn)區(qū)塊的時(shí)間)。

EOS原來(lái)是采用DPoS,為了效率采用PBFT 和 DPOS結(jié)合的BFT-DPoS,理論確認(rèn)速度大大提升。因?yàn)镋OS在設(shè)計(jì)之初就提出了選出21個(gè)超級(jí)節(jié)點(diǎn)作為見(jiàn)證人,并負(fù)責(zé)全網(wǎng)的出塊,所以被人詬病缺失了區(qū)塊鏈的去中心化精神。實(shí)際上,比特幣、以太坊這些前輩,經(jīng)過(guò)了前期的發(fā)展后,大部分算力已經(jīng)集中在各大礦池和機(jī)構(gòu)手上了,所以EOS只是提前把這個(gè)生態(tài)確定下來(lái),并寫在臺(tái)面上,才會(huì)有這樣的非議。

EOS的這種妥協(xié),其實(shí)是兼顧了中心化和效率,是區(qū)塊鏈上一個(gè)有益的嘗試。


相關(guān)文章和視頻推薦

【許曉笛】詳解 EOS 的新共識(shí)機(jī)制 BFT-DPoS

圓方圓學(xué)院匯集大批區(qū)塊鏈名師,打造精品的區(qū)塊鏈技術(shù)課程。 在各大平臺(tái)都長(zhǎng)期有優(yōu)質(zhì)免費(fèi)公開(kāi)課,歡迎報(bào)名收看。
公開(kāi)課地址:https://ke.qq.com/course/345101

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文來(lái)自:http://www.infoq.com/cn/articles/consensuspedia-an-e...
    MaxZing閱讀 10,246評(píng)論 3 32
  • 巴比特旗下時(shí)戳資本近日發(fā)布了《區(qū)塊鏈公鏈項(xiàng)目研究報(bào)告》。作為時(shí)戳資本區(qū)塊鏈行業(yè)研究報(bào)告系列03,這份最新的報(bào)告主要...
    shenciyou閱讀 2,644評(píng)論 1 10
  • 轉(zhuǎn)載聲明:本文來(lái)自微信公眾號(hào):火龍果園長(zhǎng),僅供學(xué)習(xí)交流,禁止用于商業(yè)用途,轉(zhuǎn)載需關(guān)注公眾號(hào)取得文章作者同意。 寫在...
    火龍果園長(zhǎng)閱讀 7,710評(píng)論 0 18
  • 桃花寨一瞥 陽(yáng)春三月,草長(zhǎng)鶯飛,萬(wàn)物勃發(fā);朗朗乾坤,應(yīng)朋友邀約驅(qū)車世外桃源----“桃花寨” 途徑優(yōu)美???..
    祥云Teng飛閱讀 226評(píng)論 0 1
  • 題記:滿紙荒唐言 ,一把辛酸淚。都云作者癡,誰(shuí)解其中味! 用搜狗輸入法,才輸“小吵”呢,它就自動(dòng)跳出“小吵怡情”。...
    瀟瀟_15c6閱讀 748評(píng)論 4 4

友情鏈接更多精彩內(nèi)容