亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于變色龍hash的區(qū)塊鏈可擴展存儲方案

        2023-02-21 14:57:37胡寧玉郝耀軍常建龍馮麗萍
        計算機應用研究 2023年12期
        關鍵詞:區(qū)塊鏈

        胡寧玉 郝耀軍 常建龍 馮麗萍

        摘 要:區(qū)塊鏈中的節(jié)點以副本形式保存數(shù)據(jù),隨著時間的推移,區(qū)塊鏈中的區(qū)塊數(shù)不斷增加,導致節(jié)點承受的存儲壓力隨之增大,存儲壓力成為區(qū)塊鏈應用落地的瓶頸之一。為了解決區(qū)塊鏈中存儲壓力問題,提出了基于變色龍hash的區(qū)塊鏈可擴展存儲方案,該方案利用節(jié)點被攻擊成功的概率和改進的溫度模型,將區(qū)塊分為高低安全性的冷熱區(qū)塊;基于變色龍hash算法和改進的Merkle tree,對高安全性的冷區(qū)塊進行部分節(jié)點存儲。在存儲過程中,除高安全性冷區(qū)塊的區(qū)塊體信息被重構外,其余數(shù)據(jù)保持不變。仿真實驗表明,在不改變區(qū)塊鏈結構和安全性能的情況下,所提出的方案可減少區(qū)塊鏈中數(shù)據(jù)的存儲總量,減少存儲節(jié)點的存儲壓力;且區(qū)塊數(shù)量越多,其優(yōu)勢越明顯。

        關鍵詞:區(qū)塊鏈;變色龍hash;存儲擴展性

        中圖分類號:TP311?? 文獻標志碼:A?? 文章編號:1001-3695(2023)12-003-3539-06

        doi:10.19734/j.issn.10013695.2023.03.0139

        Scalable storage scheme based on chameleon hash for blockchain

        Abstract:Since the nodes of the blockchain save data as copies,the increasing number of blocks in the blockchain leads to a raise in storage pressure on nodes as time goes on,and the storage problem has become one of the bottlenecks in the blockchain application areas.To solve the problem of storage pressure in the blockchain,this paper proposed scalable storage scheme based on chameleon hash,in which the blocks were divided into hot or cold blocks with high or low security characteristics through the successfully attacked probability and the improved temperature model.Based on chameleon hash algorithm and the improved Merkle tree,the cold blocks with high security characteristics were partly stored on nodes.During the storing process,the data remained unchanged except that the cold blocks with high security characteristics were reconstructed.The simulation experiments show that the proposed scheme can reduce the total amount of data storage in the blockchain and the reduce node storage pressure,without changing the blockchain structure and security performance.And the more blocks,the more advantages.

        Key words:blockchain;chameleon hash;storage scalability

        0 引言

        區(qū)塊鏈作為新興技術,具有去中心化、防竄改、數(shù)據(jù)共享、可追溯等特點[1]。區(qū)塊鏈中的每個存儲節(jié)點以副本形式保存數(shù)據(jù),提高了數(shù)據(jù)的安全性,同時也增加了節(jié)點的存儲壓力。以比特幣為例,截至2022年9月15日,比特幣共產(chǎn)生了754 135個區(qū)塊,平均每個區(qū)塊大小約為1.5 MB,整個區(qū)塊鏈的大小約1 104.7 GB,有效地址約為3 506萬個,整個比特幣系統(tǒng)需消耗約37 824 PB的空間來存儲數(shù)據(jù)。隨著時間的推移,區(qū)塊鏈的區(qū)塊數(shù)持續(xù)增加,所耗費的存儲空間也越來越大,存儲問題將成為區(qū)塊鏈應用落地的一大瓶頸,因此解決區(qū)塊鏈的存儲問題勢在必行。

        針對區(qū)塊鏈的存儲問題,國內(nèi)外學者做了大量研究。文獻[2,3]研究了區(qū)塊鏈數(shù)據(jù)的鏈上+鏈下的存儲方式,該存儲方式將原始數(shù)據(jù)存儲于云服務器中,將原始數(shù)據(jù)的hash值存儲于區(qū)塊鏈上,用鏈上的hash值驗證服務器中原始數(shù)據(jù)的正確性和一致性,采用鏈上+鏈下的方式,通過減少上鏈的數(shù)據(jù)量來緩解存儲壓力。文獻[4~6]研究了分片存儲,該方法采用不同的分片技術,將區(qū)塊鏈的數(shù)據(jù)進行分片處理,并將分片按策略保存到一定數(shù)量的節(jié)點中,節(jié)點通過不存儲區(qū)塊鏈完整數(shù)據(jù)來解決存儲問題。Raman等人[7]將區(qū)塊鏈中的節(jié)點劃分為多個區(qū)域,將每個區(qū)域當作一個全節(jié)點,區(qū)域內(nèi)所有節(jié)點只需存儲部分副本數(shù)據(jù),通過這些節(jié)點保存的數(shù)據(jù)可整合還原整個副本數(shù)據(jù),從而減少數(shù)據(jù)存儲總量,該方法實現(xiàn)了數(shù)據(jù)的分片或節(jié)點的分區(qū),減少了數(shù)據(jù)的存儲份數(shù),但增加了鏈中數(shù)據(jù)的查詢時間。趙羽龍等人[8]提出了增強型輕量級節(jié)點模型,該方法通過輕量級節(jié)點只存儲區(qū)塊頭信息來減少存儲壓力,由于輕量級節(jié)點工作時完全依賴于全節(jié)點,從而降低區(qū)塊鏈的安全性和去中心化。

        數(shù)據(jù)的分片或節(jié)點的分區(qū)是目前解決區(qū)塊鏈存儲壓力的主要方法,但數(shù)據(jù)的分片或節(jié)點的分區(qū),使大部分節(jié)點沒有保存區(qū)塊鏈中的全部數(shù)據(jù),當進行查詢操作時,需要大量訪問系統(tǒng)中其他節(jié)點,整合完整的區(qū)塊數(shù)據(jù),使得鏈中數(shù)據(jù)的查詢效率明顯降低。同時,鏈中數(shù)據(jù)來自不同節(jié)點,可能存在惡意節(jié)點返回虛假數(shù)據(jù),出現(xiàn)多次整合數(shù)據(jù)的情況,從而增加了查詢的難度和查詢的時間[9,10]。

        很多領域中的數(shù)據(jù),不同時期存在不同的意義:數(shù)據(jù)剛生成時,其訪問頻率最高;隨著時間的推移,數(shù)據(jù)的重要性逐漸降低,使用的頻率也隨之下降,且數(shù)據(jù)的訪問通常具有二八特征,即20%的數(shù)據(jù)會經(jīng)常訪問,其他80%則相反[11,12]。根據(jù)數(shù)據(jù)的訪問情況,可以采用訪問頻度來衡量數(shù)據(jù)的重要性,將經(jīng)常訪問的數(shù)據(jù)定義為重要(熱)數(shù)據(jù),將不經(jīng)常訪問的數(shù)據(jù)定義為非重要(冷)數(shù)據(jù)[13,14]。由此,可以按數(shù)據(jù)的冷熱情況將數(shù)據(jù)按不同策略存儲,進而解決數(shù)據(jù)查詢速度和存儲成本問題。

        同時,依據(jù)文獻[15]中的基于陷門單向函數(shù)的可修改的區(qū)塊鏈方案,可以在不改變區(qū)塊間的鏈接關系、驗證方式和安全性能的情況下實現(xiàn)數(shù)據(jù)的修改。因此,本文在考慮節(jié)點存儲均衡的情況下,采用變色龍哈希函數(shù)來實現(xiàn)部分節(jié)點存儲,解決區(qū)塊鏈的存儲壓力問題,同時也避免了分片存儲中查詢時數(shù)據(jù)重組的時間消耗問題。

        綜上所述,本文在現(xiàn)有研究的基礎上,根據(jù)區(qū)塊鏈中數(shù)據(jù)的安全性和使用情況,提出了針對區(qū)塊鏈中高安全性的冷區(qū)塊(簡稱高冷區(qū)塊)的部分節(jié)點存儲方案。該方案通過區(qū)塊的安全性和冷熱程度,基于變色龍hash函數(shù)和改進的Merkle tree,將高冷區(qū)塊進行部分節(jié)點存儲。該存儲方案保證原始區(qū)塊鏈結構、機制和網(wǎng)絡拓撲結構等不變,查詢速度影響較小的情況下,減少節(jié)點的存儲空間消耗,解決區(qū)塊鏈的存儲壓力問題。

        1 預備知識

        1.1 區(qū)塊鏈原理

        區(qū)塊鏈最早由中本聰在論文《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》中首次提出,比特幣是區(qū)塊鏈技術的應用。區(qū)塊鏈是利用密碼算法、共識機制、智能合約等技術構造的一種多方參與、共同維護的分布式數(shù)據(jù)庫,具有去中心化、數(shù)據(jù)不可竄改、共識認證、可追溯的特點。區(qū)塊鏈由區(qū)塊頭和區(qū)塊體組成,區(qū)塊鏈的基本結構如圖1所示。

        默克爾樹(Merkel tree),又稱hash tree,是存儲hash值的一棵樹。區(qū)塊體中的每條記錄都對應相應的hash值,兩兩組合進行hash運算,如若出現(xiàn)奇數(shù),則復制自身值后再hash。每次新生成的hash值作為一個節(jié)點插入到Merkel tree中,直至只剩一個哈希值,該值就是區(qū)塊頭中默克爾根(Merkel root)的值。默克爾樹的構造過程如圖2所示。

        區(qū)塊頭中的前一區(qū)塊的hash(preBlockHash)字段記錄了上一區(qū)塊的block hash值,以此銜接構成區(qū)塊鏈。如果某區(qū)塊體中記錄被竄改,對應的Merkel root值將發(fā)生變化,該區(qū)塊的block hash值隨之變化,將與后一區(qū)塊中的preBlockHash字段值不匹配,或導致其后續(xù)區(qū)塊的preBlockHash字段值發(fā)生變化。因此,Merkel tree是保證區(qū)塊體中記錄不可竄改的重要原因。

        1.2 變色龍hash函數(shù)

        哈希函數(shù)是將任意長度的輸入轉換成固定長度的輸出,通過輸入很容易計算出輸出,但通過輸出很難求得原始輸入,具有不可逆性和高靈敏度[16]。變色龍hash函數(shù)[17]是特殊的哈希函數(shù),若掌握函數(shù)陷門,可以逆向計算原始輸入;若陷門未知,其為普通哈希函數(shù)。

        變色龍hash函數(shù)的一般定義[18,19]為

        Cham_Hash(Setup,KeyGen,Hash,F(xiàn)orge)

        其中:Setup(x)的輸入?yún)?shù)為x,輸出公共參數(shù)pq;KeyGen(pq)的輸入?yún)?shù)為公共參數(shù)pq,輸出私鑰CK、公鑰HK;Hash(HK,m,r)的輸入?yún)?shù)為公鑰HK、信息m和隨機數(shù)r,輸出變色龍hash函數(shù)值CH;Forge(CK,m,r,m′)的輸入?yún)?shù)為私鑰CK、信息m、隨機數(shù)r、消息m′,輸出新的隨機數(shù)r′,使Hash(HK,m,r)=Hash(HK,m′,r′)。

        Krawczky等人[20]在2000年提出了變色龍hash方案,具體構造為:

        Setup(x):輸入x,輸出滿足x的大素數(shù)p和k,其中p=λk+1,再取乘法循環(huán)群Z*P中階為k的元素g,輸出公共參數(shù)pkg=(p,k,g);

        KeyGen(pkg):輸入?yún)?shù)pkg,在Z*P中隨機選取y,計算h=gy,將y設為私鑰,將h設為公鑰;

        Hash(h,m,r):輸入公鑰h,信息m和隨機數(shù)r,得到變色龍hash函數(shù)值CH=gmhr mod p;

        Forge(y,m,r,m′):輸入私鑰y、信息m、隨機數(shù)r、消息m′,根據(jù)CH=gmhr mod p=gm′hr′ mod p,求得新的隨機數(shù)r′=(m-m′+yr)·y-1 mod k。

        2 基于變色龍hash的區(qū)塊鏈可擴展存儲方案

        該方案基于改進的Merkle tree,使用變色龍hash算法實現(xiàn)高冷區(qū)塊的部分節(jié)點存儲,區(qū)塊鏈原有結構、共識和驗證等過程保持不變。部分節(jié)點存儲過程中,只有監(jiān)督節(jié)點驗證通過后才能進行高冷區(qū)塊的部分節(jié)點存儲,不合法的存儲或修改無法完成。本章介紹了可擴展存儲方案的結構,對方案存儲原理及相關規(guī)則進行了詳細介紹,并對方案的安全性進行了分析。

        2.1 可擴展存儲方案結構

        2.1.1 存儲結構

        可擴展存儲方案中,對鏈中高冷區(qū)塊進行部分節(jié)點存儲,即根據(jù)存儲比例閾值,依規(guī)則隨機選取部分節(jié)點存儲高冷區(qū)塊,該方案的存儲結構如圖3所示。通過減少鏈中高冷區(qū)塊的存儲份數(shù)來減少節(jié)點的存儲空間消耗,解決區(qū)塊鏈的存儲壓力問題。

        2.1.2 改進的Merkle tree

        傳統(tǒng)存儲方案中,區(qū)塊頭中的默克爾根字段與區(qū)塊體中交易數(shù)據(jù)形成的默克爾樹的根值一一對應,交易數(shù)據(jù)一旦改變,默克爾根字段值隨之改變,這將導致后續(xù)區(qū)塊信息的改變,因此區(qū)塊鏈在理論上是無法修改的。本文在默克爾樹構造過程中引入了隨機數(shù),采用原默克爾根值和隨機數(shù)的運算值作為最終的默克爾根值,本文方案的Merkle tree構造過程如圖4所示。

        本文方案中,Merkle tree的根值為

        由變色龍hash函數(shù)構成,具體如下:

        =g1(x1)‖g2(x2)‖…‖gk(xk)

        其中:m(Data0,Data1,…)為信息;gi(xi)(i=1,2,…,k)是挖礦時可靠性排名前k的節(jié)點特有的變色龍hash函數(shù),其陷門由節(jié)點私密保管;(x1,x2,…,xk)為對應節(jié)點的原始隨機數(shù),初始值由系統(tǒng)統(tǒng)一生成,并且作為公開數(shù)據(jù)被各節(jié)點存儲,只有超過一定數(shù)量的節(jié)點同意后,隨機數(shù)才能改變,同時這些節(jié)點將作為該區(qū)塊后續(xù)操作的監(jiān)督節(jié)點。本文方案中引入的隨機數(shù),使默克爾根值由原來的Hash(m)變?yōu)镠ash(m)⊕,即使信息m發(fā)生變化,亦可重構隨機數(shù)′,實現(xiàn)除選定區(qū)塊的區(qū)塊體信息外,其區(qū)塊頭數(shù)據(jù)、前后區(qū)塊的所有信息均保持不變。在部分節(jié)點存儲時,保證區(qū)塊鏈結構的完好,實現(xiàn)高冷區(qū)塊的部分節(jié)點存儲。

        高冷區(qū)塊的部分節(jié)點存儲,本質是保證高冷區(qū)塊的區(qū)塊頭和其他區(qū)塊的信息不變情況下,替換高冷區(qū)塊的區(qū)塊體數(shù)據(jù),重構隨機數(shù)′。其重構原理如圖5所示。

        重構信息包括存儲標志、原始數(shù)據(jù)存儲節(jié)點位置信息、原始默克爾根。存儲標志用于標識該區(qū)塊是否已被部分節(jié)點存儲;原始數(shù)據(jù)存儲節(jié)點位置信息用于記錄存儲原始數(shù)據(jù)的存儲節(jié)點信息;原始默克爾根用于記錄部分節(jié)點存儲前交易數(shù)據(jù)的默克爾根值,便于后期驗證存儲節(jié)點中存儲的區(qū)塊原始數(shù)據(jù)的正確性。

        2.2 可擴展存儲方案原理

        本文方案中,系統(tǒng)根據(jù)規(guī)則選出高冷區(qū)塊、計算存儲份數(shù)、選定區(qū)塊存儲節(jié)點,并發(fā)出存儲請求。區(qū)塊對應的監(jiān)督節(jié)點驗證存儲請求信息,驗證通過后便可對選定的高冷區(qū)塊進行部分節(jié)點存儲。存儲過程中,監(jiān)督節(jié)點根據(jù)區(qū)塊頭中的默克爾根值和重構信息hash值調(diào)整節(jié)點隨機數(shù),重新計算隨機數(shù)′,使該過程不破壞原區(qū)塊鏈的結構。本節(jié)詳細介紹該方案中各個規(guī)則的設定及區(qū)塊的部分節(jié)點存儲過程。

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

        本文方案中將不經(jīng)常使用的高安全性區(qū)塊存儲在部分高性能的節(jié)點中,以減少高冷區(qū)塊的存儲份數(shù)。區(qū)塊鏈通常采用POW作為共識機制,節(jié)點間通過計算能力的較量來獲取記賬權,若區(qū)塊鏈攻擊者能獲得網(wǎng)絡中一半以上的算力,則可以控制整個區(qū)塊鏈系統(tǒng)[4,5]。通常情況下,大部分攻擊都是通過生成平行鏈的方式來替代原始區(qū)塊鏈,從而實現(xiàn)數(shù)據(jù)的竄改,因此,攻擊者需要比誠實者更快地創(chuàng)建出下一個區(qū)塊。文獻[6,21]給出了在雙重支付攻擊場景中,攻擊者能否攻擊成功,可以近似看成賭徒破產(chǎn)問題,惡意節(jié)點構建區(qū)塊的概率滿足泊松分布,期望為

        λ=z×(q/p)(1)

        其中:p為誠實節(jié)點構造出下一區(qū)塊的概率,q為攻擊節(jié)點構造下一區(qū)塊的概率,z為誠實節(jié)點領先攻擊節(jié)點的區(qū)塊數(shù)量。

        pz為攻擊節(jié)點趕超誠實節(jié)點,成功竄改區(qū)塊的概率為

        由式(2)可知,pz的值由p、q、z共同決定。在Python環(huán)境中,根據(jù)p和z的值,畫出pz的圖,如圖6所示。

        從圖可見,p值固定時,隨著領先區(qū)塊數(shù)量z值的增加,pz值減少;z值固定時,隨著p值的增大,pz值減小。根據(jù)Borel定律[22],任何概率低于1/1050的事件是不可能發(fā)生的。當z的值增加到某一數(shù)值時,pz的值會小于1/1050,此時意味著攻擊節(jié)點不可能趕超誠實節(jié)點,實現(xiàn)區(qū)塊的竄改。對p取不同值,計算出pz值小于1/1050的最小z值,結果如表1所示。

        2.2.2 區(qū)塊冷熱度區(qū)分

        在不同應用場景下,冷熱數(shù)據(jù)的含義各不相同,通常被應用在數(shù)據(jù)訪問和存儲領域。數(shù)據(jù)的冷熱通常由未來一段時間內(nèi)數(shù)據(jù)的訪問情況決定,稱未來一段時間內(nèi)訪問概率大的數(shù)據(jù)為熱數(shù)據(jù),訪問概率小的數(shù)據(jù)為冷數(shù)據(jù),主要被應用到緩存的替換場景中;在海量數(shù)據(jù)訪問領域,數(shù)據(jù)的冷熱通常由數(shù)據(jù)的歷史訪問情況決定,稱最近經(jīng)常被訪問的數(shù)據(jù)為熱數(shù)據(jù),很久未被訪問的數(shù)據(jù)為冷數(shù)據(jù),主要被應用到數(shù)據(jù)存儲場景中[14,23]。方案中采用區(qū)塊中數(shù)據(jù)的歷史訪問情況來衡量區(qū)塊的熱度,也就是說某一區(qū)塊中的數(shù)據(jù)被訪問的次數(shù)越多,即區(qū)塊的熱度越高。系統(tǒng)會在一定時間內(nèi)對區(qū)塊的熱度進行更新,為了從動態(tài)的角度來計算區(qū)塊的熱度,根據(jù)實際情況,對文獻[14]中基于牛頓冷卻定律的溫度模型進行改進,綜合考慮時間的推移和訪問頻率對區(qū)塊熱度的影響,即當前時刻為熱區(qū)塊,一段時間內(nèi),在沒有訪問的情況下熱度會逐漸變低;一段時間內(nèi),區(qū)塊的訪問頻率越高,區(qū)塊的熱度越高。在更新區(qū)塊熱度時,應適當選擇更新時間間隔,若時間間隔太短,頻繁的熱度更新將影響系統(tǒng)性能;若時間間隔太長,不能及時體現(xiàn)區(qū)塊熱度的變化。假設在時間間隔tn-1~tn時刻,某一區(qū)塊中數(shù)據(jù)被訪問了P次,D(tn)為tn時刻區(qū)塊熱度,a為冷卻系數(shù)(即區(qū)塊熱度隨時間的變化速度),Dheat為區(qū)塊中數(shù)據(jù)被訪問一次后增加的熱度,則tn時刻區(qū)塊的熱度為

        D(tn)=D(tn-1)×e-a(tn-tn-1)+Dheat×P(3)

        為了減少網(wǎng)絡開銷,不采用實時共享區(qū)塊的冷熱度信息,而是在存儲操作工作被觸發(fā)時,每個節(jié)點根據(jù)式(3)計算出未被部分節(jié)點存儲的高安全性區(qū)塊的熱度,將低溫度區(qū)塊信息共享到網(wǎng)絡中,求取共同的低溫度區(qū)塊。

        2.2.3 存儲份數(shù)和存儲節(jié)點確定

        分離出高冷區(qū)塊后,將其存儲到部分節(jié)點中,存儲過程中需考慮兩個方面:

        a)安全性。高冷區(qū)塊存儲時,需考慮區(qū)塊的安全性,避免區(qū)塊數(shù)據(jù)被竄改、丟失。

        b)平衡性。存儲高冷區(qū)塊時需考慮存儲節(jié)點的負載均衡、性能。

        1)高冷區(qū)塊的存儲份數(shù)

        保證區(qū)塊的安全性,高冷區(qū)塊的存儲份數(shù)由當前區(qū)塊鏈中存儲節(jié)點的總數(shù)和存儲比例閾值乘積決定,計算公式為

        mi=存儲比例閾值×M

        其中:M為區(qū)塊鏈中存儲節(jié)點的總數(shù),存儲比例閾值的設置需要兼顧安全性和效率。在M一定的情況下,閾值比例越大,高冷區(qū)塊的保存份數(shù)越多,高冷區(qū)塊的安全性越高,但方案空間節(jié)省率較低;存儲比例閾值越小,高冷區(qū)塊的存儲份數(shù)越少,高冷區(qū)塊的安全性越低,空間節(jié)省率較高。存儲比例閾值的設定,根據(jù)實際應用情況來設定。

        2)存儲節(jié)點的選擇

        存儲方案中,確定高冷區(qū)塊和存儲份數(shù)后,應合理地選擇節(jié)點來存儲原始區(qū)塊數(shù)據(jù)和監(jiān)督部分節(jié)點存儲過程。為了保證高冷區(qū)塊部分節(jié)點存儲后的安全性和監(jiān)督節(jié)點的可信性,本文考慮了存儲節(jié)點和監(jiān)督節(jié)點的可靠性,節(jié)點的可靠性由節(jié)點空間可利用率(r1)、節(jié)點信用(r2)和I/O性能(r3)共同決定,根據(jù)實驗效果,每項指標所占比例如表2所示。

        本文方案采用均衡隨機抽?。?4]方法,從M個存儲節(jié)點中抽出K個節(jié)點,根據(jù)每個節(jié)點的r1、r2和r3值,計算出節(jié)點的可靠性值,選取值為前mi的節(jié)點作為存儲節(jié)點。采用pi=∑3i=1wiri[25]計算節(jié)點性能。抽取數(shù)K=mi+β,β為存儲節(jié)點數(shù)的余量,取值由區(qū)塊的熱度D(tn)決定。根據(jù)熱度,不同程度剔除較低性能節(jié)點,篩選出較安全可靠的存儲節(jié)點存儲高冷區(qū)塊。

        2.2.4 存儲方案實施

        高冷區(qū)塊部分節(jié)點存儲過程:

        a)系統(tǒng)時間觸發(fā),根據(jù)規(guī)則篩選出高冷區(qū)塊,并對其區(qū)塊號、存儲份數(shù)、存儲節(jié)點和重構信息等進行廣播。

        b)對應區(qū)塊的監(jiān)督節(jié)點驗證信息的合法性(是否已經(jīng)部分節(jié)點存儲、需存儲的區(qū)塊是否為高冷區(qū)塊、存儲節(jié)點的權重等),若合法,則監(jiān)督節(jié)點重新計算隨機數(shù)(x′1,x′2,…,x′k)。

        c)監(jiān)督節(jié)點在全網(wǎng)廣播新計算的隨機數(shù)并更新,存儲節(jié)點將區(qū)塊體信息保存,全網(wǎng)所有節(jié)點驗證通過后將對應區(qū)塊的區(qū)塊體替換為重構信息。

        d)將此次存儲過程的信息以交易信息(Block_Id,time,(x1,x2,…,xk),(x′1,x′2,…,x′k),…)的方式記錄到區(qū)塊鏈中。

        2.2.5 數(shù)據(jù)查詢

        本文方案中,數(shù)據(jù)查詢時,按區(qū)塊鏈數(shù)據(jù)查詢方式尋找數(shù)據(jù)所在區(qū)塊,查看所在區(qū)塊是否被部分節(jié)點存儲,若無,直接讀取區(qū)塊體中數(shù)據(jù);若所讀取區(qū)塊已被部分節(jié)點存儲,讀取區(qū)塊原始數(shù)據(jù)存儲節(jié)點位置信息,根據(jù)信息查找區(qū)塊的第一個存儲節(jié)點,讀取數(shù)據(jù)后對數(shù)據(jù)進行驗證,判斷是否為原始數(shù)據(jù),若數(shù)據(jù)已丟失或驗證失敗,更新存儲節(jié)點信用,繼續(xù)讀取下一存儲節(jié)點位置信息,重復上述過程,直至數(shù)據(jù)讀取成功。

        2.3 可擴展存儲方案安全性分析

        本文方案不會降低區(qū)塊鏈本身的安全性,不會破壞原有區(qū)塊鏈的結構,對區(qū)塊鏈中存儲壓力有緩解作用。本文方案中,保證區(qū)塊部分節(jié)點存儲的安全因素為:a)從理論上高冷區(qū)塊是安全的,且是冷區(qū)塊,降低了攻擊的價值,增加了攻擊的難度;b)存儲節(jié)點是隨機選取的;c)基于每個節(jié)點設置了變色龍hash函數(shù),陷門為每個節(jié)點獨有,只有監(jiān)督節(jié)點聯(lián)合才能實現(xiàn)高冷區(qū)塊的部分節(jié)點存儲操作;d)重構信息中包括了高冷區(qū)塊原始hash值,防止線下存儲的數(shù)據(jù)被修改。以上條件充分考慮了高冷區(qū)塊部分節(jié)點存儲前、中、后的安全性,避免塊中數(shù)據(jù)被惡意竄改的可能。

        為了說明該存儲方案的安全性,下面模擬節(jié)點惡意攻擊。根據(jù)重構的過程,可對高冷區(qū)塊部分節(jié)點存儲前、中、后過程進行攻擊,攻擊點如下:

        a)修改區(qū)塊中數(shù)據(jù),調(diào)整后續(xù)簽名子塊,使區(qū)塊關系依然正確;

        b)調(diào)整隨機數(shù),竄改交易數(shù)據(jù),使得區(qū)塊頭中各字段數(shù)據(jù)保持不變;

        c)攻擊存儲節(jié)點,修改原始區(qū)塊數(shù)據(jù)。

        攻擊點a),修改區(qū)塊數(shù)據(jù),后續(xù)區(qū)塊的區(qū)塊頭信息需調(diào)整,其攻擊難度同攻擊區(qū)塊鏈本身難度一致;

        攻擊點b),為保證Hash(m)⊕=Hash(m′)⊕′,攻擊者需對所有監(jiān)督節(jié)點進行攻擊,獲取其陷門,才能攻擊成功,否則無法實現(xiàn)竄改;

        攻擊點c),部分節(jié)點存儲結束后,每個節(jié)點存儲了重構信息,其中包括原始的hash信息,若存儲節(jié)點中存儲的原始區(qū)塊數(shù)據(jù)被竄改,其值與原始交易數(shù)據(jù)的hash值不匹配;若要成功竄改部分節(jié)點存儲后的區(qū)塊數(shù)據(jù),則需攻擊區(qū)塊鏈中所有節(jié)點,修改對應重構信息。

        3 實驗仿真

        在Visual Studio Ultimate環(huán)境下,采用C++語言對區(qū)塊的生成和部分節(jié)點存儲過程進行模擬。區(qū)塊生成過程中的hash值采用SHA256實現(xiàn),變色龍hash函數(shù)gi采用ECC200[26,27]加密算法實現(xiàn),每個節(jié)點的私鑰為對應變色龍hash函數(shù)的陷門,即以節(jié)點i的公鑰對其專屬隨機數(shù)xi進行加密。模擬過程中每10筆交易打包成1個區(qū)塊,交易內(nèi)容人為擬定,創(chuàng)建區(qū)塊鏈;并對本文提出的存儲方案、傳統(tǒng)存儲方案和分片存儲方案的存儲空間消耗等情況進行對比和分析。

        3.1 區(qū)塊的生成

        區(qū)塊生成仿真實驗中,模擬了16個節(jié)點,監(jiān)督節(jié)點個數(shù)設為8個。根據(jù)區(qū)塊鏈的原理,模擬新區(qū)塊的生成過程,根據(jù)工作量證明機制,優(yōu)先計算出符合條件的隨機數(shù)和難度系數(shù)的節(jié)點獲得區(qū)塊的記賬權。以第31號區(qū)塊為例,對其生成過程的交易hash、MerkleTree的根值和區(qū)塊頭的默克爾根字段值進行介紹。

        交易hash按默克爾樹生成規(guī)則生成,第31號區(qū)塊的交易hash值:MerkleTree(m)=9dc77be32b7a979538c663ed0e0f279 08f99bbe85675d9ae8895115f2c4fde03。

        圖7是實驗模擬生成的未執(zhí)行部分節(jié)點存儲的第30和31號區(qū)塊的部分數(shù)據(jù)。

        3.2 高冷區(qū)塊的存儲

        3.3 實驗對比與分析

        1)存儲空間消耗

        為了簡化實驗,存儲時,p取0.9,當z為30時, Pz的值將小于10-50,即當區(qū)塊鏈中區(qū)塊數(shù)超過29后,存在高安全性區(qū)塊;正常記錄區(qū)塊的熱度信息,根據(jù)tn時刻區(qū)塊熱度D(tn)小于0.01時選出冷區(qū)塊,為縮短實驗時間,按高安全性區(qū)塊數(shù)量的70%定義為冷區(qū)塊。從不同的角度,分別對區(qū)塊數(shù)為50、100、150、200、250、300、350、400時,統(tǒng)計傳統(tǒng)存儲方案、本文存儲方案和分片存儲方案的存儲空間消耗情況。圖9是節(jié)點數(shù)為16,存儲比例閾值為25%時,不同區(qū)塊數(shù)的存儲空間消耗對比。為了驗證本方案與節(jié)點數(shù)量和存儲比例閾值的關系,在不同數(shù)量的節(jié)點情況下,統(tǒng)計不同區(qū)塊數(shù)的空間節(jié)省率;對節(jié)點數(shù)和區(qū)塊數(shù)固定,針對不同存儲比例閾值時,統(tǒng)計空間節(jié)省率。圖10是區(qū)塊數(shù)分別取不同值,存儲比例閾值為25%時,與傳統(tǒng)存儲方案相比的空間節(jié)省率情況。圖11是節(jié)點數(shù)為16,每個節(jié)點中的區(qū)塊數(shù)為100時,取不同存儲比例閾值的空間節(jié)省率情況。

        從圖9中可知,隨著區(qū)塊數(shù)量的增加,本文存儲方案需要的存儲空間的增長速度低于傳統(tǒng)存儲方案。區(qū)塊數(shù)小于30時,鏈中不存在高冷區(qū)塊,存儲空間占用上,本文存儲方案的空間占用大于傳統(tǒng)存儲方案,這是因為鏈中所有區(qū)塊都是低安全性區(qū)塊,本文存儲方案與傳統(tǒng)存儲方案對區(qū)塊進行全副本存儲,而且本文存儲方案中存儲了節(jié)點信用、空間可用容量、區(qū)塊熱度值等額外信息;當鏈中區(qū)塊數(shù)大于30時,鏈中出現(xiàn)高安全性區(qū)塊,并將其中冷區(qū)塊進行部分節(jié)點存儲。區(qū)塊數(shù)為140時,本文方案節(jié)約了約576 KB的空間,空間節(jié)約率為20%。隨著鏈中區(qū)塊數(shù)的增加,高冷區(qū)塊越來越多,能被部分節(jié)點存儲的區(qū)塊越來越多,本文方案的存儲優(yōu)勢越來越明顯,可有效減少節(jié)點的存儲壓力。分片存儲方案的空間占用走勢同本文方案類似,本文方案略高,這是因為本文方案對鏈中的高安全性的熱區(qū)塊不進行部分節(jié)點存儲。

        從圖10可知,不同節(jié)點數(shù)的空間節(jié)省率隨區(qū)塊數(shù)的增加的走勢相似。區(qū)塊數(shù)小于30時,空間節(jié)省率為負數(shù),代表本存儲方案的空間占用大于傳統(tǒng)存儲方案;當區(qū)塊數(shù)大于30時,隨著區(qū)塊數(shù)的增加,空間節(jié)省率越來越大,原因同上;節(jié)點數(shù)越多,對應的空間節(jié)省率越大,這是因為存儲過程中,存儲的份數(shù)為節(jié)點數(shù)乘以存儲比例閾值,閾值一定的情況下,節(jié)點數(shù)越多,(1-存儲比例閾值)×M值越大,所以其空間節(jié)省率越大。

        從圖11可知,不同比例閾值下,空間的節(jié)省率不同。當閾值達到某個數(shù)值后,其存儲空間節(jié)省率為負值,這是因為存儲比例閾值越大,高冷區(qū)塊存儲的份數(shù)越多,部分節(jié)點存儲后減少的總數(shù)據(jù)量比本文方案中額外記錄的信息量小,所以出現(xiàn)負值。但節(jié)點個數(shù)固定的情況下,閾值的大小決定了高冷區(qū)塊被部分節(jié)點存儲后的安全性。因此在應用時,需根據(jù)情況權衡高冷區(qū)塊的安全性和空間節(jié)省率。

        2)區(qū)塊部分節(jié)點存儲過程的時間消耗

        圖12是節(jié)點數(shù)為16,對監(jiān)督節(jié)點取不同數(shù)量時,測試第31號區(qū)塊的部分節(jié)點存儲過程的時間消耗情況。從圖12中可知,監(jiān)督節(jié)點的數(shù)量影響區(qū)塊的部分節(jié)點存儲效率,監(jiān)督節(jié)點越多,部分節(jié)點存儲的決定權掌握在更多節(jié)點手中,其安全性越高,但區(qū)塊的部分節(jié)點存儲的時間消耗也越大。

        3)查詢時間消耗

        模擬高冷區(qū)塊的部分節(jié)點存儲后,對傳統(tǒng)存儲方案、本文方案和分片存儲方案中的部分區(qū)塊數(shù)據(jù)進行多次查詢,統(tǒng)計同一高冷區(qū)塊中數(shù)據(jù)查詢所消耗的平均時間,其時間消耗對比如圖13所示。從圖13可見,隨著區(qū)塊數(shù)量的增加,本文存儲方案、傳統(tǒng)存儲方案和分片存儲方案的查詢時間隨區(qū)塊數(shù)量的增加而增多;本文存儲方案的查詢時間略多,主要在于本文存儲方案中高冷區(qū)塊被部分節(jié)點存儲,對于不是區(qū)塊的存儲節(jié)點,需訪問存儲節(jié)點實現(xiàn)查詢,因此同傳統(tǒng)存儲方案相比,查詢時間略高;對于分片存儲,查詢高安全性區(qū)塊時,需通過查詢地址鏈找到存儲節(jié)點位置,整合完整的區(qū)塊數(shù)據(jù),因此其查詢時間明顯高于本文存儲方案和傳統(tǒng)存儲方案。

        4 結束語

        本文在區(qū)塊鏈原有結構和機制下,針對區(qū)塊的安全性和冷熱度,基于變色龍hash函數(shù),提出了基于變色龍hash的區(qū)塊鏈可擴展存儲方案。通過在Merkle tree中引入隨機數(shù),在不破壞原有區(qū)塊鏈結構和機制的情況下,實現(xiàn)區(qū)塊的部分節(jié)點存儲。在存儲過程中,存儲節(jié)點隨機選取,且只有監(jiān)督節(jié)點驗證通過后才能計算隨機數(shù)′,最終實現(xiàn)高冷區(qū)塊的部分節(jié)點存儲,保證高冷區(qū)塊部分節(jié)點存儲的安全性。仿真實驗表明,區(qū)塊的部分節(jié)點存儲能減少區(qū)塊鏈中整體的系統(tǒng)消耗,解決存儲壓力問題。本文方案可兼顧數(shù)據(jù)安全性,設定存儲比例閾值,在應用中具有更強的適用性。

        參考文獻:

        [1]張志威,王國仁,徐建良,等.區(qū)塊鏈的數(shù)據(jù)管理技術綜述[J].軟件學報,2020,31(9):29032925.(Zhang Zhiwei,Wang Guoren,Xu Jianliang,et al.Survey on data management in blockchain systems[J].Journal of Software,2020,31(9):2903-2925.)

        [2]Ayoade G,Karande V,Khan L,et al.Decentralized IoT data management using blockchain and trusted execution environment[C]//Proc of IEEE International Conference on Information Reuse and Integration.2018:1522.

        [3]Liu Bin,Yu Xiaoliang,Chen Shipin,et al.Blockchain based data integrity service framework for IoT data[C]//Proc of IEEE International Conference on Web Services.2017:468475.

        [4]賈大宇,信俊昌,王之瓊,等.區(qū)塊鏈的存儲容量可擴展模型[J].計算機科學與探索,2018,12(4):525535.(Jia Dayu,Xin Junchang,Wang Zhiqiong,et al.Storage capacity scalable model for blockchain[J].Journal of Frontiers of Computer Science and Technology,2018,12(4):525535.)

        [5]卿欣藝,陳玉玲,周正強,等.基于中國剩余定理的區(qū)塊鏈存儲擴展模型[J].計算機應用,2021,41(7):19771982.(Qing Xinyi,Chen Yuling,Zhou Zhengqiang,et al.Blockchain storage expansion model based on Chinese remainder theorem[J].Journal of Computer Applications,2021,41(7):19771982.)

        [6]江云超,何小衛(wèi),崔一舉.區(qū)塊鏈節(jié)點存儲優(yōu)化方案[J].應用科學學報,2020,38(1):119126.(Jiang Yunchao,He Xiaowei,Cui Yiju.Blockchain node storage optimization scheme[J].Journal of Applied Sciences,2020,38(1):119126.)

        [7]Raman R K,Varshney L R.Dynamic distributed storage for scaling blockchains[C]//Proc of IEEE International Symposium on Information Theory.2017:119.

        [8]趙羽龍,牛保寧,李鵬,等.區(qū)塊鏈增強型輕量級節(jié)點模型[J].計算機應用,2020,40(4):942946.(Zhao Yulong,Niu Baoning,Li Peng,et al.Blockchain enhanced lightweight node model[J].Journal of Computer Applications,2020,40(4):942946.)

        [9]賈大宇,信俊昌,王之瓊,等.存儲容量可擴展區(qū)塊鏈系統(tǒng)的高效查詢模型[J].軟件學報,2019,30(9):26552670.(Jia Dayu,Xin Junchang,Wang Zhiqiong,et al.ElasticQM:a query model for storage capacity scalable blockchain system[J].Journal of Software,2019,30(9):26552670.)

        [10]孫知信,張鑫,相峰,等.區(qū)塊鏈存儲可擴展性研究進展[J].軟件學報,2021,32(1):120.(Sun Zhixin,Zhangxin,Xiang Feng,et al.Survey of storage scalability on blockchain[J].Journal of Software,2021,32(1):120.)

        [11]馮超政,蔣溢,何軍,等.基于冷熱數(shù)據(jù)的MongoDB自動分片機制[J].計算機工程,2017,43(3):710,17.(Feng Chaozheng,Jiang Yi,He Jun,et al.Autosharding mechanism in MongoDB based on cold and hot data[J].Computer Engingeering,2017,43(3):710,17.)

        [12]李梁,吳剛,王國仁.面向數(shù)據(jù)特征的內(nèi)存跳表優(yōu)化技術[J].軟件學報,2020,31(3):663679.(Li Liang,Wu Gang,Wang Guoren.Inmemory skiplist optimization technologies based on data feature[J].Journal of Software,2020,31(3):663679.)

        [13]王芳,卜昊昊.科學數(shù)據(jù)管理政策發(fā)展比較研究[J].中國圖書館學報,2022,48(6):7796.(Wang Fang,Bu Haohao.A comparative study on policy development for scientific data management[J].Journal of Library Science in China,2022,48(6):7796.)

        [14]解玉琳.基于數(shù)據(jù)溫度的冷熱數(shù)據(jù)識別機制研究[D].杭州:浙江大學,2019.(Xie Yulin.Research on identification mechanism of hot and cold data based on data temperature[D].Hangzhou:Zhejiang University,2019.)

        [15]任艷麗,徐丹婷,張新鵬,等.可修改的區(qū)塊鏈方案[J].軟件學報,2020,31(12):39093922.(Ren Yanli,Xu Danting,Zhang Xinpeng,et al.Scheme of revisable blockchain[J].Journal of Software,2020,31(12):3909-3922.)

        [16]張仕,賴會霞,肖如良,等.開放環(huán)境多分布特性的局部敏感哈希檢索方法[J].軟件學報,2022,33(4):12001217.(Zhang Shi,Lai Huixia,Xiao Ruliang,et al.Open environmental localitysensitive hashing retrieval for multiple distributed characteristics[J].Journal of Software,2022,33(4):12001217.)

        [17]顧康,張紹華,李超.基于監(jiān)督者組的區(qū)塊鏈賬本修正方案[J].計算機應用研究,2023,40(8):22662273.(Gu Kang,Zhang Shaohua,Li Chao.Blockchain ledger amendment scheme based on supervisor group[J].Application Research of Computers,2023,40(8):22662273.)

        [18]袁勇,王飛躍.可編輯區(qū)塊鏈:模型、技術與方法[J].自動化學報,2020,46(5):831846.(Yuan Yong,Wang Feiyue.Editable blockchain:models,techniques and methods[J].Acta Automatica Sinica,2020,46(5):831846.)

        [19]李佩麗,徐海霞,馬添軍,等.可更改區(qū)塊鏈技術研究[J].密碼學報,2018,5(5):501509.(Li Peili,Xu Haixia,Ma Tianjun,et al.Research on faultcorrecting blockchain technology[J].Journal of Cryptologic Research,2018,5(5):501509.)

        [20]Krawczyk H,Rabin T.Chameleon signatures[C]//Proc of Network and Distributed System Security Symposium.2000.

        [21]魏松杰,呂偉龍,李莎莎.區(qū)塊鏈公鏈應用的典型安全問題綜述[J].軟件學報,2022,33(1):324-355.(Wei Songjie,Lyu Weilong,Li Shasha.Overview on typical security problems in public blockchain applications[J].Journal of Software,2022,33(1):324-355.)

        [22]Borel .Probabilities and life[M].Mineola,NY:Dover Publications,1962:23-87.

        [23]王海艷,伏彩航.基于HBase數(shù)據(jù)分類的壓縮策略選擇方法[J].通信學報,2016,37(4):12-22.(Wang Haiyan,F(xiàn)u Caihang.Compression strategies selection method based on classification of HBase data[J].Journal on Communications,2016,37(4):12-22.)

        [24]聶相田,范天雨,王博.水利工程建設市場監(jiān)管“雙隨機”抽檢均衡性方法[J].人民黃河,2019,41 (2):138142.(Nie Xiangtian,F(xiàn)an Tianyu,Wang Bo.Study on the “double random” sampling balance method for the supervision of water conservancy construction market[J].Yellow River,2019,41(2):138142.)

        [25]潘吉飛,黃德才.基于跳躍Hash和異步共識組的區(qū)塊鏈動態(tài)分片模型[J].計算機科學,2020,47(3):273280.(Pan Jifei,Huang Decai.Blockchain dynamic sharding model based on jump hash and asynchronous consensus group[J].Computer Science,2020,47(3):273280.)

        [26]谷利澤,鄭世慧,楊義先.現(xiàn)代密碼學教程[M].2版.北京:北京郵電大學出版社,2015:190207.(Gu Lize,Zheng Shihui,Yang Yixian.Modern cryptography tutorial[M].2nd ed.Beijing:Beijing University of Posts and Telecommunications Press,2015:190207.)

        [27]Koblitz N.Elliptic curve cryptosystems[J].Mathematics of Computation,1987,48(177):203209.

        猜你喜歡
        區(qū)塊鏈
        區(qū)塊鏈對互聯(lián)網(wǎng)金融發(fā)展的重塑與挑戰(zhàn)分析
        基于區(qū)塊鏈技術的海上散裝液體化學品運輸安全監(jiān)管方法
        水運管理(2016年11期)2017-01-07 13:25:48
        保險企業(yè)的區(qū)塊鏈技術應用方向選擇研究
        區(qū)塊鏈技術在金融領域的應用與前景研究
        中國市場(2016年32期)2016-12-06 11:21:13
        區(qū)塊鏈技術的應用價值分析
        商情(2016年40期)2016-11-28 11:24:12
        “區(qū)塊鏈”發(fā)展現(xiàn)狀評述及展望
        商(2016年34期)2016-11-24 14:46:00
        “區(qū)塊鏈”的茍且、詩和遠方
        基于區(qū)塊鏈技術的數(shù)字貨幣與傳統(tǒng)貨幣辨析
        互聯(lián)網(wǎng)金融新模式與中小企業(yè)融資關系研究
        智能合約與金融合約
        商(2016年6期)2016-04-20 17:50:36
        白色月光在线观看免费高清| 国产精品国产午夜免费看福利| 国内揄拍国内精品| 久久久久久AV无码成人| 亚洲精品中文字幕乱码| 久久精品中文字幕| 夜夜嗨av一区二区三区| 白色橄榄树在线免费观看| 久久久精品少妇—二区| 欧美丰满少妇xxxx性| 欧美尺寸又黑又粗又长| 在线看片国产免费不卡| 天堂麻豆精品在线观看| 狠狠色噜噜狠狠狠777米奇| 国产成人综合在线视频| 波多野结衣一区二区三区免费视频| 亚洲综合中文日韩字幕| 欧美成人精品a∨在线观看| 人禽杂交18禁网站免费| 人妻丰满熟妇av无码片| 色老汉免费网站免费视频| 中文字幕亚洲综合久久| 久久久精品人妻一区二区三区游戏| 国产精品人妻一区二区三区四| 亚洲熟妇20| 天堂a版一区二区av| 亚洲乱码中文在线观看| 国产国语熟妇视频在线观看| 99riav精品国产| 中文字幕34一区二区| 久久午夜福利电影| 色视频www在线播放国产人成| 国产一级淫片免费大片| 日本va中文字幕亚洲久伊人| 天天躁日日躁狠狠躁欧美老妇| 五月婷婷激情小说| 蜜桃视频网址在线观看| 含紧一点h边做边走动免费视频| 欧美做受视频播放| 少妇人妻出水中文字幕乱码| 亚洲av综合av一区二区三区|