国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

區(qū)塊鏈共識(shí)機(jī)制研究::典型方案對(duì)比

2019-01-08 03:23
中興通訊技術(shù) 2018年6期
關(guān)鍵詞:分片哈希比特

劉建偉/LIU Jianwei

喻輝/YU Hui

(北京航空航天大學(xué),北京100191)

1 背景和相關(guān)工作

2008年,化名為“中本聰”的研究人員首次提出了比特幣[1]。在隨后幾年中,數(shù)字貨幣發(fā)展迅速,出現(xiàn)了像以太坊、萊特幣等具有代表性的一些數(shù)字貨幣。而支撐這類數(shù)字貨幣的區(qū)塊鏈技術(shù)也逐漸得到研究人員的重視。

區(qū)塊鏈技術(shù)保證在不可信、分布式環(huán)境下,所有節(jié)點(diǎn)通過(guò)一定的共識(shí)算法對(duì)公共賬本達(dá)成一致。在區(qū)塊鏈中,賬本以區(qū)塊的形式構(gòu)成,每個(gè)合法的區(qū)塊都以特定的密碼學(xué)方式鏈接到前一個(gè)塊,這也就是區(qū)塊“鏈”的內(nèi)涵。隨著區(qū)塊的不斷生成和添加,歷史區(qū)塊內(nèi)容不能被修改,區(qū)塊中記錄的所有內(nèi)容能夠被網(wǎng)絡(luò)中所有節(jié)點(diǎn)獲取。

區(qū)塊鏈具有去中心化、公開(kāi)透明、歷史數(shù)據(jù)防篡改等特點(diǎn)。區(qū)塊鏈的共識(shí)不需要任何可信的第三方,所有分布式節(jié)點(diǎn)參與共識(shí)。在公有鏈中,任何節(jié)點(diǎn)能夠自由加入、退出網(wǎng)絡(luò),節(jié)點(diǎn)數(shù)量隨時(shí)變化并且不可預(yù)知。一旦區(qū)塊鏈中區(qū)塊數(shù)據(jù)達(dá)到一定的“深度”(例如:在比特幣中,超過(guò)6個(gè)區(qū)塊),則可認(rèn)定區(qū)塊內(nèi)容很大概率不會(huì)被篡改。

目前區(qū)塊鏈的體系架構(gòu)一般分為以下幾個(gè)層面:從下到上依次是數(shù)據(jù)層、網(wǎng)絡(luò)層、共識(shí)與激勵(lì)層、合約層和應(yīng)用層。數(shù)據(jù)層包括最基本的交易數(shù)據(jù)、區(qū)塊數(shù)據(jù)和時(shí)間戳等,數(shù)據(jù)層采用哈希函數(shù)、數(shù)字簽名等密碼學(xué)技術(shù),為區(qū)塊鏈提供最基本的安全保證;網(wǎng)絡(luò)層采用基于點(diǎn)對(duì)點(diǎn)的網(wǎng)絡(luò)結(jié)構(gòu),負(fù)責(zé)區(qū)塊數(shù)據(jù)、節(jié)點(diǎn)間消息的傳播,區(qū)塊鏈網(wǎng)絡(luò)中節(jié)點(diǎn)一般采用八卦協(xié)議進(jìn)行通信;共識(shí)與激勵(lì)層是區(qū)塊鏈技術(shù)的核心,決定了區(qū)塊以什么方式在節(jié)點(diǎn)間達(dá)成一致,比特幣采取的共識(shí)機(jī)制是工作量證明(PoW),而激勵(lì)制度是對(duì)區(qū)塊記錄者進(jìn)行一定的獎(jiǎng)勵(lì)分配,從經(jīng)濟(jì)學(xué)的角度使區(qū)塊鏈系統(tǒng)維持正常運(yùn)行;合約層主要是在以太坊等新型區(qū)塊鏈系統(tǒng)中的智能合約,以腳本代碼的形式完成用戶設(shè)定的交易過(guò)程;應(yīng)用層主要指的是區(qū)塊鏈系統(tǒng)的綜合應(yīng)用,如電子投票平臺(tái)、食品溯源等。

共識(shí)機(jī)制作為區(qū)塊鏈的核心技術(shù)顯得十分重要。共識(shí)機(jī)制的目的是實(shí)現(xiàn)公共賬本的2個(gè)關(guān)鍵特性:一是一致性,即去掉區(qū)塊鏈末端k個(gè)區(qū)塊(k為區(qū)塊鏈的安全參數(shù),比特幣中k=6)之后,誠(chéng)實(shí)節(jié)點(diǎn)的區(qū)塊鏈能夠互相成為前綴,也就是說(shuō),誠(chéng)實(shí)節(jié)點(diǎn)的區(qū)塊最終會(huì)達(dá)成一致;二是活性,即誠(chéng)實(shí)用戶上傳的交易,在一定的時(shí)間之后,一定會(huì)出現(xiàn)在其他所有誠(chéng)實(shí)節(jié)點(diǎn)的賬本中。為了更好地保證以上2個(gè)特性的實(shí)現(xiàn),許多共識(shí)機(jī)制應(yīng)運(yùn)而生。

