999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

GBFT:一種實用拜占庭容錯算法改進(jìn)方案?

2024-04-17 07:28:24張新有
計算機(jī)與數(shù)字工程 2024年1期
關(guān)鍵詞:一致性機(jī)制

李 彬 張新有

(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院 成都 611756)

1 引言

區(qū)塊鏈作為數(shù)字加密貨幣的重要底層技術(shù),最早于2008 年由化名為中本聰[1]的學(xué)者提出。區(qū)塊鏈技術(shù)的去中心化、數(shù)據(jù)不可篡改、數(shù)據(jù)安全等特點,使得其在數(shù)字貨幣、物流溯源、數(shù)據(jù)取證和金融交易等領(lǐng)域都有很好的應(yīng)用前景[2]。

當(dāng)前,區(qū)塊鏈發(fā)展成為三種差異化類型:公有鏈,聯(lián)盟鏈,私有鏈[3]。其中,部分去中心化的聯(lián)盟鏈得益于參與節(jié)點數(shù)量較為固定、網(wǎng)絡(luò)規(guī)模較小、節(jié)點的信用度好等特點,具備了交易確認(rèn)延遲低、吞吐量高、耗能小等優(yōu)勢,因此在近年來得到迅速發(fā)展。共識算法作為區(qū)塊鏈中最為核心的技術(shù),對區(qū)塊鏈的整體性能表現(xiàn)有著直接的影響。現(xiàn)有的許多適用于公有鏈場景的共識算法,因為有著巨大的共識成本和算力開銷,明顯不適用于聯(lián)盟鏈場景下的區(qū)塊鏈[3]。2014 年,隨著IBM 的聯(lián)盟鏈項目Hyperledger Fabric 的推出[4],人們把目光聚焦到了實用拜占庭容錯算法(Practical Byzantine Fault Tolerance,PBFT)。

本文針對聯(lián)盟鏈的應(yīng)用場景,分析了PBFT 共識機(jī)制存在的不足,并基于PBFT算法的思想,提出了一種分級的共識方案(Graded Byzantine Fault Tolerance,GBFT),以期在系統(tǒng)的長期運(yùn)行中達(dá)到更高的共識效率和吞吐量及更低的資源消耗。

2 共識機(jī)制

一致性問題是分布式系統(tǒng)面臨的核心問題之一。分布式系統(tǒng)中如果僅存在非拜占庭錯誤,如網(wǎng)絡(luò)延遲、節(jié)點宕機(jī),可以通過Paxos[5]和Raft[6]等算法解決一致性問題。但是區(qū)塊鏈網(wǎng)絡(luò)作為一個低信任的分布式系統(tǒng),節(jié)點之間屬于互相不了解的參與者。受到利益的驅(qū)使,網(wǎng)絡(luò)中還可能產(chǎn)生拜占庭錯誤[7]。拜占庭錯誤是指存在節(jié)點主動向其他節(jié)點發(fā)送錯誤信息的可能,拜占庭節(jié)點指可以產(chǎn)生拜占庭錯誤的節(jié)點。在一個存在拜占庭節(jié)點的系統(tǒng)中,需要使用有拜占庭容錯能力的共識算法[8]。目前主流的區(qū)塊鏈共識機(jī)制主要有工作量證明、權(quán)益證明、股份授權(quán)證明以及實用拜占庭容錯算法等[9]。

2.1 工作量證明

工作量證明(PoW)的概念最早由Cynthia Dwork 和Moni Naor 在1993 年的論文中提出,主要用于解決當(dāng)時日益嚴(yán)重的垃圾郵件問題[10]。幾年后,Markus Jakobsson 和Ari Juels 正式提出了術(shù)語“Proof of Work”,并給出了PoW 的形式化定義[11]。在一個區(qū)塊鏈網(wǎng)絡(luò)中,必須有負(fù)責(zé)記錄交易的節(jié)點存在,最簡單的方法是進(jìn)行隨機(jī)選擇。然而,隨機(jī)選擇會使系統(tǒng)隨時暴露在可被攻擊的環(huán)境中。因此,如果一個節(jié)點想要發(fā)布一個交易區(qū)塊,就必須完成大量的工作來證明該節(jié)點幾乎沒有惡意攻擊網(wǎng)絡(luò)的可能性。一般來說,上述所謂的“工作”即計算機(jī)算力。工作量證明機(jī)制的優(yōu)點在于算法簡單、去中心化程度高、網(wǎng)絡(luò)擴(kuò)展性強(qiáng)、節(jié)點加入退出靈活。它的缺點是無用的工作量計算導(dǎo)致能源、算力等資源的嚴(yán)重浪費。此外,PoW 共識的效率較低,過長的出塊時間和交易確認(rèn)時間難以滿足現(xiàn)實需求。

