一種面向區(qū)塊鏈的優(yōu)化PBFT共識(shí)算法
發(fā)布時(shí)間:2021-02-21 03:59
區(qū)塊鏈技術(shù)具有去中心化,數(shù)據(jù)不可篡改和數(shù)據(jù)透明等特點(diǎn),使得該技術(shù)的應(yīng)用領(lǐng)域不斷擴(kuò)展,但目前應(yīng)用于區(qū)塊鏈系統(tǒng)的共識(shí)算法存在著資源浪費(fèi)和共識(shí)效率較低等問題,限制了區(qū)塊鏈技術(shù)的發(fā)展.針對(duì)此問題,基于實(shí)用拜占庭容錯(cuò)算法(Practical Byzantine Fault Tolerance,PBFT),算法的基本思想,提出了一種優(yōu)化的共識(shí)算法.該算法引入積分機(jī)制,根據(jù)節(jié)點(diǎn)積分挑選參與共識(shí)的節(jié)點(diǎn),以降低網(wǎng)絡(luò)中的通信開銷;在不存在拜占庭節(jié)點(diǎn)的情況下,優(yōu)化PBFT算法的一致性協(xié)議;引入升降級(jí)機(jī)制,動(dòng)態(tài)更新參與共識(shí)的節(jié)點(diǎn)集合,以保證算法在大部分時(shí)間內(nèi)都執(zhí)行優(yōu)化一致性協(xié)議.實(shí)驗(yàn)結(jié)果表明:與PBFT算法相比,本文提出的共識(shí)算法將共識(shí)過程的時(shí)間復(fù)雜度從O(N2)下降到O(N),有效降低了網(wǎng)絡(luò)中的通信開銷,平均時(shí)延從55ms降到37ms,平均吞吐量從342TPS提升到677TPS.
【文章來源】:北京交通大學(xué)學(xué)報(bào). 2019,43(05)北大核心
【文章頁數(shù)】:7 頁
【部分圖文】:
圖1PBFT算法一致性協(xié)議執(zhí)行過程
概率都為誠實(shí)節(jié)點(diǎn),SPBFT算法將繼續(xù)執(zhí)行優(yōu)化一致性協(xié)議完成接下來的共識(shí)操作.2.2優(yōu)化一致性協(xié)議設(shè)計(jì)PBFT共識(shí)算法的一致性協(xié)議在運(yùn)行過程中需要完成兩次復(fù)雜度為O(N2)的節(jié)點(diǎn)通信,這樣設(shè)計(jì)是為了在網(wǎng)絡(luò)中存在拜占庭節(jié)點(diǎn)的情況下,算法仍能夠完成共識(shí).SPBFT算法在不存在拜占庭節(jié)點(diǎn)的情況下,對(duì)一致性協(xié)議進(jìn)行優(yōu)化,使其在完成復(fù)雜度為O(N)的節(jié)點(diǎn)通信后,算法就能夠完成共識(shí).本文參考文獻(xiàn)[12]中提出的一種簡(jiǎn)化一致性協(xié)議,并結(jié)合本文的改進(jìn)思路,設(shè)計(jì)了如圖2所示的優(yōu)化一致性協(xié)議.圖2優(yōu)化一致性協(xié)議執(zhí)行過程Fig.2Executionprocessoftheoptimizedconsistencyprotocol協(xié)議的具體執(zhí)行過程如下:1)優(yōu)化一致性協(xié)議發(fā)送請(qǐng)求階段(Srequest):同PBFT算法的請(qǐng)求階段一樣,客服端向主節(jié)點(diǎn)發(fā)送請(qǐng)求消息,消息格式為<SREQUEST,o,t,c>,其中o為請(qǐng)求執(zhí)行狀態(tài)機(jī),t為時(shí)間戳,c表示客戶端編號(hào).2)優(yōu)化一致性協(xié)議預(yù)準(zhǔn)備階段(Spre-prepare):主節(jié)點(diǎn)接收客戶端發(fā)送的請(qǐng)求后會(huì)生成預(yù)準(zhǔn)備消息,并將預(yù)準(zhǔn)備消息廣播到所有共識(shí)節(jié)點(diǎn),消息格式如下<<SPRE-PREPARE,v,n,d,g>,w,m>.其中w為節(jié)點(diǎn)積分信息,此信息用于對(duì)節(jié)點(diǎn)進(jìn)行升降級(jí)處理,g為w進(jìn)行Hash計(jì)算的結(jié)果.3)優(yōu)化一致性協(xié)議反饋階段(Sback):共識(shí)節(jié)點(diǎn)接收到主節(jié)點(diǎn)發(fā)送的預(yù)準(zhǔn)備消息后,首先會(huì)判斷預(yù)準(zhǔn)備消息中的g值和本地的g值是否相同,如果不同,則更新本地的積分信息s;之后會(huì)生成
確認(rèn)消息并廣播到網(wǎng)絡(luò)中的所有節(jié)點(diǎn),消息格式為<SCOMMIT,v,n,d,a>,其中a為確定添加信息,表示主節(jié)點(diǎn)已經(jīng)確認(rèn)添加.所有的節(jié)點(diǎn)接收到確認(rèn)消息后,將次交易信息添加都本地內(nèi)存中.2.3算法的實(shí)現(xiàn)SPBFT算法是在PBFT算法上進(jìn)行改進(jìn),其也是通過網(wǎng)絡(luò)中節(jié)點(diǎn)之間的互相通信來完成共識(shí)操作,其通信過程根據(jù)一致性協(xié)議來執(zhí)行.本算法對(duì)PBFT算法的一致性協(xié)議進(jìn)行改進(jìn),設(shè)計(jì)了一種優(yōu)化一致性協(xié)議,以減少共識(shí)過程中節(jié)點(diǎn)間的通信量.SPBFT算法的流程圖如圖3所示.圖3SPBFT算法流程Fig.3FlowchartoftheSPBFTalgorithmSPBFT算法的具體執(zhí)行過程:1)進(jìn)行節(jié)點(diǎn)的初始化工作.首先,用{0,1,2,…,|S|-1}共N個(gè)整數(shù)對(duì)網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行編號(hào),將節(jié)點(diǎn)的積分初始化為100分,設(shè)置f=(N-1)/3;其次,初始化共識(shí)節(jié)點(diǎn)集合CS和候選節(jié)點(diǎn)集合DS,CS={0,1,2,…,(N-f-1)},DS={(N-f),16第5期方維維等:一種面向區(qū)塊鏈的優(yōu)化PBFT共識(shí)算法
【參考文獻(xiàn)】:
期刊論文
[1]一種基于信用的改進(jìn)PBFT高效共識(shí)機(jī)制[J]. 徐治理,封化民,劉飚. 計(jì)算機(jī)應(yīng)用研究. 2019(09)
[2]區(qū)塊鏈技術(shù):架構(gòu)及進(jìn)展[J]. 邵奇峰,金澈清,張召,錢衛(wèi)寧,周傲英. 計(jì)算機(jī)學(xué)報(bào). 2018(05)
[3]區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J]. 袁勇,王飛躍. 自動(dòng)化學(xué)報(bào). 2016(04)
本文編號(hào):3043810
【文章來源】:北京交通大學(xué)學(xué)報(bào). 2019,43(05)北大核心
【文章頁數(shù)】:7 頁
【部分圖文】:
圖1PBFT算法一致性協(xié)議執(zhí)行過程
概率都為誠實(shí)節(jié)點(diǎn),SPBFT算法將繼續(xù)執(zhí)行優(yōu)化一致性協(xié)議完成接下來的共識(shí)操作.2.2優(yōu)化一致性協(xié)議設(shè)計(jì)PBFT共識(shí)算法的一致性協(xié)議在運(yùn)行過程中需要完成兩次復(fù)雜度為O(N2)的節(jié)點(diǎn)通信,這樣設(shè)計(jì)是為了在網(wǎng)絡(luò)中存在拜占庭節(jié)點(diǎn)的情況下,算法仍能夠完成共識(shí).SPBFT算法在不存在拜占庭節(jié)點(diǎn)的情況下,對(duì)一致性協(xié)議進(jìn)行優(yōu)化,使其在完成復(fù)雜度為O(N)的節(jié)點(diǎn)通信后,算法就能夠完成共識(shí).本文參考文獻(xiàn)[12]中提出的一種簡(jiǎn)化一致性協(xié)議,并結(jié)合本文的改進(jìn)思路,設(shè)計(jì)了如圖2所示的優(yōu)化一致性協(xié)議.圖2優(yōu)化一致性協(xié)議執(zhí)行過程Fig.2Executionprocessoftheoptimizedconsistencyprotocol協(xié)議的具體執(zhí)行過程如下:1)優(yōu)化一致性協(xié)議發(fā)送請(qǐng)求階段(Srequest):同PBFT算法的請(qǐng)求階段一樣,客服端向主節(jié)點(diǎn)發(fā)送請(qǐng)求消息,消息格式為<SREQUEST,o,t,c>,其中o為請(qǐng)求執(zhí)行狀態(tài)機(jī),t為時(shí)間戳,c表示客戶端編號(hào).2)優(yōu)化一致性協(xié)議預(yù)準(zhǔn)備階段(Spre-prepare):主節(jié)點(diǎn)接收客戶端發(fā)送的請(qǐng)求后會(huì)生成預(yù)準(zhǔn)備消息,并將預(yù)準(zhǔn)備消息廣播到所有共識(shí)節(jié)點(diǎn),消息格式如下<<SPRE-PREPARE,v,n,d,g>,w,m>.其中w為節(jié)點(diǎn)積分信息,此信息用于對(duì)節(jié)點(diǎn)進(jìn)行升降級(jí)處理,g為w進(jìn)行Hash計(jì)算的結(jié)果.3)優(yōu)化一致性協(xié)議反饋階段(Sback):共識(shí)節(jié)點(diǎn)接收到主節(jié)點(diǎn)發(fā)送的預(yù)準(zhǔn)備消息后,首先會(huì)判斷預(yù)準(zhǔn)備消息中的g值和本地的g值是否相同,如果不同,則更新本地的積分信息s;之后會(huì)生成
確認(rèn)消息并廣播到網(wǎng)絡(luò)中的所有節(jié)點(diǎn),消息格式為<SCOMMIT,v,n,d,a>,其中a為確定添加信息,表示主節(jié)點(diǎn)已經(jīng)確認(rèn)添加.所有的節(jié)點(diǎn)接收到確認(rèn)消息后,將次交易信息添加都本地內(nèi)存中.2.3算法的實(shí)現(xiàn)SPBFT算法是在PBFT算法上進(jìn)行改進(jìn),其也是通過網(wǎng)絡(luò)中節(jié)點(diǎn)之間的互相通信來完成共識(shí)操作,其通信過程根據(jù)一致性協(xié)議來執(zhí)行.本算法對(duì)PBFT算法的一致性協(xié)議進(jìn)行改進(jìn),設(shè)計(jì)了一種優(yōu)化一致性協(xié)議,以減少共識(shí)過程中節(jié)點(diǎn)間的通信量.SPBFT算法的流程圖如圖3所示.圖3SPBFT算法流程Fig.3FlowchartoftheSPBFTalgorithmSPBFT算法的具體執(zhí)行過程:1)進(jìn)行節(jié)點(diǎn)的初始化工作.首先,用{0,1,2,…,|S|-1}共N個(gè)整數(shù)對(duì)網(wǎng)絡(luò)中的節(jié)點(diǎn)進(jìn)行編號(hào),將節(jié)點(diǎn)的積分初始化為100分,設(shè)置f=(N-1)/3;其次,初始化共識(shí)節(jié)點(diǎn)集合CS和候選節(jié)點(diǎn)集合DS,CS={0,1,2,…,(N-f-1)},DS={(N-f),16第5期方維維等:一種面向區(qū)塊鏈的優(yōu)化PBFT共識(shí)算法
【參考文獻(xiàn)】:
期刊論文
[1]一種基于信用的改進(jìn)PBFT高效共識(shí)機(jī)制[J]. 徐治理,封化民,劉飚. 計(jì)算機(jī)應(yīng)用研究. 2019(09)
[2]區(qū)塊鏈技術(shù):架構(gòu)及進(jìn)展[J]. 邵奇峰,金澈清,張召,錢衛(wèi)寧,周傲英. 計(jì)算機(jī)學(xué)報(bào). 2018(05)
[3]區(qū)塊鏈技術(shù)發(fā)展現(xiàn)狀與展望[J]. 袁勇,王飛躍. 自動(dòng)化學(xué)報(bào). 2016(04)
本文編號(hào):3043810
本文鏈接:http://sikaile.net/guanlilunwen/sjfx/3043810.html
最近更新
教材專著