1.1 相關(guān)工作

BONNEAU J等人[2]對(duì)比特幣和其他數(shù)字貨幣完成了分類和調(diào)研。BANO S等人[3]對(duì)區(qū)塊鏈時(shí)代的共識(shí)機(jī)制進(jìn)行了分類和詳細(xì)的研究。ZOHAR A[4]分析了以比特幣為代表的加密貨幣的可擴(kuò)展性和安全性,強(qiáng)調(diào)了基于PoW的共識(shí)協(xié)議中激勵(lì)機(jī)制的重要性,與整個(gè)系統(tǒng)的安全密切相關(guān);CACHIN C和VUKOLIC M[5]討論了經(jīng)典共識(shí)中的重要概念,重點(diǎn)對(duì)需要身份準(zhǔn)入的區(qū)塊鏈系統(tǒng)進(jìn)行研究;BANO S、Al-BASSAM M 和 DANEZIS G[6]對(duì)可擴(kuò)展區(qū)塊鏈的設(shè)計(jì)給出了具體的發(fā)展路線圖;PASS R和SHI E[7]分析了大規(guī)模共識(shí)的形式化模型,并定義其安全性質(zhì)。

1.2 研究方法論

共識(shí)機(jī)制分為經(jīng)典分布式共識(shí)和區(qū)塊鏈共識(shí)兩大類,文中我們主要研究區(qū)塊鏈共識(shí),將區(qū)塊鏈共識(shí)分為基于PoW的共識(shí)機(jī)制、基于權(quán)益證明(PoS)的共識(shí)機(jī)制、采用單一委員會(huì)的混合共識(shí)機(jī)制、采用多委員會(huì)的混合共識(shí)機(jī)制幾大類,并給出了每一類共識(shí)機(jī)制的基本流程、典型共識(shí)方案和優(yōu)缺點(diǎn)分析。

PoW共識(shí)機(jī)制主要利用節(jié)點(diǎn)算力來(lái)選擇區(qū)塊的生產(chǎn)者,節(jié)點(diǎn)通過(guò)找到滿足要求的哈希函數(shù)原像完成PoW的過(guò)程。PoS共識(shí)機(jī)制主要根據(jù)節(jié)點(diǎn)擁有財(cái)產(chǎn)的數(shù)量隨機(jī)決定區(qū)塊生產(chǎn)者,擁有財(cái)產(chǎn)越多的節(jié)點(diǎn),成為區(qū)塊生產(chǎn)者的概率越大。采用單一委員會(huì)的混合共識(shí)機(jī)制首先利用PoW或PoS的形式選出一定數(shù)量的節(jié)點(diǎn)組成“委員會(huì)”,然后在委員會(huì)內(nèi)部采用經(jīng)典分布式共識(shí)完成區(qū)塊的生產(chǎn)和確認(rèn)。采用多委員會(huì)的混合共識(shí)也被稱為分片共識(shí),利用多個(gè)并行的委員會(huì)同時(shí)處理交易,實(shí)現(xiàn)網(wǎng)絡(luò)的可擴(kuò)展性。

本文對(duì)區(qū)塊鏈共識(shí)的分類和典型方案研究如表1所示。

1.3 共識(shí)概述

從總體層面上來(lái)講,共識(shí)主要分為2類,一類是以實(shí)用拜占庭容錯(cuò)共識(shí)(PBFT)為代表的經(jīng)典分布式共識(shí),通常在授權(quán)網(wǎng)絡(luò)中,參與節(jié)點(diǎn)通過(guò)多輪投票的方式達(dá)成對(duì)某個(gè)提議值的一致。另一類是以比特幣為代表的區(qū)塊鏈共識(shí),通常在非授權(quán)網(wǎng)絡(luò)中,節(jié)點(diǎn)能夠隨時(shí)加入或退出,通過(guò)特定算法完成出塊者選舉、區(qū)塊生成、節(jié)點(diǎn)區(qū)塊鏈更新等過(guò)程,保證最終誠(chéng)實(shí)用戶手中賬本一致。本文中,我們主要研究區(qū)塊鏈中的共識(shí)機(jī)制。