2.2 權(quán)益證明

權(quán)益證明(PoS)[12]試圖通過將采礦能力與節(jié)點持有的權(quán)益相聯(lián)系來解決PoW 中算力競爭的問題。PoS 的核心思想是持有較高權(quán)益的節(jié)點有更大的可能性來獲得區(qū)塊打包權(quán)。在使用PoS 機(jī)制的網(wǎng)絡(luò)中,依然需要節(jié)點求解PoW 中類似的數(shù)學(xué)難題。但是每個節(jié)點面對的數(shù)學(xué)難題的難度是不同的,這個難度與節(jié)點持有的代幣數(shù)量正相關(guān)。這意味著節(jié)點持有的代幣數(shù)量越多,它所需要求解的數(shù)學(xué)難題的難度越低,那么該節(jié)點解出這個難題并獲得區(qū)塊打包權(quán)的概率也就越大。PoS 的去中心化能力、網(wǎng)絡(luò)擴(kuò)展性與PoW 相當(dāng),同時還有效降低了對資源的浪費。但是PoS 中存在的“無利害攻擊”,“長程攻擊”等問題也讓PoS 的安全性備受質(zhì)疑。

2.3 股份授權(quán)證明

股份授權(quán)證明(DPoS)[13],可以看做PoS的一個變種,由Bitshares 的首席開發(fā)者Dan Larimer 提出并應(yīng)用。它通過實施去中心化的民主方式,每個節(jié)點可以將其持有的權(quán)益作為選票投給一名代表。系統(tǒng)將選出得票較高的前N 個節(jié)點組成見證人網(wǎng)絡(luò)。見證人網(wǎng)絡(luò)中的節(jié)點使用專業(yè)運(yùn)行的網(wǎng)絡(luò)服務(wù)器,收集交易、打包區(qū)塊,引導(dǎo)促進(jìn)區(qū)塊鏈項目的發(fā)展。在完成本職工作的同時,這些節(jié)點還可以領(lǐng)取區(qū)塊獎勵和交易手續(xù)費。DPoS 通過投票、選舉降低了參與共識的節(jié)點數(shù)目,因此與POS、POW 相比,它具有更低的交易處理時延和更高的吞吐量。但是DPoS中存在的“超級節(jié)點”也讓它的去中心化能力備受爭議。

2.4 實用拜占庭容錯

實用拜占庭容錯(PBFT),最早由Castro等[14]在1999 年提出,是解決存在拜占庭節(jié)點的分布式系統(tǒng)一致性問題的通用方案。PBFT算法基于狀態(tài)機(jī)復(fù)制原理(State Machine Replication)[15],主要由三個協(xié)議組成:一致性協(xié)議、檢查點協(xié)議以及視圖更換協(xié)議。區(qū)塊生成過程中,一致性協(xié)議用來保證全網(wǎng)所有的節(jié)點保存數(shù)據(jù)的一致性,其通過三階段節(jié)點間的互相通信來實現(xiàn);當(dāng)運(yùn)行一致性協(xié)議無法達(dá)成一致時產(chǎn)生超時事件,啟動視圖更換協(xié)議進(jìn)行視圖轉(zhuǎn)換,以保證節(jié)點之間順利達(dá)成共識;檢查點協(xié)議主要有兩個用途:一是定期清除節(jié)點的過期數(shù)據(jù),以減輕存儲壓力;二是檢查系統(tǒng)狀態(tài),將系統(tǒng)中的節(jié)點同步到一個相同狀態(tài)。目前在區(qū)塊鏈領(lǐng)域中,PBFT 共識機(jī)制主要應(yīng)用于聯(lián)盟鏈場景,例如hyperledger fabric(v0.6)、FISCO BCOS[16]等聯(lián)盟鏈平臺都在進(jìn)行該共識機(jī)制的實際部署應(yīng)用。

