• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      自適應節(jié)點規(guī)模的區(qū)塊鏈分片可擴展模型

      2024-03-21 08:15:38李寶瑩李志淮王成愛楊鋒
      計算機工程 2024年3期
      關(guān)鍵詞:拜占庭分片共識

      李寶瑩,李志淮,王成愛,楊鋒

      (大連海事大學信息科學技術(shù)學院,遼寧 大連 116026)

      0 引言

      自從2008 年中本聰發(fā)布比特幣白皮書[1]以來,越來越多的研究者開始關(guān)注比特幣背后的區(qū)塊鏈技術(shù)。然而,隨著區(qū)塊鏈網(wǎng)絡中交易數(shù)量的增多與去中心化應用的發(fā)展,區(qū)塊鏈出現(xiàn)了嚴重的性能瓶頸,已無法滿足實際應用的需求。擴容是區(qū)塊鏈的核心任務和前沿技術(shù)難題。研究者們提出了許多擴容方案,例如,擴塊[2]、有向無環(huán)圖(DAG)[3-5]、分片[6-7]、側(cè)鏈[8]、狀態(tài)通道[9]等,其中分片是目前最可能實現(xiàn)區(qū)塊鏈擴容的技術(shù)之一,狀態(tài)分片能夠從本質(zhì)上解決公鏈的可擴展性問題。在狀態(tài)分片的情況下,由于每個分片只保留了狀態(tài)的一部分,因此一旦一個新節(jié)點加入一個分片中,系統(tǒng)就必須確保該節(jié)點有足夠的時間進行分片狀態(tài)的同步,否則新節(jié)點將無法參與交易的驗證。

      分片方案通常被視為安全地適應開放網(wǎng)絡中節(jié)點數(shù)變化的可持續(xù)擴展方案,但現(xiàn)有分片方案大多預先設(shè)定了分片規(guī)模。公鏈處于一個開放低門檻的分布式環(huán)境中,網(wǎng)絡中的節(jié)點狀態(tài)和規(guī)模隨時會發(fā)生變化,當網(wǎng)絡中的節(jié)點數(shù)量在短時間內(nèi)發(fā)生較大變化時,現(xiàn)有利用時間片在分片內(nèi)更新節(jié)點的方式將相對滯后,并且不適用于節(jié)點數(shù)量明顯波動的情況。一方面,預先設(shè)定分片的規(guī)模只是為了暫時的方便,偏離了更多的節(jié)點提供更高性能的設(shè)計目的,同時也會使網(wǎng)絡在短時間內(nèi)面對更多節(jié)點時無法及時發(fā)揮節(jié)點性能,從而導致網(wǎng)絡無法充分利用節(jié)點資源。另一方面,在區(qū)塊鏈網(wǎng)絡中的節(jié)點數(shù)在短時間內(nèi)大幅減少的情況下,預先設(shè)定分片規(guī)模也會增加分片內(nèi)的安全隱患。除此之外,預先設(shè)定分片規(guī)模的靜態(tài)分片方案未來即使需要擴大分片規(guī)模,也只能采用時延較長、成本較高的硬分叉方式,這使得系統(tǒng)更新更困難、代價更大、速度更慢。

      在分片后要面臨的是安全性降低的問題:分片后單個分片內(nèi)節(jié)點數(shù)量遠低于分片前整個區(qū)塊鏈網(wǎng)絡的節(jié)點數(shù)量,導致攻擊者對單個分片發(fā)起攻擊的成本極大降低。假設(shè)系統(tǒng)包含S個分片,在節(jié)點被均勻地分配到各個分片的情況下,每個分片的安全性變?yōu)樵日麠l鏈的1/S。若分片前后區(qū)塊鏈都采用工作量證明(POW)共識(假設(shè)各個節(jié)點的算力相當),則分片前攻擊者需要控制超過50%的節(jié)點才能發(fā)動51%攻擊,而分片后攻擊者若想攻擊單個分片,則只需要控制分片內(nèi)超過50%/S的節(jié)點。

      在網(wǎng)絡中節(jié)點數(shù)一定的情況下,擴展分片的數(shù)量意味著分片內(nèi)節(jié)點數(shù)的減少,也意味著攻擊者攻擊單個分片的代價更小,分片的安全性被削弱。因此,從安全方面而言,分片內(nèi)要有足夠的節(jié)點來保證安全性和去中心化,分片的節(jié)點數(shù)應該有一個最小值,即下限閾值。當分片的節(jié)點數(shù)低于下限閾值時,此時的分片不滿足基本安全要求,節(jié)點數(shù)量需要增加,給分片補充節(jié)點。但由于在狀態(tài)分片下,補充新的節(jié)點存在同步分片狀態(tài)的滯后問題,因此應采取縮減分片規(guī)模的方式來確保分片的節(jié)點數(shù)不低于下限閾值。

      在滿足基本的安全要求后,若分片的節(jié)點數(shù)過多,則會影響網(wǎng)絡的吞吐量。在網(wǎng)絡中節(jié)點數(shù)一定的情況下,增加分片內(nèi)的節(jié)點數(shù)而減少分片的數(shù)量會使整個網(wǎng)絡的并行度降低,進而影響網(wǎng)絡的吞吐量。同時,若分片內(nèi)的節(jié)點過多,則會增加節(jié)點間的通信開銷,節(jié)點需要存儲和維護的區(qū)塊信息和狀態(tài)數(shù)據(jù)也會隨之增多,而通信量的增大也會對網(wǎng)絡帶寬造成影響。因此,分片的節(jié)點數(shù)也應該有一個最大值,即上限閾值。當分片節(jié)點數(shù)高于上限閾值時,此時的分片可以通過向外擴展以提高吞吐能力。

      本文建立基于狀態(tài)歸約的自適應節(jié)點規(guī)模的動態(tài)分片可擴展模型(DSSM),旨在使分片規(guī)模能夠自適應節(jié)點環(huán)境并且動態(tài)可擴展,同時不削弱去中心化程度和安全性。設(shè)計基于可驗證延遲函數(shù)(VDF)+可驗證隨機函數(shù)(VRF)的節(jié)點隨機數(shù)生成算法,可以對抗Sybil 攻擊以及避免可能存在的惡意節(jié)點相互串通、提前計算符合它們要求的隨機數(shù)的情況。

      1 相關(guān)工作

      1.1 符號與定義

      本節(jié)簡要介紹了使用的相關(guān)符號及定義,如表1所示。

      表1 符號及定義Table 1 Symbols and definitions

      1.2 安全的去中心化隨機數(shù)生成器

      1.2.1 可驗證隨機函數(shù)

      VRF 是一種將輸入映射為可驗證的偽隨機輸出的加密函數(shù)[10],已被廣泛應用于Algorand[11]、本體的VBFT 算法等 加密場 景,一般由Keygen、Evaluate、Verify 算法組成。

      對于相同的密鑰對以及輸入X,VRF 只會產(chǎn)生唯一的偽隨機字符串Y和證明ρ。因此,VRF 滿足以下性質(zhì):1)偽隨機性,對于不知道證明ρ的第三方而言,它看起來輸出值是隨機的;2)可驗證性,輸出結(jié)果能夠被驗證;3)唯一性,輸出的隨機值是唯一的,具有不可偽造或抵賴性,不可能通過給定的密鑰對(VK,SK)和消息X產(chǎn)生不同的輸出Y和證明ρ。

      1.2.2 可驗證延遲函數(shù)

      VDF 是一類數(shù)學函數(shù)[12],即使在同時使用不同CPU 并行計算的情況下計算出結(jié)果也至少需要一段已知的時間,一般由Setup、Eval和Verify算法組成。

      VDF 滿足以下性質(zhì):1)驗證高效;2)唯一性,對于任意一個VDF 的輸入,應有唯一的輸出結(jié)果能夠通過檢驗;3)串行性,攻擊者即使擁有很多算力,能夠并行計算,但是其以少于某個固定時間計算出VDF 結(jié)果的概率小到可忽略不計。

      1.3 其他區(qū)塊鏈分片方案

      1.3.1 以太坊

      2022 年9 月,以太坊進行了合并,實現(xiàn)了從POW 到權(quán)益證明(POS)的過渡。同時,以太坊官方明確了擴展以太坊性能的方向,即放棄最初的分片方案,啟動以Rollup 為中心的擴容方案,也就是Danksharding[13]。

      Danksharding 的主要特點包括:1)Blob 數(shù)據(jù)分片傳輸;2)數(shù)據(jù)可用性抽樣實現(xiàn)區(qū)塊驗證;3)區(qū)塊提議者與構(gòu)建者分離(PBS)。

      1.3.2 Monoxide

      Monoxide[14]的主要思想是通過異步共識組來實現(xiàn)公鏈擴容,主要特點包括:1)將區(qū)塊鏈網(wǎng)絡劃分為多個獨立和并行的Zone;2)高效處理跨越不同Zone的交易;3)通過“連弩挖礦”的方式解決分組后挖礦算力稀釋的問題。

      Monoxide 在完全去中心化的前提下實現(xiàn)了全方位的分片,保證了可以正確高效地完成其上的跨分片交易,并保證了攻擊單個共識組的代價與攻擊整個網(wǎng)絡的代價相當。

      1.3.3 NEAR

      NEAR[15]將系統(tǒng)建模成一個單獨的區(qū)塊鏈,其中每個塊邏輯上包含所有分片的全部交易以及改變所有分片的整個狀態(tài)。然而,在物理上任何參與者都不會下載完整的狀態(tài)或完整的邏輯區(qū)塊,網(wǎng)絡的每個參與者只是維護為之驗證交易的分片上對應的狀態(tài),區(qū)塊中的所有交易的列表被分割成物理上的段,一個分片為一個段。

      1.4 多輪驗證思想與狀態(tài)分片基礎(chǔ)上的共識組

      實用拜占庭容錯(PBFT)[16]算法具有“即時敲定”的特性,即被PBFT 共識驗證通過并上鏈的交易會被永久確認,沒有被篡改的可能性,這使得它天然具有避免分叉的特性。然而,PBFT 只有1/3 的拜占庭容錯率,這就使得它的實際應用會受到很多限制。

      針對在分片內(nèi)使用PBFT 共識所面臨的因拜占庭節(jié)點比例超過1/3 而導致共識失敗的問題,研究者們提出了多輪驗證的思想。多輪驗證的主要思路為:若交易驗證失敗,則不是立刻丟棄該交易,而是更新分片內(nèi)的節(jié)點,對交易進行新一輪驗證,以此類推,直到交易驗證成功或者達到驗證輪數(shù)上限而放棄該交易。

      然而,普通的多輪驗證方案對于交易驗證采用的是分片內(nèi)的全部節(jié)點均參與的方式。這會帶來一些問題:PBFT 的通信復雜度是O(n2)級別,若是分片內(nèi)全部節(jié)點均參與PBFT 共識,則會引起通信量過大的問題。另外,每輪都更新分片內(nèi)的節(jié)點,會造成許多額外開銷。

      針對以上問題,研究者們提出分片共識組[17]的概念,其主要思想是篩選分片內(nèi)的部分節(jié)點,構(gòu)建共識組對交易進行驗證,這能有效降低通信開銷,同時啟用積分機制對節(jié)點表現(xiàn)進行評價,從而能夠高效甄別拜占庭節(jié)點,提高了系統(tǒng)安全性。

      1.5 動態(tài)分片

      自適應節(jié)點規(guī)模的區(qū)塊鏈分片可擴展模型是動態(tài)分片技術(shù)的優(yōu)化研究。針對傳統(tǒng)分片預先設(shè)定分片規(guī)模的靜態(tài)分片方式的局限性:文獻[18]提出一種在聯(lián)盟鏈中的基于隨機值的動態(tài)分片協(xié)議,在聯(lián)盟鏈中降低了靜態(tài)分片的安全風險,但并未給出具體的應用場景;文獻[19]提出一種基于深度強化學習的動態(tài)分片區(qū)塊鏈框架,采用深度強化學習來調(diào)整分片策略,以解決節(jié)點加入、退出、惡意攻擊等動態(tài)環(huán)境下的問題;文獻[20]為了解決跨分片交易問題提出一種方案,首先在劃分分片時考慮其數(shù)據(jù)相關(guān)性以減少跨分片交易的概率,然后通過考慮分片的利用率進行合并和分割,并通過選舉領(lǐng)導者來減少共識延遲;文獻[21]通過動態(tài)分片減少各個節(jié)點存儲的舊區(qū)塊副本來減少存儲負載,但并未規(guī)定節(jié)點間或者分片間的通信規(guī)則,在驗證交易時如果需要的數(shù)據(jù)不在本地,則需要從其他節(jié)點處獲取,這就存在數(shù)據(jù)一致性問題。

      2 環(huán)境假設(shè)

      2.1 網(wǎng)絡模型

      對于底層網(wǎng)絡,假設(shè)與其他方案一致[22-24],并假設(shè):1)誠實節(jié)點的網(wǎng)絡是良好連接的;2)誠實節(jié)點的通信通道是同步的,即一個誠實節(jié)點廣播一個消息,那么所有節(jié)點都能在一個已知的最大延遲?[25]內(nèi)接收該消息。

      2.2 威脅模型

      網(wǎng)絡中存在誠實和拜占庭兩種節(jié)點。假設(shè)網(wǎng)絡中拜占庭節(jié)點的比例f≤1/3,也就是網(wǎng)絡中最多有1/3的驗證者可能是惡意的。誠實節(jié)點遵守所有協(xié)議,惡意節(jié)點可以進行任意操作,它們可以以任意方式違反協(xié)議,如拒絕發(fā)送、篡改和偽造消息等。它們之間還可能相互串通來共同作惡。假設(shè)拜占庭對手是慢適應的,即拜占庭節(jié)點和誠實節(jié)點的集合在每個時隙內(nèi)都是固定的,只有在不同的時隙之間才能變化。

      3 DSSM 模型

      針對傳統(tǒng)分片方案預定分片規(guī)模的靜態(tài)分片方式產(chǎn)生的性能缺陷與安全隱患,本文力圖實現(xiàn)一種樹型分層的自適應節(jié)點規(guī)模的分片可擴展模型,以提高分片區(qū)塊鏈系統(tǒng)在向外擴展時的魯棒性與自適應性。

      3.1 狀態(tài)歸約思想

      傳統(tǒng)分片方案中分片內(nèi)的節(jié)點只會維護本分片的狀態(tài),而狀態(tài)歸約思想鼓勵高性能的節(jié)點同步其他分片的狀態(tài)。當某個節(jié)點具有兩個及以上的分片狀態(tài)時,它就成了歸約節(jié)點。狀態(tài)同步且具有相同分片(至少兩個)狀態(tài)的節(jié)點集合構(gòu)成了新的分片,稱為歸約分片。歸約分片與被同步狀態(tài)的分片之間構(gòu)成了樹結(jié)構(gòu),如圖1 所示。

      圖1 分片間的邏輯關(guān)系Fig.1 Logical relationship between shards

      根據(jù)狀態(tài)歸約思想,處于父節(jié)點位置的分片(父級分片)中的節(jié)點將會存儲處于其孩子節(jié)點位置的分片(子分片)的所有狀態(tài)信息。在圖1 中,分片A處于分片B 與分片C 的父節(jié)點的位置上,分片B 和C分別處于兩個孩子節(jié)點的位置上。分片B 和C 中的白色節(jié)點分別同步了其兄弟分片的狀態(tài)而成了歸約節(jié)點,這兩部分白色節(jié)點同時具有分片B 和C 的狀態(tài),它們共同組成了歸約分片A。對于分片B 和C 中的白色節(jié)點,它們的邏輯級別屬于分片A 這一級別。

      3.2 DSSM 模型構(gòu)建

      在DSSM 中分片可以分為兩種:一種是基礎(chǔ)分片,它們是物理上的實際分片,與其他方案中的分片相似,每個基礎(chǔ)分片獨立驗證分片的事務;另一種是邏輯分片,又稱為歸約分片,它們是邏輯上的分片,不是實際的分片。在歸約分片中的節(jié)點,要在分片的動態(tài)調(diào)整中發(fā)揮作用,例如為節(jié)點的狀態(tài)同步提供相應數(shù)據(jù)、在分片動態(tài)調(diào)整過程中傳遞相應的消息等。

      DSSM 模型使用分片歸約樹這樣的邏輯結(jié)構(gòu)來控制分片的動態(tài)擴展。分片歸約樹是一個二叉樹的結(jié)構(gòu),如圖2 所示(彩色效果見《計算機工程》官網(wǎng)HTML 版),其中每個葉子節(jié)點代表的是一個基礎(chǔ)分片,而處于非葉子節(jié)點位置上的節(jié)點是邏輯分片(歸約分片),它們維護孩子節(jié)點所對應分片的所有狀態(tài),并在分片動態(tài)調(diào)整時保證分片狀態(tài)的平穩(wěn)過渡。

      圖2 DSSM 歸約模型Fig.2 Reduction model of DSSM

      DSSM 考慮到節(jié)點的性能存在差異,因此通過激勵機制,鼓勵高性能的節(jié)點盡可能地同步兄弟分片的狀態(tài),成為上層歸約分片中的節(jié)點,從而使得在分片動態(tài)調(diào)整時,相應的狀態(tài)信息不會丟失,分片也不至于因為狀態(tài)信息的不一致而導致癱瘓。

      在整個網(wǎng)絡中,性能較好的節(jié)點處于DSSM 模型較上層位置,性能較差的節(jié)點處于DSSM 模型較下層位置。DSSM 還有一個基本原則就是所有歸約分片中的節(jié)點即使邏輯級別和狀態(tài)存儲各有不同,但在物理上它們都處于各自的基礎(chǔ)分片中,它們?nèi)匀恍枰袚鶎倩A(chǔ)分片的交易驗證任務,這符合性能越好需要承擔的任務越多的設(shè)計理念。這樣的設(shè)計能夠較為充分地發(fā)揮節(jié)點的性能,從而提高整個區(qū)塊鏈網(wǎng)絡的性能。

      3.3 DSSM 消息傳遞規(guī)則

      由于DSSM 所有節(jié)點實際上都處于基礎(chǔ)分片中,節(jié)點同步更多的狀態(tài)只是為了在分片的動態(tài)調(diào)整中發(fā)揮更多的作用。歸約分片并不是真分片,是邏輯上的分片,是虛分片。同時,為了動態(tài)擴展的需要,每個基礎(chǔ)分片中也必然存在這樣的節(jié)點,它們處于各級的祖先分片中。

      在DSSM 中的消息傳遞規(guī)則是所有的消息都在本分片內(nèi)傳遞,這里的本分片既包括物理上的實際分片,也包括邏輯上的虛分片。

      以圖3 為例,假設(shè)節(jié)點4 在分片C 中廣播消息,那么節(jié)點1、2 和3 就可以接收到消息,并分別將消息在分片Root、A 和B 中廣播。此時,消息在分片C 內(nèi)部廣播的同時,也將近乎并行地在分片Root、A 和B中廣播。同樣地,節(jié)點7、10 和13 也會因為分片Root、A 和B 中的消息廣播而捕獲此消息,那么分片E、D 和F 也會接收到此消息。以此類推,父級分片的節(jié)點在廣播消息的同時,其子分片的節(jié)點也在近乎并行地廣播消息。因此,當某一節(jié)點在自己的分片中廣播消息時,全網(wǎng)的所有分片(包括基礎(chǔ)分片和歸約分片)也在近乎并行地廣播消息,這大大提高了消息的傳遞效率。

      圖3 消息傳遞規(guī)則Fig.3 Messaging rules

      4 DSSM 分片自適應擴展設(shè)計

      DSSM 實行狀態(tài)分片,并以存儲狀態(tài)為依據(jù)將節(jié)點進行邏輯分層。

      4.1 歸約樹邏輯結(jié)構(gòu)初始化

      一般地,為了更好地兼容未實施分片的區(qū)塊鏈系統(tǒng),DSSM 的分片初始化由單個分片(稱為根分片Root)開始。未分片的區(qū)塊鏈網(wǎng)絡可以視為網(wǎng)絡中只有單個分片。

      1)當Roo(t對于未實施分片的區(qū)塊鏈,Root 包括其所有節(jié)點)中的節(jié)點數(shù)超過上限閾值O時,便可以開始分片的分裂。

      2)由于存在分片分裂之后產(chǎn)生的兩個子分片的節(jié)點數(shù)依然超過上限閾值O的情況,因此每次分裂后形成的子分片的節(jié)點繼續(xù)按照步驟1)中的標準判斷所在子分片是否滿足分片分裂條件,若滿足,則可以執(zhí)行相應的分片分裂過程。

      3)執(zhí)行步驟2)中的過程,直到節(jié)點檢測到所在子分片的節(jié)點數(shù)不超過O為止。

      4.2 分片的全網(wǎng)分裂

      4.2.1 分裂條件

      1)節(jié)點發(fā)起分裂請求提案的條件

      當基礎(chǔ)分片內(nèi)任一節(jié)點發(fā)現(xiàn)分片的節(jié)點數(shù)已經(jīng)超過上限閾值O,并且它能夠提供其所處基礎(chǔ)分片滿足分片分裂條件的證明時,就可以發(fā)起分裂請求提案。

      2)全網(wǎng)分片分裂條件

      當全網(wǎng)分片分裂后不會導致某些新分片的節(jié)點數(shù)低于T且超過1/2 的分片響應分裂時,可以開始全網(wǎng)分片的分裂。

      3)單個分片分裂條件

      當基礎(chǔ)分片中的節(jié)點就是否響應分裂進行PBFT 共識時,每個節(jié)點除了需要在消息中注明是否響應,同時需要注明是否愿意留在當前分片內(nèi)成為歸約節(jié)點,即是否愿意同步兩個基礎(chǔ)分片的狀態(tài)(在分裂完成后,當前分片處于歸約樹中非葉子節(jié)點的位置,它在邏輯上已經(jīng)屬于歸約分片,分裂產(chǎn)生的新分片處于新的葉子節(jié)點位置上,它們是新的基礎(chǔ)分片)。在對響應分裂達成共識的情況下,只有愿意留在當前分片內(nèi)的節(jié)點數(shù)大于等于T,基礎(chǔ)分片才可以將響應消息向上傳遞。

      4.2.2 分片的分裂過程

      4.2.2.1 請求階段

      基礎(chǔ)分片內(nèi)某一節(jié)點發(fā)現(xiàn)分片的節(jié)點數(shù)已經(jīng)超過了O,它便發(fā)起分裂請求提案。該提案包括其所屬基礎(chǔ)分片滿足分裂條件的證明、請求編號以及它的數(shù)字簽名。

      4.2.2.2 預準備階段

      分裂請求提案一經(jīng)提出,便會在發(fā)起提案的節(jié)點所屬的基礎(chǔ)分片內(nèi)廣播,該基礎(chǔ)分片的祖先分片中的節(jié)點便可以捕獲這個提案,然后捕獲提案的節(jié)點作為當前其所在的歸約樹中最高級別分片PBFT共識的主節(jié)點,執(zhí)行PBFT 共識,目的是就該提案是否可以執(zhí)行達成一致。以圖3 為例,假設(shè)分片C 中的節(jié)點發(fā)起分裂請求提案,分片Root、A 和B 中的節(jié)點1、2 和3 若是捕獲到該提案,則其便作為主節(jié)點在相應分片內(nèi)開始PBFT 共識。

      若是達成一致性共識,則先向另一個非提案來源的子分片廣播一致性結(jié)果和提案,再由該子分片向它的所有子分片傳遞一致性結(jié)果和提案。以此類推,直到傳遞至基礎(chǔ)分片。以圖3 為例,對于分片A中的節(jié)點,它們接收的提案來自分片C,也就是分片B 這一分支,則在分片A 達成一致性共識的情況下,分片A 中的節(jié)點要主動將一致性結(jié)果和提案傳遞給另一分支即分片D,再由分片D 繼續(xù)向下層擴散傳遞。同樣地,對應圖4 中的分片Root 和分片B,它們要分別傳遞一致性結(jié)果和提案給分片F(xiàn) 和分片E,再由F 和E 繼續(xù)向下傳遞,其中箭頭上的標注代表傳遞過程中一致性結(jié)果的來源。

      圖4 預準備階段的消息傳遞路線Fig.4 Messaging routes of pre-prepare phase

      若是在某一級分片達不成一致性共識,則該分片的主節(jié)點要向其子分片傳遞拒絕請求消息。拒絕請求消息傳遞路線如圖5 所示。

      圖5 拒絕請求消息傳遞路線Fig.5 Reject request messaging routes

      仍以圖3 為例,若是分片Root 沒有達成一致性共識,則主節(jié)點會向來源分片(分片A)傳遞拒絕請求消息,消息的傳遞路線如圖5(a)所示。若分片A沒有達成一致性共識,則拒絕請求消息的傳遞路線如圖5(b)所示。對于分片B,拒絕請求消息的傳遞路線如圖5(c)所示。對于來源分片,例如圖5(a)中的分片A,則需要向其所有子分片傳遞拒絕請求消息,以此類推,直到基礎(chǔ)分片。這是因為拒絕請求的分片在發(fā)現(xiàn)請求需要被否決時,來源分片可能已經(jīng)達成一致性共識并將結(jié)果傳遞給下級分片。

      4.2.2.3 準備階段

      預準備階段通過消息的并行傳遞可以使一致性結(jié)果和分裂請求提案傳遞到各個基礎(chǔ)分片。此時,若是某基礎(chǔ)分片中不屬于歸約分片的節(jié)點捕獲到傳遞來的一致性結(jié)果,它便作為該基礎(chǔ)分片中PBFT 共識的主節(jié)點執(zhí)行PBFT 共識,其目的是就是否響應分片分裂達成一致性共識。在基礎(chǔ)分片達成共識后,將結(jié)果向上傳遞給根分片Root。

      與此同時,Root 在預準備階段達成一致性共識后,便開始使用VRF 來確定分裂的啟動者。在啟動者確定后,設(shè)置超時時間,等待并收集基礎(chǔ)分片的響應消息。若收集到超過1/2 的來自基礎(chǔ)分片的同意響應的消息,則開始分裂的執(zhí)行階段。

      4.2.2.4 執(zhí)行階段

      1)分裂過程相關(guān)參數(shù)的確定

      分裂啟動者一旦收集到超過1/2 的來自基礎(chǔ)分片的同意響應的消息,并且全網(wǎng)分片分裂后不會導致某些新分片的節(jié)點數(shù)低于分片節(jié)點數(shù)的下限閾值T,它就作為分裂決策共識(共識節(jié)點集合是Root 中的全部節(jié)點)的主節(jié)點發(fā)起分裂提案,提案中包括分裂過程中相關(guān)參數(shù)的一些設(shè)定,包含VDF 所需的時間參數(shù)t、安全參數(shù)λ和啟動者產(chǎn)生提案的當前時隙C以及參數(shù)z(將C時隙之后第z個區(qū)塊的哈希值作為VDF 的隨機性輸入x)。

      若根分片Root 沒有對分裂提案達成共識,則依據(jù)多輪驗證的思想,重新通過VRF 算法選擇新的啟動者進行新一輪的分裂決策共識,直到達到共識輪數(shù)上限仍未達成共識才放棄此次分裂過程。

      若在分裂決策共識中分裂提案被同意,則分片Root 中的節(jié)點便將一致性結(jié)果向下傳遞,直至傳遞到所有基礎(chǔ)分片。

      2)節(jié)點隨機數(shù)的生成

      在基礎(chǔ)分片中的節(jié)點接收到分裂決策共識的一致性結(jié)果后,便可以按照相關(guān)參數(shù)生成隨機數(shù)。DSSM為了對抗Sybil攻擊以及避免可能存在的惡意節(jié)點相互串通而提前計算符合它們要求的隨機數(shù)的情況,采用VDF+VRF的方式來生成各個節(jié)點的隨機數(shù)。

      算法1節(jié)點隨機數(shù)生成算法

      3)節(jié)點分配

      每個節(jié)點以產(chǎn)生的隨機數(shù)與分裂后的子分片數(shù)量(這里取2)為參數(shù),通過跳躍一致性Hash 算法得到其分裂之后所在的子分片編號。

      4.2.3 分裂過程中的特殊情況

      在分片的分裂過程中,有可能會出現(xiàn)單個分片因為某種因素不再滿足分裂條件的情況,即分片分裂后新分片的節(jié)點數(shù)低于T或分裂前分片中的節(jié)點數(shù)就已經(jīng)小于T,這兩種情況都對分片的安全性造成了威脅。對此,提出復用和降級兩種相應的處理策略。

      1)復用

      針對分片分裂后新分片的節(jié)點數(shù)低于T的情況,選擇在分片內(nèi)復用節(jié)點的策略。當出現(xiàn)上述情況時,如果有歸約節(jié)點愿意同時作為兩個新的子分片的節(jié)點存在并且同時負責處理兩個子分片的事務,則該節(jié)點被定義為復用歸約節(jié)點,如圖6(a)中的節(jié)點1 和2 所示。

      圖6 節(jié)點復用與分片降級Fig.6 Node reuse and sharding degradation

      節(jié)點復用的條件如式(1)所示:

      當分片內(nèi)的節(jié)點發(fā)現(xiàn)上述情況時,開始在分片內(nèi)廣播復用詢問消息,此時該節(jié)點成為分片中的源節(jié)點。當分片內(nèi)的其他節(jié)點接收到此消息時,若是同意作為復用歸約節(jié)點而存在,則廣播發(fā)送復用確認消息。

      在源節(jié)點發(fā)送復用詢問消息后,開始準備收集確認消息。在源節(jié)點收集到足夠多的確認消息后,便在本分片(分裂前的分片)內(nèi)廣播復用消息,此消息內(nèi)包含已確認的復用節(jié)點名單的信息。

      普通節(jié)點繼續(xù)執(zhí)行分片分裂過程,復用歸約節(jié)點不必繼續(xù)執(zhí)行此過程,屬于它們的分裂過程已經(jīng)結(jié)束,生成的隨機數(shù)也隨之作廢。

      2)降級

      節(jié)點降級的條件如式(2)所示,待分裂的分片中的節(jié)點數(shù)量已低于T:

      此時,即使該分片中所有的節(jié)點都成了復用歸約節(jié)點,也無法滿足兩個子分片中基本節(jié)點數(shù)的要求。在這種情況下,采取此分片分裂中止并降級的策略。當分片中的節(jié)點發(fā)現(xiàn)上述情況時,便按照消息的傳遞規(guī)則將降級證明消息傳遞給全網(wǎng)分片,此消息包含本分片滿足降級條件的證明。同時,接收到該消息的本分片節(jié)點停止分裂過程,整個分片整體降級。

      如圖6(b)所示,分片A 中的節(jié)點數(shù)量小于T,那么在分裂過程中采取的策略是分片A 中的節(jié)點在物理上整體下移至分片B 中,具體下移至左子分片還是右子分片,可根據(jù)實際情況而制定相應的規(guī)則。分片B 作為新的基礎(chǔ)分片,與其他分裂后產(chǎn)生的新分片同處于歸約樹葉子節(jié)點的位置。分片B 的兄弟節(jié)點的位置原本也應該有一個基礎(chǔ)分片C,只是因為分片降級的問題導致該分片是空分片。此時,分片A 與分片B 實際上是一個分片,它們的節(jié)點集合是一樣的,但是它們在歸約樹中占據(jù)兩個節(jié)點的位置。

      4.3 分片的全網(wǎng)合并

      分片在正常情況下可能會因為某些原因而導致大批節(jié)點宕機,造成分片內(nèi)節(jié)點數(shù)過少,從而使得分片的安全性和去中心化程度大大降低。為此,采用分片合并策略。

      4.3.1 合并條件

      1)節(jié)點發(fā)起合并請求提案的條件

      當基礎(chǔ)分片內(nèi)任一節(jié)點發(fā)現(xiàn)分片的節(jié)點數(shù)已經(jīng)低于下限閾值T并且能夠提供所處基礎(chǔ)分片滿足分片合并條件的證明時,便可以發(fā)起合并請求提案。

      2)全網(wǎng)分片合并條件

      當超過半數(shù)的分片響應合并時,開始全網(wǎng)分片的合并。

      4.3.2 分片的合并過程

      4.3.2.1 請求階段

      類似于分片分裂的請求階段,在滿足相應條件后,節(jié)點可以發(fā)起合并請求提案。與分裂請求提案不同的是,該提案中要含有該節(jié)點所屬的基礎(chǔ)分片滿足合并條件的證明以及合并請求編號。

      4.3.2.2 預準備階段

      合并請求提案一經(jīng)提出便在發(fā)起提案的節(jié)點所屬的基礎(chǔ)分片內(nèi)廣播,該基礎(chǔ)分片的祖先分片中的節(jié)點便可以捕獲這個提案。與分裂過程類似,捕獲提案的節(jié)點作為當前其所在的分片歸約樹中最高級別分片PBFT 共識的主節(jié)點,執(zhí)行PBFT 共識。

      若是達成一致性共識,則向另一個非提案來源的子分片廣播一致性結(jié)果和合并請求提案,消息的傳遞規(guī)則與分裂時的預準備階段一致,傳遞路徑如圖4 所示。

      若是某一級分片達不成一致性共識,則由該分片的主節(jié)點向其子分片傳遞拒絕請求消息。消息的傳遞路徑與分裂時的預準備階段一致,傳遞路徑如圖5 所示。

      4.3.2.3 準備階段

      類似于分裂的準備階段,若是基礎(chǔ)分片中不屬于歸約分片的節(jié)點捕獲到父級分片傳遞的一致性結(jié)果和合并請求提案,它便作為該基礎(chǔ)分片中PBFT 共識的主節(jié)點執(zhí)行PBFT 共識,就是否響應分片合并進行共識。在基礎(chǔ)分片達成共識后,將結(jié)果向上傳遞給根分片Root。

      根分片Root 在預準備階段達成一致性共識后,便開始使用VRF 來確定合并過程的啟動者。在啟動者確定后,設(shè)置超時時間,等待并收集基礎(chǔ)分片的響應消息。若是啟動者收集到超過1/2 的來自基礎(chǔ)分片的同意響應的消息,則開始合并的執(zhí)行階段。

      4.3.2.4 執(zhí)行階段

      1)合并決策共識

      合并啟動者一旦收集到超過1/2 的來自基礎(chǔ)分片的同意響應的消息,就作為合并決策共識(共識節(jié)點集合是分片Root 中的全部節(jié)點)的主節(jié)點發(fā)起合并提案,就是否進行全網(wǎng)合并進行共識。合并啟動者發(fā)起的提案中必須包含其所收集的超過1/2 的來自基礎(chǔ)分片的同意響應的消息。

      若分片Root 沒有對合并提案達成共識,則與分裂時一致,采用多輪驗證思想繼續(xù)選擇啟動者進行流程。

      若在合并決策共識中提案被通過,則分片Root中的節(jié)點便將達成的一致性結(jié)果向下傳遞,直至傳遞到所有基礎(chǔ)分片。

      2)合并執(zhí)行

      當處于歸約樹倒數(shù)第2 層的分片中的節(jié)點收到分片Root 傳遞的一致性結(jié)果時便開始狀態(tài)同步過程,將自己目前所保存的兩個基礎(chǔ)分片的狀態(tài)同步給自己所處的基礎(chǔ)分片的非歸約節(jié)點(也就是未同步其他分片狀態(tài)的節(jié)點)。此時,原來的只在基礎(chǔ)分片中的節(jié)點便成為其父級分片中的待同步節(jié)點。原來的歸約樹倒數(shù)第2 層的分片變成了新的基礎(chǔ)分片。

      4.4 節(jié)點分配算法

      在父級分片分裂為兩個子分片的過程中,對于其中的節(jié)點,采用跳躍一致性Hash 算法[26]來決定其將進入哪個子分片。跳躍一致性Hash 算法具有均勻性與一致性兩個特點。

      節(jié)點分配算法具體如下:

      在DSSM 中,由于只需要將父級分片分裂為兩個子分片,對應于節(jié)點分配算法,則相當于只需要增加一個新的槽位,因此n的取值為2 即可。當節(jié)點提供的隨機數(shù)為參數(shù)k、分片數(shù)目為參數(shù)n時,ch(k,n)的返回值為節(jié)點所劃分到的子分片。本文規(guī)定:返回值為0 的節(jié)點屬于左子分片,返回值為1 的節(jié)點屬于右子分片(當n為2 時,只有0 和1 兩個返回值)。

      4.5 激勵機制

      DSSM 鼓勵性能較高的節(jié)點同步其所在分片的兄弟分片的狀態(tài),從而使高性能的節(jié)點成為更高級別的歸約節(jié)點。若想促使節(jié)點積極地參與狀態(tài)歸約,則需要激勵機制驅(qū)動。

      適應DSSM 激勵機制的原則為:1)對于歸約樹的不同層級上的分片,在其上執(zhí)行事務所獲得的激勵必不相同,處理上層分片的事務所獲得的激勵應該比下層高,只有這樣才能使節(jié)點積極地參與到歸約過程中;2)分片的合并和分裂過程中承擔著相應角色(例如分裂和合并的啟動者)的節(jié)點也應獲得相應的激勵;3)對于惡意行為的檢舉及證明也會有相應的激勵。

      具體的激勵機制需要匹配具體的網(wǎng)絡環(huán)境和相應的項目,在此不再贅述。

      5 安全性分析與參數(shù)設(shè)置

      5.1 安全性分析

      由于DSSM 結(jié)合多輪共識模型進行驗證,因此需要結(jié)合多輪共識模型進行分析。

      5.1.1 共識的安全性分析

      對于采用PBFT 算法作為共識機制的區(qū)塊鏈網(wǎng)絡而言,一旦拜占庭節(jié)點的比例超過2/3,根據(jù)威脅模型:若拜占庭對手沒有獲得發(fā)布區(qū)塊的主節(jié)點的身份,則它會選擇遵守協(xié)議不作惡;若拜占庭對手獲得了發(fā)布區(qū)塊的主節(jié)點的身份,則它就可以輕易地發(fā)起雙花攻擊或發(fā)布錯誤的鑄幣交易,最終導致數(shù)據(jù)的不一致??紤]最壞的情況,即一旦拜占庭對手控制了共識節(jié)點中超過2/3 的節(jié)點,那么它就可以發(fā)起合謀攻擊,在區(qū)塊中發(fā)布錯誤事務。

      為了最大化共識的安全性,從分片的節(jié)點數(shù)入手降低合謀攻擊的概率。在多輪共識模型的基礎(chǔ)上,按照最低輪數(shù)下限的要求,計算在不同分片節(jié)點數(shù)的情況下,攻擊者若想使合謀攻擊的概率高于百萬分之一,則需要付出的代價如圖7 所示,其中代價用攻擊者需要控制的最少節(jié)點數(shù)量表示。

      圖7 合謀攻擊代價Fig.7 Cost of collusion attack

      由圖7 可以看出,隨著分片內(nèi)節(jié)點數(shù)的增多,攻擊者要想使其發(fā)動合謀攻擊的概率超過百萬分之一,需要控制的節(jié)點數(shù)也會隨之增加,并且近似于線性增加。分片內(nèi)節(jié)點數(shù)越多,攻擊者發(fā)動合謀攻擊所付出的代價越大,分片也越安全。

      由數(shù)據(jù)計算而得,若合謀攻擊的概率超過百萬分之一,則需要攻擊者至少控制分片的將近1/2 的驗證節(jié)點。這也意味著:若分片內(nèi)節(jié)點數(shù)翻倍,則攻擊者進行攻擊的代價至少也要翻倍。

      5.1.2 節(jié)點隨機數(shù)的可靠性分析

      在節(jié)點隨機數(shù)生成算法中,由于參數(shù)t和λ是根據(jù)分裂決策共識的一致性結(jié)果獲得的,x是由一致性結(jié)果中的信息求得的,那么同一分片的驗證節(jié)點生成的VDF 結(jié)果必然是一樣的,因此獲得了可靠的公共隨機數(shù)。

      所有驗證節(jié)點以VDF 的結(jié)果作為VRF 的Evaluate(SK,X)函數(shù)的隨機性輸入X,再使用自己的私鑰作為輸入SK,那么通過計算便可獲得屬于節(jié)點自己的可驗證的可靠的隨機數(shù)。

      5.1.3 分片的安全性分析

      根據(jù)節(jié)點隨機數(shù)的可靠性以及節(jié)點分配過程的隨機性和不可預測性,拜占庭對手很難再主動地將拜占庭節(jié)點聚集到某些固定分片內(nèi)。

      對于單個分片,考慮最壞情況,某個基礎(chǔ)分片超過50%的節(jié)點被拜占庭對手控制,并且這些惡意節(jié)點全部向上歸約。由均勻性可得,該分片的父級分片會有將近1/2 的節(jié)點被拜占庭對手控制,而再上一級的歸約分片只有1/4 的節(jié)點被控制。以此類推,越往上層,拜占庭節(jié)點的比例被稀釋得越低。

      本文規(guī)定:DSSM 歸約模型的最底層,也就是基礎(chǔ)分片(由葉子節(jié)點代表的分片)所在的那層稱為歸約模型的第0 層,往上1 層也就是歸約模型的倒數(shù)第2 層,被稱為歸約模型的第1 層,以此類推。那么,隨著層數(shù)的遞增,某層分片中拜占庭節(jié)點的最高比例如式(3)所示:

      由式(3)可以得出,在分片歸約樹的第2 層分片中的拜占庭節(jié)點比例只有1/4,已經(jīng)可以滿足大多數(shù)分片協(xié)議的容錯率,越往上層,比例越低。另外,由于多輪共識模型中多輪驗證與欺詐證明的存在,因此拜占庭對手在第0 和1 層分片作惡成功的概率極低。

      在DSSM 中,每個基礎(chǔ)分片的祖先分片中的節(jié)點都會存儲該基礎(chǔ)分片的狀態(tài),并能對該基礎(chǔ)分片中的區(qū)塊信息進行驗證。同時,基礎(chǔ)分片的各級祖先分片中幾乎包含所有基礎(chǔ)分片的節(jié)點,因此拜占庭對手想要發(fā)起攻擊而不被發(fā)現(xiàn)無異于要控制整個系統(tǒng)。

      狀態(tài)歸約與冗余可以使拜占庭對手攻擊單個分片,作惡成功的代價無異于攻擊整個區(qū)塊鏈網(wǎng)絡。同時,由于各級歸約節(jié)點的存在,拜占庭對手在分片動態(tài)調(diào)整過程中的惡意行為也很容易被檢舉,因此分片的安全性得到了保障。

      5.1.4 數(shù)據(jù)的一致性分析

      狀態(tài)歸約的存在使得上層分片的節(jié)點需要存儲其孩子分片的狀態(tài)。一個分片的狀態(tài)不僅被本分片內(nèi)的節(jié)點存儲,而且還會被其所有的祖先分片的節(jié)點存儲。一個分片的狀態(tài)會有多個備份。

      當有新的節(jié)點加入分片時(下層節(jié)點通過狀態(tài)歸約加入歸約分片或者新加入網(wǎng)絡的節(jié)點進入基礎(chǔ)分片),原分片中的節(jié)點與該分片的祖先分片中的節(jié)點都可以向新節(jié)點同步狀態(tài),并且由于在該分片或其祖先分片中存在多個該分片的狀態(tài)備份,新節(jié)點可以快速同步到該分片的最新狀態(tài)。

      參與共識的驗證節(jié)點必須同步到最新的分片狀態(tài),這樣才能保證共識正常進行,確保一致性。若因為性能或網(wǎng)絡原因,導致節(jié)點總是無法及時同步到最新狀態(tài),該節(jié)點可以選擇自行降級,在下一級分片中工作,這也符合DSSM 的設(shè)計理念。

      5.2 多輪共識模型下閾值T和O 的確定

      本節(jié)結(jié)合多輪共識模型探討DSSM 中參數(shù)T和O的取值。

      5.2.1 分片節(jié)點數(shù)下限閾值T的確定

      在多輪共識模型下,考慮一種極端情況,每輪選擇的共識組的節(jié)點與前面輪次的共識組的節(jié)點均不同,即每輪共識組內(nèi)的節(jié)點相較于之前都是新的節(jié)點。那么,根據(jù)多輪共識模型所確定的輪數(shù)上限,估算得到分片內(nèi)至少需要150 個節(jié)點才能滿足需求。

      根據(jù)上文分析,若拜占庭對手想對有150 個節(jié)點的分片發(fā)動合謀攻擊,要使合謀攻擊的概率超過百萬分之一,則至少需要控制約1/2 的節(jié)點,但其收益遠遠低于其所付出的代價(即使控制了1/2 的節(jié)點也有很大概率攻擊失?。R虼?,考慮設(shè)定下限閾值T為150。

      5.2.2 分片節(jié)點數(shù)上限閾值O的確定

      由于分裂時子分片是由父級分片一分為二得到的,則父級分片節(jié)點數(shù)的上限閾值O需要滿足:父級分片分裂之后,其子分片內(nèi)的節(jié)點數(shù)仍需滿足最低運行標準,即子分片內(nèi)的節(jié)點數(shù)仍然大于等于T,那么O至少要滿足的條件是O≥2T。

      在多輪共識模型下,即使分片內(nèi)節(jié)點數(shù)達到了600,共識仍然可用。另外,考慮到多分片并行可以提高吞吐量。為兼顧網(wǎng)絡的整體性能,分片內(nèi)的節(jié)點數(shù)不宜過多。因此,在多輪共識模型下設(shè)定上限閾值O為600。

      6 模擬驗證

      模擬實驗將驗證DSSM 可以隨著節(jié)點數(shù)量的大幅增多實現(xiàn)分片規(guī)模的動態(tài)擴充,以提供更好的性能,同時在節(jié)點顯著減少時,DSSM 可以為了分片的安全,動態(tài)地收縮分片的規(guī)模。選用Linux 系統(tǒng)作為開發(fā)平臺,以Go 語言作為開發(fā)語言,以VS Code 和Docker 作為開發(fā)工具,進行模擬實驗。

      6.1 實驗假設(shè)

      1)測試網(wǎng)絡中節(jié)點間的通信狀況良好,延遲在可容忍范圍內(nèi)。

      2)不考慮由于交易分片導致的分片負載不均衡的問題,即每個基礎(chǔ)分片在同一個時間段內(nèi)需要處理的交易是相對均勻的。

      3)系統(tǒng)的拜占庭節(jié)點比例為0.33。

      4)隨著模擬時間的推移,節(jié)點的表現(xiàn)可以發(fā)生變化,即原本的正常節(jié)點可以表現(xiàn)為拜占庭行為,但是系統(tǒng)中表現(xiàn)拜占庭行為的節(jié)點的比例不變。

      5)節(jié)點可以動態(tài)加入或退出系統(tǒng)。

      6)拜占庭節(jié)點秉承對自己最為有利的方式執(zhí)行操作。

      6.2 DSSM 可行性測試

      從測試系統(tǒng)的一個初始狀態(tài)開始,隨著時間的推移,逐步往系統(tǒng)中添加或減少節(jié)點來模擬節(jié)點加入或退出系統(tǒng)的情況,同時逐步往系統(tǒng)中注入交易,觀察系統(tǒng)的吞吐能力隨著時間的變化情況。在其他外部條件不變的情況下,網(wǎng)絡中分片規(guī)模的變化可以通過吞吐量的變化體現(xiàn)出來。通過吞吐能力的變化來驗證DSSM 能夠根據(jù)節(jié)點環(huán)境自適應地調(diào)整分片的規(guī)模。

      為能夠模擬DSSM 中分片分裂過程的各種情況,進行了如下設(shè)置:

      1)初始狀態(tài)的系統(tǒng)內(nèi)有600 個節(jié)點,正好是分片的上限閾值O的值。

      2)在第10 個時隙時,在系統(tǒng)中加入400 個節(jié)點,滿足分片分裂條件,觀察系統(tǒng)正常分裂情況下的吞吐能力的變化。

      3)在第45 個時隙時,在系統(tǒng)中再加入400 個節(jié)點,每個分片內(nèi)有700個節(jié)點。然后,在第57個時隙時減少某個分片的節(jié)點數(shù)至200來模擬節(jié)點復用情況。

      4)在第75 個時隙時,在系統(tǒng)中加入1 100 個節(jié)點,使得每個分片的節(jié)點數(shù)都達到500 個。在第90 個時隙時,在系統(tǒng)中加入1 200 個節(jié)點,此時每個分片的節(jié)點數(shù)都達到了800。在第103 個時隙時,減少某個分片的節(jié)點數(shù)至100 來模擬分片降級情況。在第120 個時隙時,將系統(tǒng)恢復至3 200 個節(jié)點的狀態(tài)。

      經(jīng)過以上的模擬步驟,得到系統(tǒng)吞吐能力在分片分裂過程中隨著時間變化的情況如圖8 所示。

      為了能夠模擬DSSM 中分片合并過程的情況,進行如下設(shè)置:初始狀態(tài)的測試系統(tǒng)內(nèi)有2 400 個節(jié)點,分為8 個分片,每個分片有300 個節(jié)點;在第20 個時隙時,系統(tǒng)中每個分片都減少100 個節(jié)點,此時每個分片有200 個節(jié)點;在第40 個時隙時,系統(tǒng)減少600 個節(jié)點,此時每個分片內(nèi)有125 個節(jié)點,滿足合并條件。經(jīng)過以上的模擬步驟,得到系統(tǒng)吞吐能力在分片合并過程中隨著時間變化的情況如圖9所示。

      圖9 吞吐能力在合并過程中的變化Fig.9 Changes of throughput capacity during merging process

      由圖8 可以看出,系統(tǒng)吞吐能力隨著節(jié)點數(shù)量的增多得到了增強,而且是近乎翻倍的增強。由圖9可以看出,當節(jié)點數(shù)量大幅減少時,系統(tǒng)吞吐能力有所下降。結(jié)合圖8 與圖9 驗證了DSSM 可以根據(jù)不同的節(jié)點環(huán)境,動態(tài)快速地調(diào)整網(wǎng)絡中分片的規(guī)模,從而實現(xiàn)了在保證基本安全要求的情況下,自適應快速地進行分片規(guī)模的調(diào)整,滿足系統(tǒng)性能更好的目標。

      6.3 可擴展性對比實驗

      設(shè)置結(jié)合DSSM 的多輪共識模型與未結(jié)合DSSM 的多輪共識模型的吞吐量對比實驗,以驗證DSSM 能夠在節(jié)點數(shù)量滿足條件時具有更好的可擴展性。

      在初始狀態(tài)下,兩種模型各有兩個分片,每個分片的節(jié)點數(shù)均為500。然后在第5 個時隙時向環(huán)境中加入節(jié)點,使得每個分片的節(jié)點數(shù)達到700,觀察系統(tǒng)的吞吐能力隨時間變化的情況,如圖10 所示。

      圖10 可擴展性對比Fig.10 Scalability comparison

      由圖10 可以看出,隨著節(jié)點數(shù)量的增多,在一段時間后,采用DSSM 的系統(tǒng)吞吐量有明顯的提升,而未采用DSSM 并沿用傳統(tǒng)靜態(tài)分片方式的系統(tǒng)吞吐量卻并未隨著節(jié)點數(shù)量的增多而得到較大改善。

      因此,在區(qū)塊鏈運行過程中,DSSM 可以隨著節(jié)點數(shù)量的增多,動態(tài)自適應地擴展分片的規(guī)模,以提高網(wǎng)絡的性能和可擴展性。

      6.4 時延對比實驗

      設(shè)置結(jié)合DSSM 的多輪共識模型與未結(jié)合DSSM 的多輪共識模型的交易時延對比實驗,以驗證DSSM 能夠在節(jié)點數(shù)量大幅減少時,通過自適應地收縮分片的規(guī)模來保證網(wǎng)絡的活性與安全性。

      在初始狀態(tài)下兩種模型各有兩個分片,每個分片的節(jié)點數(shù)是150,然后在第5 個時隙時在環(huán)境中減少節(jié)點,使得每個分片的節(jié)點數(shù)達到80,觀察系統(tǒng)的交易時延隨時間變化的情況,如圖11 所示。

      圖11 交易時延對比Fig.11 Transaction latency comparison

      由圖11 可以看出,當節(jié)點數(shù)量大幅減少時,采用DSSM 的系統(tǒng)和未采用DSSM 的系統(tǒng)都出現(xiàn)了時延增加且不穩(wěn)定的情況。這是因為分片內(nèi)的節(jié)點數(shù)量變少,拜占庭節(jié)點進入共識組的概率會大大增加,導致交易的驗證需要更多輪次的共識,所以時延也就升高了。采用DSSM 的系統(tǒng)在一段時間后,時延會慢慢降低,逐步恢復到節(jié)點減少之前的狀態(tài)并穩(wěn)定下來,而未采用DSSM 并沿用傳統(tǒng)靜態(tài)分片方式的系統(tǒng)交易時延依舊偏高且很不穩(wěn)定。

      因此,在區(qū)塊鏈運行過程中,當節(jié)點數(shù)量大幅減少時,DSSM 可以通過動態(tài)自適應地收縮分片的規(guī)模來保障網(wǎng)絡的活性與安全性。

      7 結(jié)束語

      針對現(xiàn)有分片方案不能及時調(diào)整分片規(guī)模以適應公鏈環(huán)境下分片內(nèi)節(jié)點數(shù)量在短時間內(nèi)的大幅變化以及由此導致的安全隱患和性能提升困難問題,本文提出一種基于狀態(tài)歸約的自適應節(jié)點規(guī)模的動態(tài)分片可擴展模型??紤]到驗證節(jié)點的性能和表現(xiàn)差異,在基礎(chǔ)和邏輯分片的組合下,通過支持狀態(tài)歸約與狀態(tài)冗余允許節(jié)點在不同層級的分片上進行狀態(tài)同步,同時分片的動態(tài)分裂能夠充分利用節(jié)點資源以實現(xiàn)更高的性能,分片的動態(tài)合并可以更好地保障分片安全,由此使得整個系統(tǒng)具有較好的規(guī)模彈性。模擬實驗結(jié)果證明,該模型能夠快速、低成本、自適應地針對節(jié)點環(huán)境做出相應變化,從而實現(xiàn)分片系統(tǒng)的動態(tài)自適應調(diào)整。

      本文提出的基于狀態(tài)歸約的自適應節(jié)點規(guī)模的動態(tài)分片可擴展模型還有一些地方需要進一步完善。例如,模型中的參數(shù)在面對不同的環(huán)境和不同的共識機制是不一樣的,這與系統(tǒng)的安全要求有關(guān)。另外,本文考慮的是一個整體系統(tǒng)的擴展與收縮,尚未針對單個分片的突發(fā)情況進行詳盡討論。這些都將是下一步研究的重點內(nèi)容。

      猜你喜歡
      拜占庭分片共識
      上下分片與詞的時空佈局
      詞學(2022年1期)2022-10-27 08:06:12
      共識 共進 共情 共學:讓“溝通之花”綻放
      論思想共識凝聚的文化向度
      分片光滑邊值問題的再生核方法
      拜占庭帝國的繪畫藝術(shù)及其多樣性特征初探
      CDN存量MP4視頻播放優(yōu)化方法
      商量出共識
      基于模糊二分查找的幀分片算法設(shè)計與實現(xiàn)
      淺談初中歷史教學中的邏輯補充——從拜占庭帝國滅亡原因談起
      《西方史學通史》第三卷“拜占庭史學”部分糾繆
      古代文明(2016年1期)2016-10-21 19:35:20
      大石桥市| 洛宁县| 伊通| 甘德县| 平利县| 屏东县| 宁河县| 霍州市| 南京市| 西华县| 广元市| 哈尔滨市| 辽宁省| 左云县| 隆化县| 岫岩| 陈巴尔虎旗| 乌兰察布市| 法库县| 平原县| 井陉县| 临潭县| 鲁甸县| 札达县| 深州市| SHOW| 江门市| 英德市| 镇赉县| 榕江县| 温泉县| 普宁市| 营口市| 广昌县| 兴文县| 云霄县| 无棣县| 清徐县| 肃北| 白朗县| 梅州市|