區(qū)塊鏈作為一個(gè)分布式的公開(kāi)賬本,每個(gè)區(qū)塊相當(dāng)于一輪產(chǎn)生的賬本,用于記錄本輪內(nèi)發(fā)生的交易;而共識(shí)機(jī)制首先需要確定的問(wèn)題便是每一輪的賬本由誰(shuí)來(lái)負(fù)責(zé)撰寫(xiě),我們將其稱之為“出塊者”。出塊者一般有2種:第1種是單一的節(jié)點(diǎn)作為出塊者,如比特幣、Bitcoin-NG;第2種是多個(gè)節(jié)點(diǎn)組成委員會(huì),整個(gè)委員會(huì)相當(dāng)于出塊者的角色,完成區(qū)塊的生成。出塊者選舉的過(guò)程需要防止女巫攻擊,簡(jiǎn)單來(lái)說(shuō)就是敵手通過(guò)制造多個(gè)假身份來(lái)增加其成為出塊者的概率,因此需要采用PoW、PoS等機(jī)制。通常單一節(jié)點(diǎn)作為出塊者為概率性共識(shí),又被稱為弱共識(shí),即區(qū)塊鏈可能出現(xiàn)分叉的情況;而委員會(huì)作為出塊者的共識(shí)為確定性共識(shí),又被稱為強(qiáng)共識(shí),每一輪的區(qū)塊是確定的,一般不會(huì)出現(xiàn)分叉。

在完成出塊者選舉之后,出塊者負(fù)責(zé)完成區(qū)塊生成的工作。區(qū)塊一般要包括本輪產(chǎn)生的交易、上個(gè)區(qū)塊的哈希值、時(shí)間戳等內(nèi)容。在這里,區(qū)塊生成又可以分為2類:第1類是一個(gè)出塊者只負(fù)責(zé)生成一個(gè)區(qū)塊,下一個(gè)區(qū)塊由新的出塊者生成,如比特幣;第2類是一個(gè)出塊者對(duì)應(yīng)多個(gè)區(qū)塊,一個(gè)出塊者工作的整個(gè)時(shí)間周期被稱為一個(gè)時(shí)期,一個(gè)時(shí)期包括多個(gè)輪,每一輪對(duì)應(yīng)一個(gè)區(qū)塊,如Bitcoin-NG等。出塊者在生成區(qū)塊之后,將區(qū)塊在全網(wǎng)進(jìn)行廣播。

網(wǎng)絡(luò)中的其他節(jié)點(diǎn)在收到新區(qū)塊之后,首先驗(yàn)證區(qū)塊的合法性,是否包含上個(gè)區(qū)塊的哈希值。對(duì)于概率性共識(shí),如比特幣中,還需要對(duì)區(qū)塊中交易的合法性、PoW的正確性進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)后節(jié)點(diǎn)將本地鏈進(jìn)行更新,并開(kāi)始新一輪的“挖礦”;對(duì)于確定性共識(shí),節(jié)點(diǎn)直接更新本地區(qū)塊鏈。

2 基于PoW的共識(shí)機(jī)制

2.1 基本概念

PoW的概念最早是在1993年被DWORK C和NAOR M[8]提出,最初被用來(lái)防止垃圾郵件。郵件發(fā)送者必須要計(jì)算出某個(gè)特定數(shù)學(xué)難題的解才能夠完成郵件的發(fā)送。后來(lái)在1997年的 Hashcash中,BACK A[9]將其拓展,利用哈希算法作為PoW的核心。因?yàn)楣:瘮?shù)為單向函數(shù),能夠抵抗原像攻擊,因此設(shè)定哈希函數(shù)的特定輸出值作為難度,輸入值中嵌入隨機(jī)數(shù),當(dāng)輸出值小于或大于難度值時(shí),輸入的隨機(jī)數(shù)便是哈希函數(shù)的解,即完成了PoW的過(guò)程。工作量證明的本質(zhì)是:只有完成了一定數(shù)量運(yùn)算的節(jié)點(diǎn)才能夠被授權(quán)參與某項(xiàng)活動(dòng),即防止敵手制造多個(gè)假身份發(fā)起的女巫攻擊。PoW與節(jié)點(diǎn)算力密切相關(guān)[9]。

表1 區(qū)塊鏈共識(shí)分類和典型方案

2.2 典型方案

(1)比特幣