在PBFT 算法中,一個消息從發(fā)起到達(dá)成共識需要經(jīng)過5 個階段。圖1 中,C 代表客戶端,0、1、2、3 表示4 個參與共識的節(jié)點,其中節(jié)點3 為拜占庭節(jié)點。具體步驟如下:

圖1 PBFT算法的一致性協(xié)議

1)request階段:客戶端發(fā)送請求到主節(jié)點;

2)pre-prepare階段:主節(jié)點收到客戶端請求后將其封裝為一個pre-prepare 消息,然后將pre-prepare消息廣播給從節(jié)點;

3)prepare 階段:從節(jié)點收到pre-prepare 證書后將其封裝為prepare 消息,并廣播給其他從節(jié)點,從節(jié)點進(jìn)入pre-prepared狀態(tài);

4)commit 階段:當(dāng)系統(tǒng)中存在f 個拜占庭節(jié)點時,要求系統(tǒng)中總節(jié)點數(shù)量不能小于3f+1。若一個節(jié)點收到包括自己節(jié)點prepare消息在內(nèi)的2f+1 個prepare 消息后,則該節(jié)點進(jìn)入prepared 狀態(tài),并向其他節(jié)點廣播commit消息;

5)reply 階段:節(jié)點收到包括自己節(jié)點的commit消息在內(nèi)的2f+1個commit消息后進(jìn)入commited狀態(tài),并向客戶端返回reply響應(yīng)消息。

傳統(tǒng)拜占庭容錯算法由于指數(shù)級別的時間復(fù)雜度而難以在實際系統(tǒng)中應(yīng)用。PBFT算法則將時間復(fù)雜度降到了多項式級別,還能提供1/3 的容錯性。但PBFT算法的缺點也很明顯。一是算法在收到客戶端請求之后,需要經(jīng)過5 個階段才能達(dá)成共識。其中prepare階段與commit階段是全節(jié)點參與的廣播過程,使得共識過程產(chǎn)生巨大的通信開銷;二是PBFT算法中的主節(jié)點由所有節(jié)點依次輪流擔(dān)當(dāng),這種主節(jié)點選擇策略過于隨意,使得主節(jié)點身份可以被輕易預(yù)測,增加了其被攻擊的風(fēng)險;三是算法中的每個節(jié)點都維護(hù)了一個固定的節(jié)點列表,缺少節(jié)點的加入、退出機(jī)制,不能靈活應(yīng)對網(wǎng)絡(luò)規(guī)模的動態(tài)變化。

不同的共識算法在不同的評判項目中,具有不同的表現(xiàn)。對上述4 種共識算法,從高往低分別用5分至1分對各項評測功能點做出評測,結(jié)果如表1所示[17]。

表1 四種共識算法性能比較

除以上四種經(jīng)典共識算法外,近年來還涌現(xiàn)了多種新型共識算法,如Algorand[18]、Omniledger[19]、Rapidchain[20]、2-hop[21]。這些算法本質(zhì)上都是多種經(jīng)典共識算法融合的產(chǎn)物,它們不約而同地體現(xiàn)了同一個共識算法改進(jìn)思路:基于實際應(yīng)用場景對處理效率和規(guī)模的不同需求,將各具優(yōu)勢的共識算法相融合,取長補(bǔ)短,從而在各項指標(biāo)中取得最佳平衡。這也是本文提出的改進(jìn)方案的基本思路。

3 改進(jìn)方案GBFT

由圖1 知,PBFT 算法的一致性協(xié)議中有兩個階段(prepare 階段和commit 階段)的全節(jié)點廣播。隨著節(jié)點數(shù)量的增加,網(wǎng)絡(luò)中的通信開銷會增長迅速,影響算法的共識效率。針對此問題,結(jié)合聯(lián)盟鏈的特點,本文引入了非拜占庭容錯的共識協(xié)議,以降低節(jié)點之間的通信開銷;為了配合非拜占庭容錯的共識協(xié)議,同時提出了一種基于節(jié)點行為的選舉制度;在非拜占庭容錯協(xié)議、選舉機(jī)制、PBFT 容錯協(xié)議的基礎(chǔ)上構(gòu)建了三級共識機(jī)制。

