如何理解區(qū)塊鏈中的共識(shí)機(jī)制
掃描二維碼
隨時(shí)隨地手機(jī)看文章
談到區(qū)塊鏈一般我們會(huì)說(shuō),它是一個(gè)分布式賬本,一個(gè)巨大的數(shù)據(jù)庫(kù),那么分布式賬本結(jié)構(gòu)、P2P動(dòng)態(tài)網(wǎng)組、非對(duì)稱加密等各項(xiàng)技術(shù)就是守護(hù)這個(gè)數(shù)據(jù)庫(kù)的衛(wèi)兵,保障數(shù)據(jù)庫(kù)的安全不被竊取和篡改。
共識(shí)機(jī)制則是一套完整的數(shù)據(jù)入庫(kù)規(guī)則,一個(gè)“數(shù)據(jù)水龍頭”,維持?jǐn)?shù)據(jù)庫(kù)持續(xù)增長(zhǎng)。
布比聯(lián)合創(chuàng)始人張明裕常用微信群來(lái)解釋什么是區(qū)塊鏈,那么在一個(gè)群里是什么決定了大家討論什么、如何討論呢?就是共識(shí)機(jī)制,它是一個(gè)群的靈魂。
1. 什么是共識(shí)機(jī)制
什么是共識(shí)機(jī)制?對(duì)的沒錯(cuò),共識(shí)機(jī)制就是你理解的那個(gè)意思,不用去研究所謂的定義。
如果你想深入了解一下它的產(chǎn)生背景,下面一段話就是最好的表述:
由于加密貨幣多數(shù)采用去中心化的區(qū)塊鏈設(shè)計(jì),節(jié)點(diǎn)是各處分散且平行的,所以必須設(shè)計(jì)一套制度,來(lái)維護(hù)系統(tǒng)的運(yùn)作順序與公平性,統(tǒng)一區(qū)塊鏈的版本,并獎(jiǎng)勵(lì)提供資源維護(hù)區(qū)塊鏈的使用者,以及懲罰惡意的危害者。
這樣的制度,必須依賴某種方式來(lái)證明,是由誰(shuí)取得了一個(gè)區(qū)塊鏈的打包權(quán)(或稱記帳權(quán)),并且可以獲取打包這一個(gè)區(qū)塊的獎(jiǎng)勵(lì);又或者是誰(shuí)意圖進(jìn)行危害,就會(huì)獲得一定的懲罰,這就是共識(shí)機(jī)制。
多數(shù)情況下,我們談共識(shí)機(jī)制談的就是共識(shí)算法本身,算法在設(shè)計(jì)的時(shí)候就包含了一定的規(guī)則設(shè)計(jì)。
所謂共識(shí)機(jī)制包括共識(shí)算法和共識(shí)規(guī)則的分法其實(shí)沒必要去深究,只會(huì)越厘越亂。
2. 幾種主流共識(shí)機(jī)制的特點(diǎn)
1 POW
工作量證明,就是我們常說(shuō)的“挖礦”,是中本聰在其論文《一種點(diǎn)對(duì)點(diǎn)的電子現(xiàn)金系統(tǒng)》中提出的一種共識(shí)規(guī)則,通過(guò)節(jié)點(diǎn)間的算力競(jìng)爭(zhēng)來(lái)保證數(shù)據(jù)的一致性和不可篡改性。
在該共識(shí)機(jī)制下,依靠算力來(lái)爭(zhēng)奪記賬權(quán)獲得系統(tǒng)獎(jiǎng)勵(lì)。因?yàn)椤巴诘V”需要高昂的電力成本和設(shè)備成本,普通參與者難以參與,原本去中心化的設(shè)計(jì)又被集中在了礦工群體的小中心里。
2 POS
權(quán)益證明,通過(guò)占有的系統(tǒng)token數(shù)量和時(shí)間來(lái)分配權(quán)益,爭(zhēng)奪記賬權(quán)。相比POW純算力的競(jìng)爭(zhēng),POS增加了更多制度的設(shè)計(jì),效率明顯提升,也更適合商用。
萬(wàn)向區(qū)塊鏈董事長(zhǎng)兼 CEO 肖風(fēng)在公開演講中表示,“PoS的技術(shù)加上制度設(shè)計(jì),加上規(guī)則的設(shè)計(jì),這兩個(gè)加一塊,也許是解決我們所有的商業(yè)應(yīng)用的一個(gè)最合適的方法?!?/p>
在POS中,如果重量級(jí)節(jié)點(diǎn)并不具備專業(yè)的知識(shí)和足夠預(yù)算,將會(huì)再次拖累共識(shí)效率。于是便有了DPOS(委托權(quán)益證明),通過(guò)類似民主大會(huì)的形式,選舉出適合的節(jié)點(diǎn)代表來(lái)運(yùn)行網(wǎng)絡(luò),出塊效率進(jìn)一步提升。
3 PBFT
PBFT是Practical ByzanTIne Fault Tolerance的縮寫,意為實(shí)用拜占庭容錯(cuò)算法。解決了原始拜占庭容錯(cuò)算法效率不高的問(wèn)題,使得拜占庭容錯(cuò)算法在實(shí)際系統(tǒng)應(yīng)用中變得可行。該算法誕生于1999年,是公認(rèn)算法中最成熟的一種。
在PBFT機(jī)制下有一個(gè)視圖的概念,一個(gè)視圖包含一個(gè)主節(jié)點(diǎn)和多個(gè)備份節(jié)點(diǎn)。
主節(jié)點(diǎn)負(fù)責(zé)將來(lái)自客戶端的請(qǐng)求排好序號(hào)發(fā)給備份節(jié)點(diǎn)。備份節(jié)點(diǎn)會(huì)主動(dòng)檢測(cè)這些序號(hào)的合法性,并通過(guò)超時(shí)機(jī)制檢測(cè)主節(jié)點(diǎn)是否宕掉,一旦出現(xiàn)異常,將會(huì)觸發(fā)視圖更換協(xié)議來(lái)選舉新的主節(jié)點(diǎn)。
主節(jié)點(diǎn)的記賬信息獲得備份節(jié)點(diǎn)的共識(shí)之后,成為最終發(fā)布的區(qū)塊,并且該區(qū)塊是不可逆的。所以里面的交易是百分之百確認(rèn)的,區(qū)塊不會(huì)分叉。
4 DPOS+BFT
在該共識(shí)機(jī)制下,根據(jù)賬戶中的權(quán)益對(duì)節(jié)點(diǎn)分配權(quán)重優(yōu)先級(jí),形成基于節(jié)點(diǎn)權(quán)重的記賬人節(jié)點(diǎn)選取機(jī)制。節(jié)點(diǎn)可以通過(guò)申請(qǐng)成為候選人節(jié)點(diǎn),經(jīng)過(guò)選舉/抽簽等方式最終成為記賬人節(jié)點(diǎn)。
共識(shí)階段,在記賬人節(jié)點(diǎn)中選擇出共識(shí)區(qū)塊的提議者,由提議者提出對(duì)某個(gè)區(qū)塊進(jìn)行驗(yàn)證。記賬人和提議者每輪驗(yàn)證均會(huì)更換,多次驗(yàn)證成功后完成記賬,最終形成共識(shí)。
布比區(qū)塊鏈基于拜占庭容錯(cuò)算法構(gòu)建區(qū)塊鏈共識(shí),同時(shí)支持PBFT、DPOS+BFT等多種共識(shí)算法,做到了秒級(jí)別確認(rèn)用戶交易,不會(huì)產(chǎn)生鏈分叉。
同時(shí),布比區(qū)塊鏈支持多條子鏈的雙層共識(shí)、子鏈共識(shí)節(jié)點(diǎn)的子集映射,在高性能基礎(chǔ)上實(shí)現(xiàn)可擴(kuò)展和安全性。
3. 怎樣評(píng)價(jià)共識(shí)機(jī)制
談共識(shí)機(jī)制,難免會(huì)簡(jiǎn)單地用單維度進(jìn)行好或者不好、性能優(yōu)劣、去中心化程度來(lái)進(jìn)行評(píng)價(jià)。實(shí)際上對(duì)共識(shí)機(jī)制的評(píng)價(jià)應(yīng)該是多維度的,共識(shí)機(jī)制是區(qū)塊鏈系統(tǒng)中的一部分,需要與系統(tǒng)匹配實(shí)現(xiàn)良好運(yùn)轉(zhuǎn)。
布比區(qū)塊鏈創(chuàng)始人蔣海曾表示,“單純追求高TPS的意義不大,應(yīng)該找到合適的應(yīng)用場(chǎng)景,符合商業(yè)邏輯,從實(shí)際需求出發(fā)?!?/p>
如同一顆螺絲釘,我們不能單從它的大小、長(zhǎng)度、顏色、材質(zhì)來(lái)評(píng)價(jià),而要結(jié)合它的使用場(chǎng)景,用在手機(jī)里還是挖掘機(jī)上它的評(píng)價(jià)維度是完全不同的。
實(shí)際應(yīng)用中,應(yīng)該具體根據(jù)使用場(chǎng)景來(lái)評(píng)價(jià)和選擇共識(shí)機(jī)制。
比特幣是一種加密貨幣,對(duì)安全性和去中心化程度要求很高,那POW算法就是合適的。以太坊增加了智能合約,需要高TPS來(lái)支撐,最初的POW算法就無(wú)法適應(yīng),便要向POS轉(zhuǎn)變。所以選擇適合應(yīng)用場(chǎng)景的共識(shí)機(jī)制才是最合適的。