在比特幣中,平均約每10 min會(huì)產(chǎn)生一個(gè)最大1 MB的區(qū)塊,區(qū)塊由區(qū)塊體和區(qū)塊頭組成,如圖1所示。區(qū)塊體主要是本時(shí)間段產(chǎn)生的交易,區(qū)塊頭包括上個(gè)區(qū)塊的哈希值A(chǔ)r-1、當(dāng)前交易構(gòu)成的默克爾樹(shù)根哈希MerkleTX、時(shí)間戳T和隨機(jī)數(shù)Nonce等。由于區(qū)塊頭包含指向上個(gè)區(qū)塊的哈希值,因此區(qū)塊構(gòu)成了“鏈”狀的結(jié)構(gòu),所以被稱為區(qū)塊鏈。而隨機(jī)數(shù)Nonce便是工作量證明的解。比特幣中工作量證明的目的是決定區(qū)塊的出塊者,并且一輪中只有1個(gè)出塊者,對(duì)應(yīng)1個(gè)區(qū)塊。比特幣中的工作量證明用公式可以簡(jiǎn)化表示為H(Ar-1,MerkleTX,Nonce)<D,其中 H()是單向哈希函數(shù),比特幣中使用SHA256(SHA256())實(shí)現(xiàn),輸出字符長(zhǎng)度為256 bit。D是當(dāng)前挖礦難度,比特幣中通過(guò)對(duì)挖礦難度的動(dòng)態(tài)調(diào)整來(lái)保持大約每10 min 1個(gè)區(qū)塊的速度。區(qū)塊的時(shí)間間隔和區(qū)塊大小與比特幣系統(tǒng)的安全性有著密切聯(lián)系,不能夠?qū)ζ溥M(jìn)行隨意更改,這也是目前比特幣交易速度只有7交易/秒的原因,因此比特幣的交易處理能力有限,許多諸如鏈下支付通道的研究意在提升比特幣的交易規(guī)模。

(2)Bitcoin-NG

由于比特幣交易規(guī)模有限,為了提高區(qū)塊鏈處理交易的能力,當(dāng)前研究主要分為線下和線上2個(gè)方向。線下解決方案主要指的是利用鏈下微支付通道處理小額交易,線上解決方案主要是對(duì)基于PoW的共識(shí)機(jī)制的改進(jìn)。線下方案不屬于本文討論范圍,不在此贅述。線上方案代表主要是 Bitcoin-NG,由 EYAL I等人[10]于2016年提出。Bitcoin-NG的PoW機(jī)制與比特幣基本一致,只不過(guò)出塊者和區(qū)塊是“一對(duì)多”的關(guān)系,即一個(gè)出塊者負(fù)責(zé)多個(gè)區(qū)塊的生成。在Bitcoin-NG中,區(qū)塊分為2種:關(guān)鍵塊和微塊,關(guān)鍵塊包含上個(gè)區(qū)塊哈希值、時(shí)間戳、挖礦難度、隨機(jī)數(shù)和出塊者公鑰,關(guān)鍵塊不記錄交易,只是負(fù)責(zé)選擇出塊者。與比特幣類似,Bitcoin-NG平均每10 min生成一個(gè)關(guān)鍵塊,對(duì)應(yīng)一個(gè)時(shí)期,在每個(gè)時(shí)期內(nèi),出塊者以小于等于10秒/個(gè)的速率產(chǎn)生微塊,記錄每一輪的交易。微塊包含上個(gè)區(qū)塊的哈希值、當(dāng)前輪的交易、時(shí)間戳等信息。Bitcoin-NG在一定程度上增加了交易規(guī)模。

基于PoW的共識(shí)機(jī)制還有GHOST[11]、Spectre[12]等。

圖1 比特幣區(qū)塊結(jié)構(gòu)圖

2.3 優(yōu)缺點(diǎn)分析

采用PoW的共識(shí)機(jī)制最大的問(wèn)題是能源的巨大浪費(fèi)。以比特幣為例,由于比特幣每10 min產(chǎn)生一個(gè)區(qū)塊,并且給予區(qū)塊生產(chǎn)者一定獎(jiǎng)勵(lì)(目前是12.5比特幣)和交易費(fèi)作為激勵(lì),而目前比特幣價(jià)格在每比特幣一萬(wàn)美元左右浮動(dòng),因此想要獲得高額回報(bào)的“礦工”們利用所有算力資源,進(jìn)行不間斷的哈希運(yùn)算,這就造成了巨大的能源浪費(fèi)。從最初的中央處理器(CPU)挖礦、圖形處理器(GPU)挖礦,到現(xiàn)在的現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)和專用集成電路(ASIC)挖礦,比特幣所消耗的電量成倍增長(zhǎng),據(jù)估計(jì)目前由于挖礦造成的每年消耗的能源已經(jīng)超過(guò)了31 TWh,已經(jīng)超過(guò)了全球159個(gè)國(guó)家消耗的能源,而77.7%的算力集中在中國(guó)境內(nèi),挖礦造成的巨大能源消耗已經(jīng)使中國(guó)電力網(wǎng)絡(luò)不堪重負(fù)。