3.1 整體思想

根據(jù)模塊功能的不同,可以將一個使用PBFT共識機(jī)制的區(qū)塊鏈系統(tǒng)抽象為四個層次[22](圖2):應(yīng)用層、執(zhí)行引擎層、共識層、數(shù)據(jù)層。其中,應(yīng)用層代表各種基于區(qū)塊鏈網(wǎng)絡(luò)的應(yīng)用;執(zhí)行引擎層提供了區(qū)塊鏈網(wǎng)絡(luò)的運(yùn)行時環(huán)境;共識層定義了系統(tǒng)所使用的共識協(xié)議;數(shù)據(jù)層定義了區(qū)塊、交易等結(jié)構(gòu)以及與這些結(jié)構(gòu)相關(guān)的增刪改查操作。通過2.4節(jié)的分析可知,PBFT 共識機(jī)制的性能瓶頸主要在于準(zhǔn)備階段和提交階段的兩次全節(jié)點廣播。隨著區(qū)塊鏈網(wǎng)絡(luò)中節(jié)點數(shù)目的增多,網(wǎng)絡(luò)通信量會急劇增長,從而增加帶寬的壓力,導(dǎo)致了交易確認(rèn)時間長、吞吐量低、網(wǎng)絡(luò)擴(kuò)展性差等問題。

圖2 使用PBFT共識機(jī)制的區(qū)塊鏈系統(tǒng)架構(gòu)

針對PBFT 共識機(jī)制的性能瓶頸,本文提出以下三點舉措解決問題。

1)引入非拜占庭容錯的一致性協(xié)議。在聯(lián)盟鏈場景中,節(jié)點都是經(jīng)過一定準(zhǔn)入機(jī)制才能加入?yún)^(qū)塊鏈網(wǎng)絡(luò),這使得聯(lián)盟鏈中的節(jié)點相比公有鏈中的節(jié)點有更高的可信度。據(jù)此可以認(rèn)為聯(lián)盟鏈中大多數(shù)情況下是沒有拜占庭節(jié)點的,此時在網(wǎng)絡(luò)中運(yùn)行拜占庭容錯的一致性協(xié)議并不是十分必要。因此,可以在在共識層引入一種非拜占庭容錯的一致性協(xié)議。系統(tǒng)根據(jù)網(wǎng)絡(luò)中節(jié)點狀態(tài)來選擇執(zhí)行不同的一致性協(xié)議:當(dāng)參與共識的節(jié)點中不存在拜占庭節(jié)點時,運(yùn)行非拜占庭容錯協(xié)議;當(dāng)使用非拜占庭容錯協(xié)議無法達(dá)到一致時,運(yùn)行PBFT 的一致性協(xié)議。

2)設(shè)計基于節(jié)點行為的選舉機(jī)制。引入非拜占庭容錯協(xié)議的同時也引發(fā)了另外一個問題,即網(wǎng)絡(luò)中存在拜占庭節(jié)點時,使用非拜占庭容錯協(xié)議無法達(dá)到一致,那么就需要切換到PBFT 的一致性協(xié)議。如果在存在拜占庭節(jié)點的網(wǎng)絡(luò)中使全節(jié)點都參與非拜占庭容錯協(xié)議,實際上共識機(jī)制不僅會退化為普通的PBFT 算法,還會因為頻繁的協(xié)議切換帶了更大的共識成本。因此需要設(shè)計一種選舉機(jī)制,選出部分節(jié)點參與非拜占庭容錯協(xié)議,且選出的節(jié)點應(yīng)當(dāng)盡量避免包含拜占庭節(jié)點。

