• 
    

    
    

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

      基于中國剩余定理的區(qū)塊鏈存儲擴展模型

      2021-07-30 10:33:32卿欣藝陳玉玲周正強涂園超
      計算機應(yīng)用 2021年7期
      關(guān)鍵詞:分片模數(shù)共識

      卿欣藝,陳玉玲*,周正強,涂園超,李 濤

      (1.貴州大學(xué)計算機科學(xué)與技術(shù)學(xué)院,貴州 550025;2.省部共建公共大數(shù)據(jù)國家重點實驗室(籌)(貴州大學(xué)),貴州 550025)

      0 引言

      自《比特幣:一種點對點電子現(xiàn)金系統(tǒng)》[1]發(fā)表以來,比特幣的底層技術(shù)區(qū)塊鏈被認為是下一代的顛覆性技術(shù)。區(qū)塊鏈是一種去中心化、由多方共同維護的分布式賬本技術(shù),它基于P2P(Peer-to-Peer)網(wǎng)絡(luò)[2],要求每個節(jié)點都需持有該賬本的數(shù)據(jù)副本并同步更新。區(qū)塊鏈中,數(shù)據(jù)的寫入由節(jié)點之間的分布式共識算法來完成,如工作量證明(Proof-of-Work,POW)[3]等,數(shù)據(jù)以塊的方式進行存儲,并按照時間順序構(gòu)成鏈式結(jié)構(gòu)。此外,還采用密碼學(xué)技術(shù)來保證分布式賬本防篡改、可溯源。

      區(qū)塊鏈由于其去中心化、防篡改和可以溯源等特點,引起了金融機構(gòu)、投資機構(gòu)、監(jiān)管部門以及政府部門的廣泛關(guān)注。但目前區(qū)塊鏈仍存在較多技術(shù)難點,存儲問題就是其中之一。區(qū)塊鏈網(wǎng)絡(luò)中,節(jié)點以哈希鏈的形式存儲完整的數(shù)據(jù)副本,而由于其鏈式結(jié)構(gòu)的特殊性只能對區(qū)塊進行增加和查詢。對節(jié)點而言,即使沒有參與交易,也必須存儲該筆交易數(shù)據(jù),這極大增加了節(jié)點存儲成本。以比特幣為例:比特幣每秒平均交易不到3.5 筆[4],即使按照這個速度,節(jié)點平均每天也需要消耗近160 MB 的存儲空間,大約60 GB/a。截至2020 年7 月15日,比特幣一共產(chǎn)生了639 487 個區(qū)塊,平均區(qū)塊大小為1.28 MB,整個區(qū)塊鏈大小約為287.9 GB,有效地址總數(shù)約3 000 萬[5]。為了達到最高的安全性和信任度,節(jié)點需要浪費將近300 GB 的存儲空間來記錄大量無關(guān)的交易數(shù)據(jù),而整個區(qū)塊鏈系統(tǒng)需要使用近9 000 PB 的空間來存儲300 GB 的有效數(shù)據(jù),而且隨著區(qū)塊和節(jié)點數(shù)量不斷增加,存儲消耗將持續(xù)增加,因此解決區(qū)塊鏈的存儲問題日漸緊迫。

      針對這一問題,許多學(xué)者進行了大量研究。文獻[1]提出SPV(Simplified Payment Verification)協(xié)議,輕量級節(jié)點(運行SPV 的節(jié)點)只存儲區(qū)塊頭,本身無法驗證交易。故輕量級節(jié)點執(zhí)行支付驗證全部依賴于全節(jié)點(存儲全部區(qū)塊數(shù)據(jù)),導(dǎo)致區(qū)塊鏈的去中心化減弱、安全性和穩(wěn)定性降低。Franca等[6]針對比特幣網(wǎng)絡(luò)提出迷你區(qū)塊鏈,節(jié)點只存儲區(qū)塊頭和最新的區(qū)塊,并使用賬戶樹來保障用戶余額,這極大地降低了節(jié)點的存儲壓力,但會導(dǎo)致交易數(shù)據(jù)的丟失。Xu 等[7]針對傳感器以及智能手機等移動設(shè)備的存儲能力缺乏問題提出了EPBC(Efficient Public Blockchain Client),節(jié)點存儲區(qū)塊鏈摘要來驗證數(shù)據(jù)的正確性,但不能解決數(shù)據(jù)中心化的問題。Jia等[8]提出存儲容量可擴展性模型,根據(jù)每個區(qū)塊安全性高低來決定其存儲副本的數(shù)量,節(jié)點按照功能劃分,不再要求每個節(jié)點存儲完整的區(qū)塊鏈信息;但該模型使用了兩條輔助鏈,增加了系統(tǒng)的復(fù)雜性。文獻[9-10]在文獻[6]研究的基礎(chǔ)上引入余數(shù)系統(tǒng)(Residual Number System,RNS)與冗余余數(shù)系統(tǒng)(Redundant Residual Number System,RRNS)將賬戶樹分片來減小節(jié)點的存儲壓力并保障數(shù)據(jù)的完整性,但仍然無法解決交易數(shù)據(jù)丟失的問題。文獻[11-14]中分別使用哈希一致性算法、糾刪碼、改進的Shamir秘密共享技術(shù)[15]和建立路由表來減小節(jié)點的存儲壓力。

      本文在現(xiàn)有研究的基礎(chǔ)上提出了一種基于中國剩余定理(Chinese Remainder Theorem,CRT)的區(qū)塊鏈存儲擴展模型。在該模型中,根據(jù)基于CRT 的分割算法將高安全性區(qū)塊的區(qū)塊體進行分片,每個節(jié)點存儲一份數(shù)據(jù)碎片來減少存儲消耗,多個節(jié)點(共識單元[16])共同保存一份高安全性區(qū)塊的數(shù)據(jù)副本,而全網(wǎng)節(jié)點都需要存儲一份低安全性區(qū)塊數(shù)據(jù)副本;此外,還加入了RRNS 錯誤檢測與糾正來提高數(shù)據(jù)的穩(wěn)定性和完整性。

      本文主要的工作如下:

      1)提出基于CRT 的區(qū)塊鏈存儲擴展模型,模型中節(jié)點采用不同的策略存儲安全性不同的區(qū)塊,節(jié)點存儲一部分區(qū)塊鏈數(shù)據(jù)來降低存儲消耗。該模型解決了節(jié)點因存儲能力不足而變?yōu)檩p量級節(jié)點,導(dǎo)致全節(jié)點網(wǎng)絡(luò)帶寬壓力增大以及區(qū)塊鏈系統(tǒng)去中心化減弱的問題。

      2)在確保區(qū)塊數(shù)據(jù)安全性和可用性的前提下,提出了一種基于CRT 的分割算法來對區(qū)塊數(shù)據(jù)進行分片,并將分片后的區(qū)塊碎片以分布式的方式進行存儲。此外,利用RRNS 的錯誤檢測和校正[17]來恢復(fù)區(qū)塊數(shù)據(jù),使部分節(jié)點相互通信就可以恢復(fù)區(qū)塊數(shù)據(jù),提高了數(shù)據(jù)穩(wěn)定性和模型的容錯性。

      3)對模型進行安全性分析以及仿真實驗,結(jié)果表明本文提出的基于CRT 的區(qū)塊鏈存儲擴展模型在降低節(jié)點存儲壓力的同時,具有良好的容錯性和安全性。

      1 相關(guān)知識

      1.1 中國剩余定理

      m1,m2,…,mk是兩兩互素的正整數(shù),組成模數(shù)集合β={m1,m2,…,mk},M=當X<M,則X能被唯一的φ={a1,a2,…,ak}表示,其中X≡ai(modmi)(i=1,2,…,k)。當β和φ可知時,就能夠恢復(fù)X,X可表示為:

      1.2 冗余余數(shù)系統(tǒng)

      使用CRT 進行數(shù)據(jù)恢復(fù)時,若有惡意節(jié)點提供錯誤信息,將無法還原正確數(shù)據(jù)。因此,引入RRNS 的錯誤檢測與糾正來提升數(shù)據(jù)穩(wěn)定性和保障數(shù)據(jù)完整性。

      假設(shè)余數(shù)集合φ={a1,a2,…,ak,ak+1,…,ak+s}由原始數(shù)據(jù)X對新模數(shù)集合β={m1,m2,…,mk,mk+1,…,mk+s}中的模數(shù)取余得到,并且φ={a1,a2,…,ak,ak+1,…,ak+s}中存在被惡意篡改的余數(shù)項。

      圖1 RRNS的錯誤檢測與糾正流程Fig.1 Flowchart of RRNS error detection and correction

      1.3 共識單元

      共識單元由多個節(jié)點組成,多個節(jié)點共同存儲一份區(qū)塊鏈數(shù)據(jù)副本。共識單元可以看作一個存儲能力較強的節(jié)點,通過整合多個節(jié)點的存儲能力來存儲全部區(qū)塊數(shù)據(jù),共識單元基本框架如圖2 所示。由圖2 可知,共識單元中的節(jié)點為N1~N6,每個節(jié)點的存儲空間各不相同。假設(shè)在一個區(qū)塊鏈的應(yīng)用場景中,區(qū)塊鏈的總數(shù)據(jù)量為100 GB,N1~N6 都不能獨自存儲全部區(qū)塊鏈數(shù)據(jù),但可以分別存儲區(qū)塊鏈的部分數(shù)據(jù)來共同存儲一份完整的區(qū)塊鏈數(shù)據(jù)副本。節(jié)點可以向共識單元中的其他節(jié)點發(fā)送請求來獲得完整的區(qū)塊鏈數(shù)據(jù),以達到全節(jié)點的效果。

      圖2 共識單元基本框架Fig.2 Basic framework of consensus unit

      2 基于CRT的區(qū)塊鏈存儲擴展模型

      本文利用分布式存儲方法[19-20]和分片思想來提出一個基于CRT 的區(qū)塊鏈存儲擴展模型,其核心思想是在保證區(qū)塊數(shù)據(jù)的安全性與可靠性的前提下,將區(qū)塊數(shù)據(jù)分片,分布式存儲分片后的區(qū)塊數(shù)據(jù),模型框架如圖3 所示。該模型中包含多個共識單元,共識單元由多個節(jié)點組成。模型通過對區(qū)塊的安全性進行判定,將區(qū)塊鏈分為高安全性和低安全性區(qū)塊,區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點直接存儲低安全性區(qū)塊,而對于高安全性的區(qū)塊,區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點利用基于CRT 的分割算法進行分片,節(jié)點只需要存儲區(qū)塊碎片。此外,節(jié)點可以向同一共識單元的節(jié)點發(fā)送請求獲取區(qū)塊碎片以還原區(qū)塊數(shù)據(jù)。

      圖3 基于CRT的區(qū)塊鏈存儲擴展模型Fig.3 Blockchain storage expansion model based on CRT

      在現(xiàn)有的區(qū)塊鏈模型中,想要篡改區(qū)塊數(shù)據(jù),需要控制區(qū)塊鏈網(wǎng)絡(luò)中半數(shù)以上的節(jié)點。在本模型中,共識單元存儲一份完整的區(qū)塊鏈數(shù)據(jù),將會導(dǎo)致區(qū)塊鏈副本數(shù)量減少,而攻擊者掌握少于區(qū)塊鏈網(wǎng)絡(luò)中半數(shù)的節(jié)點,就有可能篡改區(qū)塊數(shù)據(jù)。同時,為提高區(qū)塊數(shù)據(jù)的穩(wěn)定性和模型的安全性,本文模型添加了RRNS 的錯誤檢測與糾正,使共識單元中的少量節(jié)點相互通信就能正確恢復(fù)區(qū)塊數(shù)據(jù),節(jié)點的數(shù)量與信息模數(shù)基相關(guān)。模型為不同的共識單元設(shè)置不同的模數(shù)集合β={m1,m2,…,mk,mk+1,…mk+s},節(jié)點可根據(jù)自身存儲能力和網(wǎng)絡(luò)帶寬來選擇共識單元,加入共識單元并隨機選擇一個模數(shù),其中{m1,m2,…,mk}為信息模數(shù)基,{mk+1,…,mk+s}為冗余檢錯基。若所有的節(jié)點同屬一個共識單元,很難設(shè)定信息模數(shù)基的長度k,k值若太大,會增加某些節(jié)點的帶寬壓力;而太小的話,會增加某些節(jié)點的存儲壓力。因此,本模型設(shè)置多個共識單元,來提升系統(tǒng)的負載均衡。

      2.1 區(qū)塊安全性判定

      共識機制中最早出現(xiàn)的是POW。在POW 中,率先計算出滿足規(guī)則的隨機數(shù)的節(jié)點獲得記賬權(quán),計算出滿足規(guī)則的隨機數(shù)的概率與節(jié)點算力成正比,若攻擊者獲得全網(wǎng)一半以上的算力,就能控制整個區(qū)塊鏈系統(tǒng)。51%攻擊通過區(qū)塊鏈分叉來實現(xiàn)區(qū)塊數(shù)據(jù)的篡改,攻擊者產(chǎn)生一條攻擊鏈來代替區(qū)塊鏈,要使區(qū)塊數(shù)據(jù)篡改成功,攻擊者需要比誠實者更快地產(chǎn)生下一個區(qū)塊。文獻[1]中已給出關(guān)于51%攻擊的證明,攻擊者潛在進展符合泊松分布,分布期望為:

      其中:p為誠實者率先計算出滿足規(guī)則的隨機數(shù)概率;q為攻擊者率先計算出滿足規(guī)則的隨機數(shù)概率(p+q=1);z為誠實節(jié)點領(lǐng)先的區(qū)塊數(shù)。攻擊者成功篡改區(qū)塊的概率Pz如下:

      由式(1)可知,攻擊者成功篡改區(qū)塊的概率與p、q和z有關(guān)。當p>q時,隨著z增加,攻擊者成功篡改區(qū)塊數(shù)據(jù)的概率呈指數(shù)趨勢下降,如圖4所示。

      圖4 攻擊成功的概率Fig.4 Probability of successful attack

      從圖4 可以看出,隨著誠實者領(lǐng)先的區(qū)塊數(shù)量增加,攻擊者成功篡改區(qū)塊的概率不斷減小,并趨向于0。因此,可以得出越原始的區(qū)塊數(shù)據(jù)被篡改的可能性就越低,其安全性越高。Borel 定律[21]定義了任何事件低于10-50的概率都是不可能的事件。由式(1)可知,當誠實者領(lǐng)先的區(qū)塊數(shù)量z增加到某一定數(shù)量時,Pz就會低于10-50。因此,在一條高度為n的區(qū)塊鏈中,高度為n-z+1之前的區(qū)塊可以被視為無法篡改的,故稱為高安全性區(qū)塊,高度為n-z+1 之后的區(qū)塊則被稱為低安全性區(qū)塊,如圖5所示。

      圖5 區(qū)塊的安全性判定Fig.5 Security judgment of block

      2.2 數(shù)據(jù)存儲

      模型進行數(shù)據(jù)存儲時,需對區(qū)塊的安全性進行判定,對不同安全性的區(qū)塊采取不同的存儲策略。根據(jù)式(1)計算出Pz<10-50時z的大小,來判斷區(qū)塊安全性的高低。區(qū)塊鏈的高度會隨著區(qū)塊地不斷加入逐漸增大,當區(qū)塊鏈的高度n≤z,區(qū)塊全部是低安全性區(qū)塊,節(jié)點直接存儲全部區(qū)塊;當區(qū)塊鏈的高度n>z,將會有低安全性區(qū)塊轉(zhuǎn)變?yōu)楦甙踩詤^(qū)塊,因此節(jié)點需要根據(jù)基于CRT 的分割算法將高安全性區(qū)塊分片,然后存儲區(qū)塊碎片數(shù)據(jù)?;贑RT的分割算法如下:

      算法1 基于CRT的分割算法。

      輸入 區(qū)塊bki,節(jié)點選擇的模數(shù)mi;

      輸出 區(qū)塊bki的碎片數(shù)據(jù)。

      在算法1中,第1)行來判斷區(qū)塊是否為高安全性區(qū)塊,第3)~7)行來進行區(qū)塊數(shù)據(jù)分片。節(jié)點將高安全性區(qū)塊的區(qū)塊體bli轉(zhuǎn)為16進制數(shù),再轉(zhuǎn)為10進制數(shù)來得到Ti。然后節(jié)點使用Ti與節(jié)點加入共識單元時選取的模數(shù)mi做取余運算,得到區(qū)塊體碎片,并將區(qū)塊體碎片以及區(qū)塊頭存儲到本地磁盤。為保證數(shù)據(jù)恢復(fù)時的正確性,共識單元在設(shè)定模數(shù)集合時,需要保證Ti<Mk。

      隨著時間的推移和區(qū)塊數(shù)量的增加,區(qū)塊會從剛加入?yún)^(qū)塊鏈時的低安全性區(qū)塊轉(zhuǎn)變?yōu)楦甙踩詨K。節(jié)點通過算法1將高安全性區(qū)塊的區(qū)塊體數(shù)據(jù)分片來獲得區(qū)塊體碎片數(shù)據(jù)。節(jié)點存儲區(qū)塊體碎片與區(qū)塊頭數(shù)據(jù)不但降低了存儲消耗,而且由于區(qū)塊頭的存儲,也有效增加了攻擊者生成攻擊鏈來代替區(qū)塊鏈的難度,增強了模型的安全性。

      2.3 數(shù)據(jù)讀取

      節(jié)點讀取屬于低安全性區(qū)塊的區(qū)塊數(shù)據(jù),直接訪問本地磁盤獲取區(qū)塊信息,而讀取屬于高安全性塊的區(qū)塊數(shù)據(jù),則需要向其他節(jié)點發(fā)送請求獲取區(qū)塊碎片,并利用RRNS 的錯誤檢測與糾正來正確恢復(fù)區(qū)塊數(shù)據(jù)。其中,節(jié)點讀取高安全性區(qū)塊數(shù)據(jù)分為兩個階段:數(shù)據(jù)碎片獲取階段和數(shù)據(jù)恢復(fù)階段。

      在數(shù)據(jù)碎片獲取階段,數(shù)據(jù)讀取節(jié)點向同一共識單元中的節(jié)點發(fā)送請求,其他節(jié)點收到請求返回所選取模數(shù)以及碎片數(shù)據(jù),如圖6所示,具體過程如下:

      圖6 數(shù)據(jù)讀取過程Fig.6 Process of data reading

      1)數(shù)據(jù)讀取節(jié)點隨機向共識單元中k+s個節(jié)點發(fā)送請求;

      2)節(jié)點收到請求,返回所選取的模數(shù)mi和存儲的碎片數(shù)據(jù)Si;

      3)數(shù)據(jù)讀取返回數(shù)據(jù)并刪除重復(fù)的(mi,Si),重復(fù)1)、2),當(mi,Si)個數(shù)為k+s時,結(jié)束。

      在數(shù)據(jù)恢復(fù)階段,節(jié)點通過RRNS 錯誤檢測與糾正進行數(shù)據(jù)恢復(fù),具體過程如下:

      1)節(jié)點使用CRT 恢復(fù)來區(qū)塊數(shù)據(jù)X。若X≤Mk-1,執(zhí)行步驟3);若X>Mk-1,執(zhí)行步驟2)。

      2)節(jié)點通過RRNS錯誤檢測與糾正,獲得X。

      3)將X轉(zhuǎn)化為16 進制數(shù),最后將16 進制轉(zhuǎn)為數(shù)據(jù)信息輸出。

      在區(qū)塊鏈系統(tǒng)中,可能存在惡意節(jié)點,數(shù)據(jù)讀取節(jié)點可能接收到被惡意篡改的數(shù)據(jù),使用CRT 可能無法恢復(fù)正確的區(qū)塊數(shù)據(jù),因此模型使用RRNS 的錯誤檢測和糾正來恢復(fù)區(qū)塊數(shù)據(jù)。RRNS 的錯誤檢測和糾正能夠有效地保證區(qū)塊數(shù)據(jù)被正確恢復(fù),并提高模型的容錯性和數(shù)據(jù)的完整性。

      新節(jié)點加入?yún)^(qū)塊鏈網(wǎng)絡(luò),需要進行數(shù)據(jù)同步。新加入的節(jié)點隨機選取一個共識單元模數(shù)集合β={m1,m2,…,mk,mk+1,…,mk+s}中的模數(shù)mi,向共識單元中的其他節(jié)點發(fā)送請求,獲取低安全性區(qū)塊和區(qū)塊頭,以及同一模數(shù)節(jié)點存儲的數(shù)據(jù)碎片數(shù)據(jù)。當獲取多個同一模數(shù)節(jié)點的數(shù)據(jù)碎片存在不同時,新節(jié)點選取多數(shù)節(jié)點保存的數(shù)據(jù)碎片進行存儲。

      2.4 安全性分析

      若在區(qū)塊鏈網(wǎng)絡(luò)中節(jié)點數(shù)量為N,惡意節(jié)點數(shù)量為Nd,惡意節(jié)點的概率為:pd=其中,共識單元中節(jié)點數(shù)量為Nc(Nc≥k+s)。對于低安全性區(qū)塊,所有節(jié)點都需存儲,因此將低安全性區(qū)塊視為無法被篡改的。高安全性區(qū)塊被分片由節(jié)點分布式存儲。因此,只需要對高安全性區(qū)塊進行分析。分析最簡單的情況,Nc=k+s,共識單元中至少需要k個誠實節(jié)點才可以恢復(fù)正確的區(qū)塊數(shù)據(jù),共識單元中的節(jié)點能夠恢復(fù)區(qū)塊數(shù)據(jù)的概率為:

      由式(2)可知,隨著惡意節(jié)點的概率不斷增加,數(shù)據(jù)恢復(fù)的概率由開始的基本沒影響,然后呈指數(shù)化下降,最后趨向于0。模型選取不同的k、s進行分析,具體情況如圖7所示。

      圖7 數(shù)據(jù)恢復(fù)的概率變化Fig.7 Probability change of data recovery

      對比k=30,s=30 和k=50,s=50 圖像發(fā)現(xiàn),k、s相等時,取值越大,數(shù)據(jù)恢復(fù)的概率會相對較慢地呈指數(shù)化下降,但總體來說k、s相等時的取值對數(shù)據(jù)恢復(fù)影響較小。而對比k=50,s=50;k=50,s=70 和k=50,s=100 圖像,發(fā)現(xiàn)k設(shè)定為定值時,s的值越大,數(shù)據(jù)恢復(fù)的概率就越慢呈指數(shù)化下降,模型會具有更好的容錯性,能夠更好地保障數(shù)據(jù)的完整性和穩(wěn)定性;并且隨著節(jié)點源源不斷地加入?yún)^(qū)塊鏈系統(tǒng),多個節(jié)點獲取同一模數(shù)并存儲相同的數(shù)據(jù)碎片,模型的容錯性將持續(xù)提高。

      在模型中,所有節(jié)點保存低安全性區(qū)塊來防止攻擊者通過區(qū)塊鏈分叉來篡改數(shù)據(jù),并通過存儲高安性區(qū)塊的區(qū)塊頭來保障區(qū)塊數(shù)據(jù)的真實性和增加攻擊者生成攻擊鏈替代區(qū)塊鏈的難度。此外,節(jié)點存儲的高安全性區(qū)塊的區(qū)塊體碎片是一串沒有意義的數(shù)值,能夠有效地提高數(shù)據(jù)的隱私性,確保模型的安全性。

      模型將高安全性區(qū)塊分片后分布式存儲,有效地降低了節(jié)點的存儲壓力,但會增加節(jié)點的計算消耗和通信消耗。針對節(jié)點計算和通信消耗問題,模型可以根據(jù)不同的應(yīng)用場景來設(shè)置不同的信息模數(shù)基的和冗余檢錯基來進行調(diào)節(jié),并且隨著計算和通信技術(shù)的發(fā)展,所遇問題可能迎刃而解。

      3 實驗結(jié)果與分析

      為了分析模型的相關(guān)性能,在Python 環(huán)境下搭建仿真平臺,開啟不同的服務(wù)器端口來創(chuàng)建本地共識節(jié)點,硬件參數(shù):8 GB內(nèi)存,i5-6 500 CPU和GeForce GT 730顯卡。實驗將本文提出的基于CRT 的區(qū)塊鏈存儲擴展模型和傳統(tǒng)區(qū)塊鏈模型所需要的時間和存儲空間進行對比。實驗主要針對存儲和時間消耗,因此簡化了工作量證明,將兩模型POW 的難度值設(shè)為2(當取的隨機數(shù)滿足整個區(qū)塊的哈希值前2 位為0 時獲得記賬權(quán))。實驗一共建立了12 個節(jié)點,每產(chǎn)生10 筆交易數(shù)據(jù)進行一次挖礦(每筆交易數(shù)據(jù)相同)。本文模型中每個節(jié)點選取不同的模數(shù)mi(模數(shù)集合為{m1,m2,…,m12},其中信息模數(shù)基的長度為k=5,冗余檢錯基的長度為s=7)形成共識單元,并且選取q=0.1,p=0.9,故z增加到100,Pz<10-50,即區(qū)塊鏈當前高度的前100個區(qū)塊都是低安全性區(qū)塊。

      實驗生成300 個區(qū)塊,將兩模型區(qū)塊生成和存儲的時間消耗進行對比。其中,本文模型只對生成300 個區(qū)塊中的前200 個區(qū)塊進行分片,兩模型后100 區(qū)塊時間消耗相同,因此只需對比前200 個區(qū)塊生成和存儲時間消耗。為了更好地測試時間消耗,實驗中直接對前200 區(qū)塊進行分片,并計算出平均時間消耗,結(jié)果如圖8 所示。由圖8 可知,本文模型與傳統(tǒng)區(qū)塊模型的時間消耗相差不大。傳統(tǒng)區(qū)塊鏈模型中,區(qū)塊生成后直接存儲,主要的時間消耗包括挖礦時間和存儲時間;而本文模型需要判斷已經(jīng)生成的區(qū)塊的安全性,低安全性區(qū)塊直接存儲,高安全性區(qū)塊分片后存儲。兩種模型中區(qū)塊生成時間相同,主要差異為是否進行區(qū)塊分片。對前200 個區(qū)塊,本文模型平均時間消耗約為0.042 2 s,傳統(tǒng)區(qū)塊鏈模型平均時間消耗約為0.040 5 s。本文模型時間消耗略高于傳統(tǒng)區(qū)塊鏈模型的原因是模型需要將高安全性區(qū)塊的區(qū)塊體數(shù)字化,節(jié)點根據(jù)所選取的模數(shù)來分片。

      圖8 傳統(tǒng)區(qū)塊鏈模型與本文模型在區(qū)塊生成與存儲的時間對比Fig.8 Comparison of time consumption of traditional blockchain model and the proposed model in block generation and storage time

      實驗中分別生成不同的區(qū)塊數(shù),包括0、100、200、300,對比模型中的節(jié)點將區(qū)塊數(shù)據(jù)存入數(shù)據(jù)庫,以此對比存儲消耗,如圖9、10所示。由圖9可知,隨著區(qū)塊數(shù)量的增加,與傳統(tǒng)區(qū)塊鏈模型相比,本文模型具有更低的存儲消耗。圖10 為圖9在0 個區(qū)塊數(shù)據(jù)時,兩個模型的節(jié)點所消耗的存儲空間。本文模型因需要存儲一個額外的模數(shù),所以存儲消耗略大于傳統(tǒng)區(qū)塊鏈模型。當區(qū)塊鏈中的區(qū)塊數(shù)量小于或等于100 時,本文模型節(jié)點的存儲消耗略大于傳統(tǒng)區(qū)塊鏈模型中的節(jié)點。這是由于所有區(qū)塊都屬于低安全性區(qū)塊,兩模型中的節(jié)點都是直接存儲,而相比傳統(tǒng)區(qū)塊鏈模型中的節(jié)點,基于CRT 的區(qū)塊鏈存儲擴展模型中的節(jié)點需要額外存儲選取的模數(shù)。當區(qū)塊鏈中的區(qū)塊數(shù)量大于100 時,隨著區(qū)塊數(shù)量的增加,本文模型節(jié)點的存儲消耗逐漸小于傳統(tǒng)區(qū)塊鏈模型中的節(jié)點。這是由于將會有區(qū)塊從低安全性區(qū)塊變?yōu)楦甙踩詤^(qū)塊,本文模型中的節(jié)點將高安全性區(qū)塊分片,存儲區(qū)塊碎片,減少了存儲消耗。因此,本文模型能有效減輕節(jié)點的存儲壓力,增加區(qū)塊鏈系統(tǒng)的存儲擴展性。

      圖9 兩模型節(jié)點存儲消耗對比Fig.9 Comparison of two models for node storage consumption

      圖10 在0個區(qū)塊時節(jié)點存儲消耗對比Fig.10 Comparison of node storage consumption with 0 block

      4 結(jié)語

      本文主要對區(qū)塊鏈的存儲問題進行研究,提出了一種基于CRT 的區(qū)塊鏈存儲擴展模型來降低節(jié)點的存儲消耗。通過對區(qū)塊數(shù)據(jù)被篡改的可能性進行分析,將區(qū)塊鏈劃分為高安全性區(qū)塊和低安全性區(qū)塊。區(qū)塊鏈網(wǎng)絡(luò)中的節(jié)點根據(jù)區(qū)塊的安全性使用不同的存儲策略來存儲區(qū)塊:低安全性區(qū)塊直接存儲,高安全性區(qū)塊被基于CRT 的分割算法分片后被存儲,有效地減少了節(jié)點的存儲消耗。為保障區(qū)塊數(shù)據(jù)的完整性和提升區(qū)塊鏈系統(tǒng)的容錯性,引入RRNS 的錯誤檢測和糾正來防止區(qū)塊數(shù)據(jù)被篡改以及惡意節(jié)點作惡。實驗結(jié)果表明,該模型在保障區(qū)塊鏈系統(tǒng)安全的前提下,有效地降低了節(jié)點的存儲壓力,增加了區(qū)塊鏈系統(tǒng)的存儲可擴展性。未來可以進一步研究由節(jié)點的存儲能力和網(wǎng)絡(luò)帶寬來確定其所屬共識單元,提升系統(tǒng)的負載均衡。同時,將繼續(xù)研究怎么更加完善地解決區(qū)塊系統(tǒng)的存儲問題。

      猜你喜歡
      分片模數(shù)共識
      上下分片與詞的時空佈局
      詞學(xué)(2022年1期)2022-10-27 08:06:12
      基于單片機和模數(shù)化設(shè)計的低壓側(cè)電壓監(jiān)視與保護裝置
      能源工程(2021年2期)2021-07-21 08:40:02
      共識 共進 共情 共學(xué):讓“溝通之花”綻放
      論思想共識凝聚的文化向度
      分片光滑邊值問題的再生核方法
      CDN存量MP4視頻播放優(yōu)化方法
      模數(shù)化設(shè)計方法在景觀鋪裝設(shè)計中的應(yīng)用
      綠色科技(2020年11期)2020-08-01 02:23:58
      商量出共識
      基于模糊二分查找的幀分片算法設(shè)計與實現(xiàn)
      基于LID模式的城區(qū)排澇模數(shù)探析
      沛县| 岐山县| 林芝县| 文安县| 大渡口区| 布拖县| 安化县| 文山县| 湘阴县| 开平市| 江门市| 万全县| 额敏县| 饶平县| 江油市| 宁都县| 晋州市| 沙洋县| 伊春市| 渝中区| 通化市| 孟津县| 邯郸市| 彭山县| 神池县| 黑山县| 钟山县| 商洛市| 绵竹市| 永胜县| 康马县| 许昌市| 盐山县| 普定县| 阿图什市| 枝江市| 芮城县| 林西县| 连城县| 巧家县| 肥乡县|