此外,基于PoW的共識(shí)機(jī)制還面臨多種攻擊,包括:自私挖礦[13]、扣塊攻 擊(BWH)[14]、扣 塊 后 分 叉 攻 擊(FAW)[15],利用區(qū)塊鏈產(chǎn)生分叉的特點(diǎn),制定利己的區(qū)塊發(fā)布策略,獲得高于自身實(shí)際算力的高額回報(bào);日蝕攻擊[16]、延時(shí)攻擊[17],以及網(wǎng)絡(luò)隔離攻擊[18],通過(guò)劫持網(wǎng)絡(luò)流量或其他方法,將區(qū)塊鏈中網(wǎng)絡(luò)節(jié)點(diǎn)的117個(gè)信息輸入通道控制或是將其與其他網(wǎng)絡(luò)節(jié)點(diǎn)隔離,使其只能接收到敵手發(fā)送的信息,在此基礎(chǔ)上發(fā)動(dòng)女巫攻擊、雙花攻擊[19]、分布式拒絕服務(wù)攻擊(DDoS)等。

3 基于PoS的共識(shí)機(jī)制

3.1 基本概念

為了解決PoW帶來(lái)的巨大能源消耗,PoS的概念被提出。PoS的總體思路是:從所有的持幣者中隨機(jī)選取持幣者作為出塊者,持幣者被選中的概率與其持幣數(shù)目成正相關(guān),即持有越多的幣,被選中的概率越大。PoS中出塊者的選舉方式一般分為2類:一類是公開(kāi)選舉,選舉結(jié)果能夠被所有參與者獲知,如Ouroboros等;一類是私下選舉,參與者利用私有信息確認(rèn)是否被選中作為出塊者,在出塊者發(fā)布區(qū)塊之后,其他參與者能夠驗(yàn)證其合法性,如Ouroboros Praos等。私下選舉能夠抵抗DoS攻擊,因?yàn)樵诔鰤K者公布區(qū)塊之前,選舉的結(jié)果對(duì)于其他參與者而言都是未知的;而一旦出塊者公布區(qū)塊,區(qū)塊被加入到區(qū)塊鏈中,此時(shí)已經(jīng)失去了DoS攻擊的意義。

3.2 典型方案——Ouroboros

Ouroboros是首個(gè)被證明安全的基于PoS的共識(shí)機(jī)制,由KIAYIAS A等人[20]在2017年提出。在Ouroboros中,參與者首先運(yùn)行一輪多方計(jì)算產(chǎn)生一個(gè)隨機(jī)種子,然后將隨機(jī)種子作為輸入放到偽隨機(jī)函數(shù)中,該偽隨機(jī)函數(shù)隨機(jī)選取一個(gè)參與者作為出塊者,參與者被選中的概率與其持幣數(shù)量成正相關(guān)。出塊者生成本輪區(qū)塊并將其廣播,Ouroboros的出塊者和區(qū)塊是一一對(duì)應(yīng)的關(guān)系。Ouroboros最主要的貢獻(xiàn)是將PoS共識(shí)機(jī)制進(jìn)行形式化定義,并對(duì)其安全性給出了嚴(yán)格的數(shù)學(xué)證明。Ouroboros在40個(gè)節(jié)點(diǎn)參與、出塊間隔為5 s的情況下,能夠達(dá)到的交易規(guī)模為257交易/秒,交易確認(rèn)時(shí)間大概為30 s。

基于PoS的共識(shí)機(jī)制還包括PPCoin[21]、Casper[22]、Snow-White[23]等。

3.3 優(yōu)缺點(diǎn)分析

PoS在解放工作量證明的同時(shí),引入了一些新的安全問(wèn)題,其中CHEPURNOY A[24]提出現(xiàn)有PoS機(jī)制存在的“無(wú)利害關(guān)系”問(wèn)題,即擁有較少財(cái)產(chǎn)的用戶,其作為區(qū)塊生產(chǎn)者和驗(yàn)證者進(jìn)行惡意操作的成本很低,基于理性節(jié)點(diǎn)的自利假設(shè),參與者惡意操作可能性較大,可以同時(shí)在鏈的不同分叉上挖礦,無(wú)需花費(fèi)額外的成本,導(dǎo)致鏈傾向于分叉,使得這些基于PoS的協(xié)議安全性降低。另外,區(qū)塊生產(chǎn)者能夠發(fā)動(dòng)粉碎攻擊[25],不斷重新生成新的區(qū)塊,直到生成的區(qū)塊有利于其成為下面區(qū)塊的生產(chǎn)者。與此同時(shí),PoS共識(shí)機(jī)制可能遭受長(zhǎng)程攻擊[26],攻擊者通過(guò)賄賂其他人,來(lái)獲得他人的私鑰。GAZI P、KIAYIAS A等人[27]提出了針對(duì)PoS機(jī)制的權(quán)益擊穿攻擊,如果PoS共識(shí)機(jī)制未采用檢查點(diǎn)機(jī)制來(lái)進(jìn)行全網(wǎng)狀態(tài)統(tǒng)一,攻擊者能夠利用交易費(fèi)作為激勵(lì)的形式,通過(guò)長(zhǎng)時(shí)間的累積制造區(qū)塊分叉,進(jìn)而發(fā)動(dòng)雙花攻擊。