3)提出三級共識機(jī)制。在計算機(jī)結(jié)構(gòu)的三級存儲體系中,計算機(jī)的存取速度接近于緩存的速度,而存儲容量由硬盤所決定。基于這種思想,提出三級共識機(jī)制。首先由選舉出的部分節(jié)點參與非拜占庭容錯協(xié)議作為第一級共識,第一級共識無法達(dá)成一致的情況下進(jìn)入第二級共識。第二級共識是部分節(jié)點參與的PBFT 一致性協(xié)議,當(dāng)?shù)诙壒沧R無法達(dá)成一致時進(jìn)入第三級共識。第三級共識就是原始的全節(jié)點參與的PBFT共識。最終希望達(dá)到的效果就是整個網(wǎng)絡(luò)的共識效率由第一級共識決定,而系統(tǒng)的容錯性由第三級共識決定。

綜上,在共識層應(yīng)用GBFT 算法的區(qū)塊鏈系統(tǒng)架構(gòu)如圖3所示。

圖3 使用GBFT共識機(jī)制的區(qū)塊鏈系統(tǒng)架構(gòu)

3.2 改進(jìn)方案設(shè)計

3.2.1 非拜占庭容錯協(xié)議

引入非拜占庭容錯協(xié)議的目的在于簡化PBFT共識協(xié)議中prepare階段和commit階段中的全節(jié)點廣播通信,本文采用了參考文獻(xiàn)[23]中提出的簡化一致性協(xié)議,如圖4所示,具體內(nèi)容為

圖4 非拜占庭容錯協(xié)議

1)主節(jié)點廣播pre-prepare消息到從節(jié)點,從節(jié)點驗證消息內(nèi)容后向主節(jié)點回復(fù)確認(rèn)消息;

2)主節(jié)點收到所有從節(jié)點的確認(rèn)消息后,廣播confirm 消息到從節(jié)點,從節(jié)點驗證消息內(nèi)容后向主節(jié)點回復(fù)確認(rèn)消息;

3)主節(jié)點收到所有節(jié)點的確認(rèn)消息則代表達(dá)成共識,否則意味著共識失敗。

3.2.2 選舉機(jī)制

在引入非拜占庭容錯協(xié)議的系統(tǒng)中,系統(tǒng)優(yōu)先選擇非拜占庭容錯協(xié)議作為共識協(xié)議,當(dāng)非拜占庭容錯協(xié)議無法達(dá)成一致時再切換到PBFT的一致性協(xié)議。為了避免不同協(xié)議頻繁切換帶來的額外開銷,我們希望每次參與非拜占庭容錯協(xié)議的節(jié)點都是誠實節(jié)點,為此系統(tǒng)中設(shè)計了一個基于節(jié)點行為的選舉機(jī)制。

在區(qū)塊鏈網(wǎng)絡(luò)中,每個節(jié)點都由一個信用分屬性。所有節(jié)點被劃分為兩類:共識節(jié)點、非共識節(jié)點。共識節(jié)點與非共識節(jié)點的比例為1∶1。選舉模塊選取共識節(jié)點時遵循兩個原則:一是信用分高的節(jié)點優(yōu)先;二是信用分相同時編號較小的節(jié)點優(yōu)先。共識過程中,首先由共識節(jié)點參與一級共識,若達(dá)成一致,則每個參與節(jié)點可獲得2 信用分;若無法達(dá)成一致,參與節(jié)點扣3 信用分,然后進(jìn)入二級共識。若系統(tǒng)執(zhí)行二級共識達(dá)成一致,每個參與節(jié)點獲得1 信用分;若無法達(dá)成一致,每個參與節(jié)點扣2 信用分,然后進(jìn)入三級共識。三級共識執(zhí)行的是全節(jié)點參與的PBFT 一致性協(xié)議,三級共識中不再對節(jié)點信用分進(jìn)行增減。如此往復(fù),節(jié)點會因為自身行為而獲取、損失信用分,分值代表了節(jié)點的可信度。圖5 是一個節(jié)點的信用分的狀態(tài)轉(zhuǎn)換圖,其中X代表一個節(jié)點的信用分。

圖5 節(jié)點信用分狀態(tài)轉(zhuǎn)換圖

共識節(jié)點選舉機(jī)制將會在以下三種情況發(fā)生時被觸發(fā):

1)區(qū)塊鏈系統(tǒng)啟動的初始時刻。此時所有節(jié)點信用分為0,根據(jù)信用分相同時編號較小的節(jié)點優(yōu)先原則,選舉模塊將選擇編號較小的前50%節(jié)點作為共識節(jié)點。

