System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及區(qū)塊鏈領(lǐng)域,更具體地涉及一種適合聯(lián)盟鏈的高效的動態(tài)bft共識實現(xiàn)方法。
技術(shù)介紹
1、聯(lián)盟鏈是區(qū)塊鏈的一種類型,它介于公有鏈和私有鏈之間,主要應用于需要部分信任、合作伙伴之間的協(xié)同場景。聯(lián)盟鏈通常由多個機構(gòu)或組織共同管理,不是完全公開的。每個參與機構(gòu)或組織都有權(quán)限加入網(wǎng)絡,但外部用戶沒有直接訪問權(quán)限。
2、傳統(tǒng)聯(lián)盟鏈中的bft共識協(xié)議采用了靜態(tài)委員會,即委員會數(shù)目n始終固定不變,在通信無延遲的同步網(wǎng)絡環(huán)境下,對于每個新產(chǎn)生的區(qū)塊,委員會成員進行投票,當委員會收集到超過n/2個一致投票意見時,區(qū)塊有效性的合法證據(jù)形成,區(qū)塊可以被安全提交。
3、例如公告號為:cn117792608a專利技術(shù)專利公告的適用于聯(lián)盟鏈的優(yōu)化異步bft共識實現(xiàn)方法,包括:當完成初始化后進行交易打包與生成區(qū)塊,將生成的區(qū)塊采用一致性廣播、驗證和投票后,各個節(jié)點采用基于gpc子協(xié)議對區(qū)塊進行一致性確認及提交。本專利技術(shù)采用的dag鏈結(jié)構(gòu),不僅保留每個節(jié)點提案的區(qū)塊來提升交易吞吐量,并能夠利用dag節(jié)點的引用關(guān)系推進協(xié)議;基于一致性廣播(cbc)和全局完美拋幣(gpc)保證異步共識協(xié)議的安全性,采用有向無環(huán)圖dag作為鏈的拓撲結(jié)構(gòu),將dag邊的引用關(guān)系作為bft共識中投票的一部分,加快異步bft共識協(xié)議的運行效率,降低共識協(xié)議的通信復雜度。
4、例如公告號為:cn117424692a專利技術(shù)專利公告的基于分區(qū)技術(shù)的聯(lián)盟鏈共識方法及系統(tǒng),包括:設計基于線性bft的雙層共識框架,并采用創(chuàng)新的分區(qū)架構(gòu),將網(wǎng)絡節(jié)點分到不
5、但本申請在實現(xiàn)本申請實施例中專利技術(shù)技術(shù)方案的過程中,發(fā)現(xiàn)上述技術(shù)至少存在如下技術(shù)問題:
6、然而現(xiàn)實中節(jié)點會因網(wǎng)絡問題或硬件故障等,加入退出協(xié)議運行,當節(jié)點動態(tài)參與時,委員會節(jié)點的總數(shù)n不斷發(fā)生變化且無法被提前預知,原有的靜態(tài)門限n/2無法達成,相應的靜態(tài)bft共識協(xié)議失去活性。本專利技術(shù)基于傳統(tǒng)pbft共識和動態(tài)一致性子協(xié)議實現(xiàn),充分考慮了現(xiàn)實場景中委員會節(jié)點狀態(tài)的不確定性,在休眠模型下解決了委員會節(jié)點動態(tài)參與的問題,本專利技術(shù)具有安全性,高效性和動態(tài)性。
技術(shù)實現(xiàn)思路
1、為了克服現(xiàn)有技術(shù)的上述缺陷,本專利技術(shù)提供了一種適合聯(lián)盟鏈的高效的動態(tài)bft共識實現(xiàn)方法,以解決上述
技術(shù)介紹
中存在的問題。
2、為實現(xiàn)上述目的,本專利技術(shù)提供如下技術(shù)方案:
3、一種適合聯(lián)盟鏈的高效的動態(tài)bft共識實現(xiàn)方法,包括以下步驟:步驟1:對網(wǎng)絡中的協(xié)議進行初始化;步驟2:對網(wǎng)絡中節(jié)點進行主節(jié)點選舉;步驟3:對節(jié)點設置動態(tài)一致性協(xié)議,動態(tài)一致性協(xié)議包括一般流程與快速流程;步驟4:將步驟3設置的動態(tài)一致性協(xié)議嵌入到傳統(tǒng)的拜占庭容錯協(xié)議的通信流程中,得到動態(tài)bft協(xié)議。
4、優(yōu)選的,所述對網(wǎng)絡中的協(xié)議進行初始化步驟為:設定協(xié)議的最大延遲時間,保證消息在發(fā)出最大延遲時間內(nèi)送達,且協(xié)議基于鎖步同步網(wǎng)絡實現(xiàn),使各節(jié)點維護的本地時鐘基本一致;在協(xié)議啟動時,初始化委員會,使委員會中節(jié)點數(shù)量為n,且委員會中節(jié)點數(shù)量是公開的,并保證每個節(jié)點都有唯一的編號;設置通信網(wǎng)絡為p2p網(wǎng)絡,網(wǎng)絡中每個節(jié)點通過泛洪方式接入網(wǎng)絡并傳遞收到的消息;在協(xié)議運行前,節(jié)點在本地生成自己的公鑰與私鑰,并以公鑰作為身份信息,每個節(jié)點在協(xié)議初始化時向全網(wǎng)絡廣播自己的公鑰;設定協(xié)議當前的輪次,記為初始化視圖號,且每次主節(jié)點變更或新一輪區(qū)塊提案開始時,視圖號增加;各節(jié)點收集網(wǎng)絡中的交易記錄交易池,后續(xù)節(jié)點從交易池中取出交易打包區(qū)塊;在網(wǎng)絡運行過程中,若有協(xié)議加入或退出網(wǎng)絡,設定一個誠實大多數(shù)的約束條件。
5、優(yōu)選的,所述各節(jié)點收集網(wǎng)絡中的交易記錄交易池,后續(xù)節(jié)點從交易池中取出交易打包區(qū)塊步驟為:將用戶交易廣播到整個網(wǎng)絡,使每個節(jié)點都會接收這些交易;將接收到的交易暫時保存在“交易池”中,等待節(jié)點將其納入一個區(qū)塊中;節(jié)點根據(jù)手續(xù)費從交易池中篩選出交易;節(jié)點將篩選出的交易整理成一個區(qū)塊的數(shù)據(jù)結(jié)構(gòu),并對區(qū)塊的數(shù)據(jù)進行哈希計算,得到區(qū)塊唯一的區(qū)塊哈希值;節(jié)點根據(jù)區(qū)塊哈希值完成一個區(qū)塊的打包和驗證后,將該區(qū)塊廣播到網(wǎng)絡中,通知其他節(jié)點更新他們的區(qū)塊鏈記錄;其他節(jié)點驗證這個新區(qū)塊的有效性,若驗證為有效,則將區(qū)塊添加到本地的區(qū)塊鏈賬本中。
6、優(yōu)選的,所述對區(qū)塊的數(shù)據(jù)進行哈希計算,得到區(qū)塊唯一的區(qū)塊哈希值步驟為:獲取區(qū)塊中的各項數(shù)據(jù),所述各項數(shù)據(jù)包括前一個區(qū)塊的哈希、merkle根以及時間戳;根據(jù)各項數(shù)據(jù)得到區(qū)塊唯一的區(qū)塊哈希值的方法為bh=h(ph+mr+tp+no),其中bh表示為區(qū)塊唯一的區(qū)塊哈希值,h為哈希函數(shù),ph為前一個區(qū)塊的哈希值,mr為區(qū)塊中所有交易的根哈希值,tp為區(qū)塊生成的時間戳,no為隨機數(shù)。
7、優(yōu)選的,所述誠實大多數(shù)的約束條件為:獲取在線節(jié)點總數(shù)量n與惡意節(jié)點數(shù)ft,在任意時間t,在線的拜占庭節(jié)點數(shù)量ft不能超過總在線節(jié)點數(shù)n的一半,即
8、優(yōu)選的,所述對網(wǎng)絡中節(jié)點進行主節(jié)點選舉步驟為:每一輪選舉開始時,初始化視圖的輪次編號,所述輪次編號對應當前選舉輪次中的主節(jié)點任期;所有在線節(jié)點通過可驗證隨機函數(shù)進行計算,得到一個vrf值;每個在線節(jié)點在計算出vrf值后,將vrf值廣播到網(wǎng)絡中;網(wǎng)絡中所有節(jié)點收集網(wǎng)絡中廣播的vrf值,并對這些值進行對比,選取vrf值最大的節(jié)點作為本輪次的主節(jié)點,也即出塊節(jié)點;通過選取的主節(jié)點生成新區(qū)塊并廣播,網(wǎng)絡中誠實節(jié)點對新區(qū)塊進行驗證,并在確認區(qū)塊有效性后達成共識,將新區(qū)塊添加到區(qū)塊鏈中;本輪次的區(qū)塊生成并確認完畢后,更新視圖編號,并在下一輪選舉開始時,所有節(jié)點再次計算新的vrf值,選出新一輪的主節(jié)點。
9、優(yōu)選的,所述所有在線節(jié)點通過可驗證隨機函數(shù)進行計算,得到一個vrf值步驟為:獲取節(jié)點的公鑰與私鑰;根據(jù)節(jié)點的公鑰與私鑰得到vrf值的方法為vrf=h(sig(sk,x)),其中vrf表示為vrf值,h為一種哈希函數(shù)法,sig為數(shù)字簽名函數(shù),sk為節(jié)點的私鑰,x為輸入數(shù)據(jù)。
10、優(yōu)選的,所述一般流程步驟為:步驟3.1:在線節(jié)點在進入?yún)f(xié)議時發(fā)送一個awake消息,消息格式為<awake,v,s,h(pre)>pk,其中v為當前視圖號,s為消息屬于視圖v中的第s步,h(pre)為節(jié)點最新狀態(tài)消息pre的哈希值,下標pk為節(jié)點的公鑰;將在線節(jié)點發(fā)送的awake消息收集在一個集合awk中,且新加入的節(jié)點在收到awk集合中的信息后更新至當前狀態(tài),退出節(jié)點則會被自動忽略;步驟3.2:所有在線節(jié)點收集awk集合中的awa本文檔來自技高網(wǎng)...
【技術(shù)保護點】
1.一種適合聯(lián)盟鏈的高效的動態(tài)BFT共識實現(xiàn)方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種適合聯(lián)盟鏈的高效的動態(tài)BFT共識實現(xiàn)方法,其特征在于:所述對網(wǎng)絡中的協(xié)議進行初始化步驟為:
3.根據(jù)權(quán)利要求2所述的一種適合聯(lián)盟鏈的高效的動態(tài)BFT共識實現(xiàn)方法,其特征在于,所述各節(jié)點收集網(wǎng)絡中的交易記錄交易池,后續(xù)節(jié)點從交易池中取出交易打包區(qū)塊步驟為:
4.根據(jù)權(quán)利要求3所述的一種適合聯(lián)盟鏈的高效的動態(tài)BFT共識實現(xiàn)方法,其特征在于,所述對區(qū)塊的數(shù)據(jù)進行哈希計算,得到區(qū)塊唯一的區(qū)塊哈希值步驟為:
5.根據(jù)權(quán)利要求2所述的一種適合聯(lián)盟鏈的高效的動態(tài)BFT共識實現(xiàn)方法,其特征在于:所述誠實大多數(shù)的約束條件為:
6.根據(jù)權(quán)利要求1所述的一種適合聯(lián)盟鏈的高效的動態(tài)BFT共識實現(xiàn)方法,其特征在于:所述對網(wǎng)絡中節(jié)點進行主節(jié)點選舉步驟為:
7.根據(jù)權(quán)利要求6所述的一種適合聯(lián)盟鏈的高效的動態(tài)BFT共識實現(xiàn)方法,其特征在于:所述所有在線節(jié)點通過可驗證隨機函數(shù)進行計算,得到一個VRF值步驟為:
8.根據(jù)權(quán)利要求
9.根據(jù)權(quán)利要求1所述的一種適合聯(lián)盟鏈的高效的動態(tài)BFT共識實現(xiàn)方法,其特征在于:所述快速流程步驟為:
10.根據(jù)權(quán)利要求1所述的一種適合聯(lián)盟鏈的高效的動態(tài)BFT共識實現(xiàn)方法,其特征在于:所述得到動態(tài)BFT協(xié)議步驟為:
...【技術(shù)特征摘要】
1.一種適合聯(lián)盟鏈的高效的動態(tài)bft共識實現(xiàn)方法,其特征在于,包括以下步驟:
2.根據(jù)權(quán)利要求1所述的一種適合聯(lián)盟鏈的高效的動態(tài)bft共識實現(xiàn)方法,其特征在于:所述對網(wǎng)絡中的協(xié)議進行初始化步驟為:
3.根據(jù)權(quán)利要求2所述的一種適合聯(lián)盟鏈的高效的動態(tài)bft共識實現(xiàn)方法,其特征在于,所述各節(jié)點收集網(wǎng)絡中的交易記錄交易池,后續(xù)節(jié)點從交易池中取出交易打包區(qū)塊步驟為:
4.根據(jù)權(quán)利要求3所述的一種適合聯(lián)盟鏈的高效的動態(tài)bft共識實現(xiàn)方法,其特征在于,所述對區(qū)塊的數(shù)據(jù)進行哈希計算,得到區(qū)塊唯一的區(qū)塊哈希值步驟為:
5.根據(jù)權(quán)利要求2所述的一種適合聯(lián)盟鏈的高效的動態(tài)bft共識實現(xiàn)方法,其特征在于:所述誠實大多數(shù)的約束條件...
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:丁寧,龍宇,谷大武,
申請(專利權(quán))人:無錫市區(qū)塊鏈高等研究中心,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。