4 混合共識(shí)機(jī)制——單一委員會(huì)

4.1 基本概念

混合共識(shí)指的是利用PoW、PoS等防女巫攻擊手段,選舉一定數(shù)量的節(jié)點(diǎn)作為委員會(huì),即出塊者,委員會(huì)內(nèi)部通過(guò)經(jīng)典分布式共識(shí)算法就區(qū)塊達(dá)成一致?;旌瞎沧R(shí)中利用共識(shí)委員會(huì)的形式來(lái)代替單一的節(jié)點(diǎn),有著更高的容錯(cuò)能力。

混合共識(shí)的2個(gè)重要部分是時(shí)期內(nèi)共識(shí)和重配置。時(shí)期內(nèi)共識(shí)是指在協(xié)議正常運(yùn)行過(guò)程中,協(xié)議以時(shí)期為單位推進(jìn),每個(gè)時(shí)期包括多個(gè)輪。在每個(gè)時(shí)期,委員會(huì)的配置是固定的,即委員會(huì)成員身份確定且委員會(huì)領(lǐng)導(dǎo)者確定。委員會(huì)領(lǐng)導(dǎo)者一般通過(guò)每一時(shí)期的隨機(jī)數(shù)決定,負(fù)責(zé)每一輪區(qū)塊的提議。通常來(lái)說(shuō),每一輪委員會(huì)內(nèi)部運(yùn)行類似于PBFT的分布式經(jīng)典共識(shí)協(xié)議,生成一個(gè)新的區(qū)塊,一個(gè)時(shí)期對(duì)應(yīng)多個(gè)區(qū)塊的生成。

重配置指的是時(shí)期與時(shí)期之間進(jìn)行的委員會(huì)成員的更新迭代。由于敵手的存在,敵手可能會(huì)對(duì)誠(chéng)實(shí)用戶實(shí)施腐化,腐化后的用戶被敵手完全控制。為了防止敵手控制的用戶比例超過(guò)一定限制,就必須對(duì)委員會(huì)成員進(jìn)行更新。混合共識(shí)中,重配置通過(guò)PoW或PoS的方法,選取新的節(jié)點(diǎn)對(duì)舊的委員會(huì)成員進(jìn)行替換。由于委員會(huì)需要持續(xù)運(yùn)作,一般只替換掉委員會(huì)中的部分成員,而不是每次重配置都全部更新。

4.2 典型方案——ByzCoin

2016年KOGIAS E K等人[28]對(duì)Bitcoin-NG進(jìn)行了改進(jìn),提出了ByzCoin。ByzCoin將PoW與PBFT相結(jié)合,委員會(huì)選舉方式采用PoW機(jī)制,最新找到PoW的144個(gè)節(jié)點(diǎn)(或1 008個(gè))進(jìn)入委員會(huì),并且委員會(huì)采用窗口滑動(dòng)的方式進(jìn)行更新,即新找到PoW的節(jié)點(diǎn)并將最久遠(yuǎn)的節(jié)點(diǎn)替換,每次只替換一個(gè)節(jié)點(diǎn),新找到PoW的節(jié)點(diǎn)成為本時(shí)期的領(lǐng)導(dǎo)者。在委員會(huì)中,委員會(huì)成員的權(quán)限與其產(chǎn)生區(qū)塊的數(shù)量成正比,即如果某個(gè)用戶在144個(gè)區(qū)塊中產(chǎn)生了3個(gè)區(qū)塊,他便有3票的投票權(quán)。委員會(huì)內(nèi)部采用改進(jìn)的PBFT完成共識(shí),利用群體簽名(CoSi)代替?zhèn)鹘y(tǒng)PBFT中的消息認(rèn)證碼(MAC),使得通信復(fù)雜度降低為O(log(n)),驗(yàn)證復(fù)雜度為O(1)。ByzCoin中的區(qū)塊借鑒了Bitcoin-NG的思想,分為關(guān)鍵塊和微塊,關(guān)鍵塊主要用來(lái)完成委員會(huì)成員的選舉和領(lǐng)導(dǎo)者的選舉。微塊由委員會(huì)內(nèi)部共識(shí)產(chǎn)生,記錄一輪中產(chǎn)生的交易以及對(duì)交易的CoSi簽名認(rèn)證。在委員會(huì)成員1 008個(gè)、區(qū)塊大小為32 MB的情況下,ByzCoin的交易速度則會(huì)超過(guò)1 000交易/秒。

其他采用單一委員會(huì)的混合共識(shí) 還 有 Solida[29]、 Thunderella[30]、Algorand[31]等,其中Algorand采用的是PoS選取委員會(huì)的方式。

4.3 優(yōu)缺點(diǎn)分析