2)發(fā)生了共識級別轉(zhuǎn)換。若某次請求的共識過程中發(fā)生了共識級別轉(zhuǎn)換,意味著共識節(jié)點集合中存在拜占庭節(jié)點。最壞情況下,該請求依然可以通過三級共識在各節(jié)點間達(dá)成一致,然而在下一個請求到來時共識節(jié)點集合中還是存在拜占庭節(jié)點,那么通過一級共識始終無法達(dá)成一致,總是要執(zhí)行共識級別轉(zhuǎn)換,帶來額外的資源消耗。因此,每當(dāng)發(fā)生了共識級別轉(zhuǎn)換,在當(dāng)前請求完成后,都要重新進(jìn)行共識節(jié)點選舉。

3)共識節(jié)點強(qiáng)制選舉計時器超時。共識節(jié)點長時間運(yùn)行一級共識會使這些節(jié)點始終處于忙碌狀態(tài),而非共識節(jié)點無法獲得信用分,沒有上升通道,也浪費了算力。為了避免這種情況的發(fā)生,在系統(tǒng)中設(shè)定一個共識節(jié)點強(qiáng)制選舉計時器。當(dāng)該計時器超時,將所有節(jié)點信用分清零,強(qiáng)制進(jìn)行共識節(jié)點選舉。共識節(jié)點編號ni由式(1)和式(2)計算得出。

其中:timestamp為共識節(jié)點強(qiáng)制選舉計時器超時時刻的時間戳,N為節(jié)點總數(shù)。

3.2.3 三級共識機(jī)制

為了進(jìn)一步提高共識效率與網(wǎng)絡(luò)擴(kuò)展性,結(jié)合非拜占庭容錯協(xié)議、PBFT 一致性協(xié)議以及選舉機(jī)制,提出的三級共識機(jī)制流程如圖6所示。

圖6 三級共識算法流程

具體內(nèi)容為

1)選舉產(chǎn)生共識節(jié)點。

2)接收來自客戶端的交易請求。

3)共識節(jié)點執(zhí)行一級共識。若達(dá)成一致,進(jìn)入6);否則,進(jìn)入4)。

4)執(zhí)行共識級別轉(zhuǎn)換,共識節(jié)點參與二級共識。若達(dá)成一致,進(jìn)入6);否則,進(jìn)入5)。

5)執(zhí)行視圖轉(zhuǎn)換,所有節(jié)點參與三級共識。若達(dá)成一致,進(jìn)入6);否則,繼續(xù)執(zhí)行5)。

6)所有節(jié)點接受共識結(jié)果,執(zhí)行客戶端請求。7)更新每個節(jié)點的信用分。

8)若發(fā)生了共識級別轉(zhuǎn)換,則選舉產(chǎn)生新的共識節(jié)點。

9)一次請求結(jié)束。

4 實驗場景及結(jié)果分析

本章從吞吐量、交易確認(rèn)時延和容錯性能等三方面分別對原始PBFT 和GBFT 進(jìn)行測試。通過對照,驗證了改進(jìn)方案的有效性和可用性。

4.1 實驗場景

租用了一臺云服務(wù)器作為實驗平臺,在服務(wù)器上安裝了Ubuntu 操作系統(tǒng)以及docker、docker-compose、Go 語言等基本環(huán)境。然后在Hyperledger Fabric 原生的PBFT 算法的基礎(chǔ)上實現(xiàn)了GBFT。最后在服務(wù)器上分別對應(yīng)用原始PBFT 算法的Hyperledger Fabric 和應(yīng)用GBFT 算法的Hyperledger Fabric 進(jìn)行測試。實驗平臺的軟硬件配置如表2所示。

表2 實驗環(huán)境配置信息表

4.2 吞吐量測試

吞吐量是衡量系統(tǒng)運(yùn)行效率的一個重要標(biāo)準(zhǔn)。在區(qū)塊鏈網(wǎng)絡(luò)中,一般用每秒交易數(shù)(tps)來表示,即:

