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