混合共識(shí)機(jī)制利用PoW或PoS選舉委員會(huì),然后利用委員會(huì)內(nèi)部共識(shí)完成交易區(qū)塊的添加,突破了比特幣中區(qū)塊大小和出塊速度的限制,所以交易規(guī)模有了明顯提升,一般能夠達(dá)到每秒鐘上千個(gè)交易的量級(jí)。與此同時(shí),由于采取的共識(shí)是確定性共識(shí),也就是強(qiáng)共識(shí),所以交易確認(rèn)時(shí)間大大縮短。

混合共識(shí)機(jī)制帶來(lái)了新的安全問(wèn)題。如PBFT之類的委員會(huì)內(nèi)共識(shí)算法需要確保委員會(huì)中誠(chéng)實(shí)節(jié)點(diǎn)占據(jù)2/3以上,而通過(guò)PoW選舉這樣的委員會(huì)會(huì)對(duì)誠(chéng)實(shí)用戶算力比例產(chǎn)生新的要求。如果不采取相應(yīng)的措施,由于自私挖礦的存在,誠(chéng)實(shí)節(jié)點(diǎn)算力需要占據(jù)3/4以上才能確保誠(chéng)實(shí)用戶產(chǎn)生的區(qū)塊數(shù)量占比在2/3以上,滿足委員會(huì)內(nèi)誠(chéng)實(shí)用戶的占比要求。另外,混合共識(shí)中的重配置也是十分重要的問(wèn)題,在重配置過(guò)程中,應(yīng)當(dāng)確保以下條件滿足:第一,交易處理的不間斷性,即重配置過(guò)程不會(huì)影響委員會(huì)處理交易;第二,重配置之后的委員會(huì)誠(chéng)實(shí)成員占據(jù)2/3以上,才能確保委員會(huì)不會(huì)被敵手控制;第三,重配置的頻率應(yīng)當(dāng)被合理設(shè)置,充分考慮敵手腐化節(jié)點(diǎn)的能力和節(jié)點(diǎn)的激勵(lì)等問(wèn)題。

5 混合共識(shí)機(jī)制——多委員會(huì)

5.1 基本概念

多委員會(huì)的混合共識(shí)機(jī)制在單一委員會(huì)基礎(chǔ)上進(jìn)行設(shè)計(jì),主要為了解決全網(wǎng)節(jié)點(diǎn)處理交易的可擴(kuò)展性問(wèn)題。可擴(kuò)展性指的是網(wǎng)絡(luò)處理交易能力隨著全網(wǎng)節(jié)點(diǎn)的增加而增加。單一委員會(huì)的混合共識(shí)機(jī)制雖然在很大程度上增大了交易處理規(guī)模,但是當(dāng)全網(wǎng)節(jié)點(diǎn)增多,導(dǎo)致交易數(shù)量增多,此時(shí)如果委員會(huì)成員數(shù)目不變,那么其交易處理能力并不會(huì)改變。多委員會(huì)的混合共識(shí)機(jī)制又被稱為分片共識(shí)機(jī)制,其原理是將網(wǎng)絡(luò)節(jié)點(diǎn)分為多個(gè)并行的片區(qū),每個(gè)片區(qū)由各自的委員會(huì)負(fù)責(zé)并行處理對(duì)應(yīng)的交易。當(dāng)網(wǎng)絡(luò)節(jié)點(diǎn)增多時(shí),片區(qū)增加,交易處理能力隨之增加。分片共識(shí)中不同交易分屬于不同的片區(qū),分別完成交易的處理和存儲(chǔ)過(guò)程。分片共識(shí)中最關(guān)鍵的問(wèn)題是跨區(qū)交易的處理,所謂跨區(qū)交易指的是一個(gè)交易有多個(gè)輸入,而輸入由多個(gè)片區(qū)掌管,因此跨區(qū)交易的處理牽涉到多個(gè)委員會(huì)的共同處理,需要設(shè)計(jì)合理高效的跨區(qū)交易處理方式來(lái)避免交易鎖死等可能出現(xiàn)的情況。

5.2 典型方案——Omniledger