其中:transactions 為出塊時間內(nèi)系統(tǒng)處理交易數(shù),t為出塊時間。設(shè)計兩種共識機(jī)制在4、5、6、7、8 個節(jié)點下的對照實驗,多次測試取平均值,實驗結(jié)果如圖7所示。

圖7 兩種算法的吞吐量比較

從圖7 的實驗結(jié)果可以看出,隨著網(wǎng)絡(luò)中節(jié)點數(shù)目的增加,兩種情況下吞吐量都下降明顯。這是因為節(jié)點數(shù)目的增加使得網(wǎng)絡(luò)中通信開銷增大,導(dǎo)致網(wǎng)絡(luò)運(yùn)行效率下降。還可以看出,在節(jié)點數(shù)目相同的情況下,相比于原始PBFT 算法,GBFT 始終具有更高的吞吐量。

4.3 時延測試

交易確認(rèn)時延指客戶端發(fā)送一個交易請求到客戶端確認(rèn)交易完成的時間間隔,即:

其中:Tconfirm為交易得到確認(rèn)的時間,Trequest為發(fā)送交易請求的開始時間。設(shè)計兩種共識機(jī)制在4、5、6、7、8 個節(jié)點下的對照實驗,多次測試取平均值,實驗結(jié)果如圖8所示。帶來的通信成本增加所導(dǎo)致的結(jié)果,但是原始PBFT算法的時延上升速率更大,而GBFT由于引入了非拜占庭容錯一致性協(xié)議與選舉機(jī)制,使得它的時延上升速率是隨節(jié)點數(shù)目的增加而下降的。此外,在節(jié)點數(shù)目相同的情況下,相比于PBFT,GBFT始終具有更低的交易確認(rèn)時延。

圖8 兩種算法的交易確認(rèn)時延比較

圖8 中,兩種方案的交易確認(rèn)時延都隨節(jié)點數(shù)目的增加呈上升趨勢,這同樣是由節(jié)點數(shù)目的增加

4.4 容錯性分析

設(shè)區(qū)塊鏈網(wǎng)絡(luò)中共有N(N ≥4)個節(jié)點,其中有F 個拜占庭節(jié)點。改進(jìn)方案中,系統(tǒng)會根據(jù)節(jié)點信用度的高低選出N/2 個節(jié)點納入共識節(jié)點組,設(shè)共識節(jié)點組中的拜占庭節(jié)點數(shù)目為f(f ≤F),則有:

1)第一級共識:共識節(jié)點組參與簡化協(xié)議。若共識節(jié)點組中沒有拜占庭節(jié)點,即f=0,則順利達(dá)成一致;若f ≥1,則通過非拜占庭容錯協(xié)議無法達(dá)成一致,進(jìn)入第二級共識。

2)第二級共識:共識節(jié)點組參與PBFT 共識協(xié)議。若1 ≤f≤(N/2-1)/3,已知PBFT算法的容錯性為(N-1)/3,可知第二級共識順利達(dá)成一致;若f>(N/2-1)/3,則第二級共識無法達(dá)成一致,進(jìn)入第三級共識。

3)第三級共識:全節(jié)點參與PBFT 共識。此時共識機(jī)制退化為原始的PBFT 算法,有f=F。當(dāng)f≤(N-1)/3 時,節(jié)點之間順利達(dá)成一致;當(dāng)f >(N-1)/3,整個網(wǎng)絡(luò)無法達(dá)成一致。

以上分析證明,GBFT 的容錯性是由第三級共識的容錯性決定的。即采用GBFT 作為共識機(jī)制的區(qū)塊鏈網(wǎng)絡(luò)中共N個節(jié)點時,整個網(wǎng)絡(luò)可以提供(N-1)/3的容錯性。

5 結(jié)語