分片共識(shí)比較典型的方案是Omniledger,由 KOGIAS E K 等人[32]在2018年提出。Omniledger主要貢獻(xiàn)如下:第一,實(shí)現(xiàn)了交易的原子性,跨區(qū)交易只能處于失敗或成功2種狀態(tài),避免了交易鎖死的狀態(tài);第二,實(shí)現(xiàn)了交易的可擴(kuò)展性,網(wǎng)絡(luò)的交易處理能力隨節(jié)點(diǎn)數(shù)的增加而線性增長(zhǎng);第三,實(shí)現(xiàn)了交易確認(rèn)的低延時(shí),網(wǎng)絡(luò)能夠持續(xù)處理交易。在Omniledger中,有2種區(qū)塊:第1種是身份區(qū)塊,用于記錄每一時(shí)期參與共識(shí)的委員會(huì)節(jié)點(diǎn)的身份;第2種是交易區(qū)塊,每個(gè)片區(qū)單獨(dú)處理本片區(qū)內(nèi)交易,并形成各自的區(qū)塊鏈。為了處理跨區(qū)交易,Omniledger設(shè)計(jì)了鎖定-解鎖的原子性跨區(qū)交易處理方法??蛻舳藢⒔灰咨蟼髦两灰纵斎雽?duì)應(yīng)的分片,如分片1和分片2,每個(gè)分片各自判斷交易輸入是否可用,即是否屬于未花費(fèi)交易池(UTXO)。如果交易輸入可用,則生成對(duì)應(yīng)的接受證明(PoA),即交易輸入在UTXO中的默克爾樹(shù)路徑;如果不可用,則生成對(duì)應(yīng)的拒絕證明(PoR)。當(dāng)分片1和分片2都提供PoA時(shí),交易鎖定,經(jīng)過(guò)交易輸出分片3的共識(shí),完成交易的解鎖和確認(rèn)。當(dāng)分片1或分片2中任意一個(gè)提供PoR時(shí),交易解鎖并放棄。在Omniledger中,每個(gè)時(shí)期都會(huì)利用RandHound[33]分布式隨機(jī)數(shù)生成算法生成隨機(jī)數(shù),用于委員會(huì)領(lǐng)導(dǎo)者的選舉和委員會(huì)成員重配置時(shí)替換節(jié)點(diǎn)的選擇。

采用多委員會(huì)的共識(shí)機(jī)制還包括 ELASTICO[34]、 ChainSpace[35]、RapidChain[36]等。

5.3 優(yōu)缺點(diǎn)分析

多委員會(huì)的混合共識(shí)能夠?qū)崿F(xiàn)交易的可擴(kuò)展性,交易處理性能隨節(jié)點(diǎn)數(shù)目增多、分區(qū)數(shù)增多而線性增長(zhǎng),交易規(guī)模進(jìn)一步增大。Omneledger在每個(gè)分區(qū)人數(shù)為70,分區(qū)數(shù)為16時(shí)交易處理速度能夠達(dá)到5 000交易/秒。多委員會(huì)的混合共識(shí)主要需要解決的問(wèn)題是跨區(qū)交易處理問(wèn)題、委員會(huì)重配置問(wèn)題、抗偏置隨機(jī)數(shù)生成問(wèn)題等。

6 結(jié)束語(yǔ)

區(qū)塊鏈共識(shí)算法是區(qū)塊鏈技術(shù)研究的重點(diǎn),未來(lái)主要的發(fā)展趨勢(shì)是:將拜占庭容錯(cuò)算法與區(qū)塊鏈技術(shù)相結(jié)合,在開(kāi)放的區(qū)塊鏈網(wǎng)絡(luò)中建立動(dòng)態(tài)、封閉的共識(shí)委員會(huì),實(shí)現(xiàn)安全、高效的混合共識(shí);將區(qū)塊鏈技術(shù)和可信硬件或其他最新密碼技術(shù)結(jié)合;對(duì)區(qū)塊鏈共識(shí)委員會(huì)中成員身份進(jìn)行高效管理;實(shí)現(xiàn)對(duì)惡意委員會(huì)的檢測(cè)和恢復(fù);防止擁有大算力或高權(quán)益礦工對(duì)委員會(huì)的控制;共識(shí)算法中充分考慮網(wǎng)絡(luò)的一致性和活性等。

猜你喜歡
分片哈希比特
上下分片與詞的時(shí)空佈局
利用狀態(tài)歸約處理跨分片交易的多輪驗(yàn)證方案①
物聯(lián)網(wǎng)區(qū)塊鏈中基于演化博弈的分片算法
基于特征選擇的局部敏感哈希位選擇算法
哈希值處理 功能全面更易用
文件哈希值處理一條龍
基于模糊二分查找的幀分片算法設(shè)計(jì)與實(shí)現(xiàn)
比特幣還能投資嗎
比特幣分裂
比特幣一年漲135%重回5530元
海原县| 会昌县| 天长市| 洞口县| 金华市| 筠连县| 宁海县| 台江县| 达拉特旗| 名山县| 宝鸡市| 务川| 天台县| 保靖县| 合江县| 峨眉山市| 丁青县| 咸宁市| 仙居县| 游戏| 镇雄县| 汕尾市| 兴化市| 阿拉善右旗| 英山县| 保德县| 留坝县| 华宁县| 长治市| 天峨县| 财经| 濮阳县| 临泽县| 如东县| 南丹县| 若羌县| 龙井市| 宜章县| 鹤山市| 孝感市| 闽清县|