基于PBFT 算法的思想,結(jié)合聯(lián)盟鏈應(yīng)用場景中節(jié)點可信度相對更高的特點,提出一種改進(jìn)的共識算法。首先在保留PBFT一致性協(xié)議的同時引入了非拜占庭容錯協(xié)議,以降共識過程中的通信開銷;為了避免兩種一致性協(xié)議的頻繁切換帶來的額外開銷,提出了基于節(jié)點行為的選舉機(jī)制;最后在非拜占庭容錯協(xié)議、選舉機(jī)制、PBFT一致性協(xié)議的基礎(chǔ)上構(gòu)建了三級共識機(jī)制。實驗結(jié)果表明,相比于PBFT 算法,本文提出的GBFT 算法有效提高了區(qū)塊鏈網(wǎng)絡(luò)的吞吐量,降低了交易確認(rèn)時延,同時還保持了PBFT 算法的容錯性。在GBFT 中,將信用分排名前50%的節(jié)點納入了共識節(jié)點集,這樣的設(shè)定可能無法適用于所有的應(yīng)用場景。下一步的工作中可以考慮將共識節(jié)點集的容量設(shè)置為一個可配置的參數(shù),以靈活調(diào)整網(wǎng)絡(luò)的去中心化程度。

猜你喜歡
一致性機(jī)制
關(guān)注減污降碳協(xié)同的一致性和整體性
公民與法治(2022年5期)2022-07-29 00:47:28
構(gòu)建“不敢腐、不能腐、不想腐”機(jī)制的思考
注重教、學(xué)、評一致性 提高一輪復(fù)習(xí)效率
對歷史課堂教、學(xué)、評一體化(一致性)的幾點探討
IOl-master 700和Pentacam測量Kappa角一致性分析
自制力是一種很好的篩選機(jī)制
文苑(2018年21期)2018-11-09 01:23:06
ONVIF的全新主張:一致性及最訪問控制的Profile A
定向培養(yǎng) 還需完善安置機(jī)制
基于事件觸發(fā)的多智能體輸入飽和一致性控制
破除舊機(jī)制要分步推進(jìn)
主站蜘蛛池模板: 日韩精品资源| 97在线碰| 婷婷综合色| 亚洲第一成年网| 黄色一及毛片| 凹凸国产熟女精品视频| 久久久久亚洲精品成人网 | 风韵丰满熟妇啪啪区老熟熟女| 91色爱欧美精品www| 成人综合在线观看| 亚洲人成色在线观看| 国产国拍精品视频免费看| 久久久国产精品无码专区| 97人人模人人爽人人喊小说| 欧美亚洲第一页| 久久天天躁夜夜躁狠狠| 在线观看国产黄色| 欧美区国产区| 日韩成人在线视频| 成人免费网站在线观看| 九色最新网址| 国产大全韩国亚洲一区二区三区| 日韩精品毛片人妻AV不卡| 91色国产在线| 91久久精品国产| 亚洲av综合网| 中文字幕亚洲无线码一区女同| 热久久这里是精品6免费观看| h网站在线播放| 日本黄色不卡视频| 欧美成人精品高清在线下载| 久久视精品| 精品无码一区二区三区在线视频| 国产美女91视频| 精品国产免费观看| 99热亚洲精品6码| 亚洲国产成熟视频在线多多| 久久久久国色AV免费观看性色| 在线看国产精品| 国产资源免费观看| 一级成人a毛片免费播放| 色婷婷亚洲综合五月| 狠狠色丁香婷婷| 国产a网站| 国产一区二区免费播放| 在线网站18禁| 欧洲成人免费视频| 99久久精彩视频| 国内精品久久人妻无码大片高| 色哟哟精品无码网站在线播放视频| 国产丝袜无码精品| 国产日本视频91| 国产综合色在线视频播放线视| 狠狠色婷婷丁香综合久久韩国 | av无码一区二区三区在线| 国精品91人妻无码一区二区三区| 99视频只有精品| 婷婷六月色| 99久久无色码中文字幕| 91毛片网| 天天躁狠狠躁| 亚洲综合亚洲国产尤物| 日本www在线视频| 免费毛片网站在线观看| 成人在线视频一区| 日本精品αv中文字幕| 亚洲狼网站狼狼鲁亚洲下载| 国产主播喷水| 精品色综合| 中文字幕无码av专区久久| 亚洲精品视频免费| 亚洲第一色视频| 69av免费视频| JIZZ亚洲国产| 亚洲国产成人综合精品2020 | 手机精品福利在线观看| 久久美女精品国产精品亚洲| 五月综合色婷婷| 中文字幕丝袜一区二区| 国产久草视频| 亚洲另类色| 在线无码私拍|