国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于區(qū)塊鏈的數(shù)據(jù)完整性多方高效審計(jì)機(jī)制

2022-01-18 08:24周家順王娜杜學(xué)繪
關(guān)鍵詞:擁有者副本哈希

周家順,王娜,杜學(xué)繪

(信息工程大學(xué),河南 鄭州 450001)

1 引言

大數(shù)據(jù)技術(shù)高速發(fā)展,并深入人們的生活。政務(wù)大數(shù)據(jù)[1]、司法大數(shù)據(jù)[2]、醫(yī)療大數(shù)據(jù)[3]等大數(shù)據(jù)技術(shù)正在逐漸為社會(huì)的進(jìn)步提供有力的數(shù)據(jù)技術(shù)支撐。但是大數(shù)據(jù)具有與傳統(tǒng)數(shù)據(jù)不同的特點(diǎn),需要使用適合大數(shù)據(jù)特點(diǎn)的技術(shù)進(jìn)行處理。

大數(shù)據(jù)最顯著的特點(diǎn)就是數(shù)據(jù)量大,據(jù)Statista公司預(yù)測(cè)2025年的全球數(shù)據(jù)量將達(dá)到175 ZB。數(shù)據(jù)量的激增促使相應(yīng)的存儲(chǔ)技術(shù)的發(fā)展,本地存儲(chǔ)、分布式存儲(chǔ)、云存儲(chǔ)等存儲(chǔ)技術(shù)為大數(shù)據(jù)存儲(chǔ)提供了技術(shù)支撐。為保證大數(shù)據(jù)存儲(chǔ)的安全,需要進(jìn)行數(shù)據(jù)完整性驗(yàn)證[4]判斷數(shù)據(jù)是否被篡改或者損壞。

數(shù)據(jù)完整性驗(yàn)證技術(shù)一般通過(guò)挑戰(zhàn)應(yīng)答機(jī)制實(shí)現(xiàn)數(shù)據(jù)完整性的判斷。數(shù)據(jù)擁有者將數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)存儲(chǔ)系統(tǒng)中,在數(shù)據(jù)進(jìn)行存儲(chǔ)之前利用BLS簽名等技術(shù)實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù)的簽名,并生成證明元數(shù)據(jù)。數(shù)據(jù)擁有者從證明元數(shù)據(jù)中選取相應(yīng)的數(shù)據(jù)生成挑戰(zhàn),并將挑戰(zhàn)發(fā)送給數(shù)據(jù)存儲(chǔ)系統(tǒng)。數(shù)據(jù)存儲(chǔ)系統(tǒng)依據(jù)收到的挑戰(zhàn),利用存儲(chǔ)的數(shù)據(jù)生成相應(yīng)的數(shù)據(jù)完整性的證據(jù)。數(shù)據(jù)完整性審計(jì)機(jī)構(gòu)對(duì)數(shù)據(jù)存儲(chǔ)系統(tǒng)生成的證據(jù)進(jìn)行判斷,確定數(shù)據(jù)是否與原始數(shù)據(jù)一致。

對(duì)于大數(shù)據(jù)進(jìn)行數(shù)據(jù)完整性審計(jì)需要充分考慮大數(shù)據(jù)的特點(diǎn)。

1) 大數(shù)據(jù)數(shù)據(jù)量大的特點(diǎn)要求數(shù)據(jù)完整性驗(yàn)證技術(shù)能夠滿足審計(jì)的效率要求,實(shí)現(xiàn)數(shù)據(jù)完整性的高效判決。

2) 由于大數(shù)據(jù)的來(lái)源廣泛,大數(shù)據(jù)的數(shù)據(jù)類(lèi)型變得多樣,數(shù)據(jù)可以分為結(jié)構(gòu)化、半結(jié)構(gòu)化和非結(jié)構(gòu)化3種類(lèi)型[5]。例如,政務(wù)大數(shù)據(jù)中的數(shù)據(jù)類(lèi)型可以分為4類(lèi):業(yè)務(wù)數(shù)據(jù)、民意社情數(shù)據(jù)、環(huán)境數(shù)據(jù)和分散性公共數(shù)據(jù)[6]。大數(shù)據(jù)環(huán)境下的數(shù)據(jù)主要為非結(jié)構(gòu)化數(shù)據(jù),據(jù)IDC統(tǒng)計(jì)顯示,大數(shù)據(jù)中非結(jié)構(gòu)化數(shù)據(jù)占比80%,非結(jié)構(gòu)化數(shù)據(jù)完整性驗(yàn)證成為大數(shù)據(jù)完整性驗(yàn)證的關(guān)鍵。

3) 同時(shí),信息化時(shí)代,數(shù)據(jù)成為越來(lái)越重要的資源。通過(guò)共享大數(shù)據(jù)來(lái)打破數(shù)據(jù)孤島,成為信息企業(yè)面臨的重要挑戰(zhàn)。數(shù)據(jù)共享不僅需要實(shí)現(xiàn)數(shù)據(jù)交換,也要保證數(shù)據(jù)的真實(shí)性。例如,對(duì)于政務(wù)大數(shù)據(jù)、司法大數(shù)據(jù)和醫(yī)療大數(shù)據(jù)這些較為敏感的數(shù)據(jù),數(shù)據(jù)真實(shí)性的重要程度表現(xiàn)極為突出。

大數(shù)據(jù)的完整性驗(yàn)證不僅需要向數(shù)據(jù)擁有者提供數(shù)據(jù)未被篡改或者未被破壞的證明,對(duì)于共享數(shù)據(jù)的使用者同樣需要進(jìn)行證明。

中本聰發(fā)表文章Bitcoin: a peer to peer electronic cash system[7],標(biāo)志著區(qū)塊鏈技術(shù)的誕生。從此之后,區(qū)塊鏈技術(shù)以其去中心化,不易篡改等良好特性吸引大批學(xué)者研究。數(shù)據(jù)的完整性驗(yàn)證技術(shù)實(shí)際上是對(duì)于數(shù)據(jù)存儲(chǔ)者等多方信用的驗(yàn)證,將區(qū)塊鏈技術(shù)與數(shù)據(jù)完整性驗(yàn)證技術(shù)結(jié)合能夠發(fā)揮數(shù)據(jù)完整性驗(yàn)證體系更大的價(jià)值。

基于此,本文提出基于區(qū)塊鏈的數(shù)據(jù)完整性多方高效審計(jì)機(jī)制(MBE-ADI),解決大數(shù)據(jù)環(huán)境下數(shù)據(jù)完整性的審計(jì)問(wèn)題,主要貢獻(xiàn)如下。

1) 提出大數(shù)據(jù)環(huán)境中數(shù)據(jù)域的概念并構(gòu)建基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu),實(shí)現(xiàn)對(duì)非結(jié)構(gòu)化數(shù)據(jù)的管理,借助此結(jié)構(gòu)實(shí)現(xiàn)證明元數(shù)據(jù)的生成,解決大數(shù)據(jù)環(huán)境下大量非結(jié)構(gòu)化數(shù)據(jù)同時(shí)驗(yàn)證的問(wèn)題。

2) 設(shè)計(jì)基于BLS簽名多副本確定性驗(yàn)證方法,實(shí)現(xiàn)數(shù)據(jù)完整性的多副本同時(shí)確定性驗(yàn)證,滿足大數(shù)據(jù)環(huán)境下數(shù)據(jù)完整性高效驗(yàn)證的需求。

3) 設(shè)計(jì)基于聯(lián)盟鏈的雙驗(yàn)證審計(jì)架構(gòu),相應(yīng)智能合約以及驗(yàn)證過(guò)程元數(shù)據(jù)上傳方法,實(shí)現(xiàn)數(shù)據(jù)完整性去中心化自動(dòng)審計(jì)以及審計(jì)歷史可信追溯,同時(shí)為數(shù)據(jù)擁有者和數(shù)據(jù)使用者提供數(shù)據(jù)完整性驗(yàn)證服務(wù),保證數(shù)據(jù)進(jìn)行共享之前的歷史一致性,提高數(shù)據(jù)的可信度。

4) 基于阿里云服務(wù)器進(jìn)行MBE-ADI系統(tǒng)部署并進(jìn)行相關(guān)測(cè)試,驗(yàn)證系統(tǒng)的可行性以及數(shù)據(jù)完整性審計(jì)的高效性。

2 研究現(xiàn)狀

Deswarte等[8]提出基于MAC碼的完整性驗(yàn)證機(jī)制,該機(jī)制將MAC值作為認(rèn)證元數(shù)據(jù)實(shí)現(xiàn)數(shù)據(jù)的完整性驗(yàn)證,但存在通信開(kāi)銷(xiāo)大且容易泄露隱私的問(wèn)題。Ateniese等[9]提出數(shù)據(jù)持有性證明(PDP,provable data possession)機(jī)制,將數(shù)據(jù)分塊并使用RSA簽名機(jī)制進(jìn)行抽樣檢測(cè)數(shù)據(jù)塊的完整性,提高了檢測(cè)效率,減少了通信開(kāi)銷(xiāo)。Wang等[10]提出支持全同態(tài)操作的PDP機(jī)制,該機(jī)制使用Merkle樹(shù)驗(yàn)證數(shù)據(jù)塊位置的正確性,采用BLS簽名對(duì)數(shù)據(jù)塊的完整性進(jìn)行驗(yàn)證。謝四江等[11]提出使用多分支路徑樹(shù)MBT進(jìn)行完整性驗(yàn)證的機(jī)制,該機(jī)制增加了節(jié)點(diǎn)的出度,相較于基于Merkle樹(shù)的完整性驗(yàn)證機(jī)制能夠驗(yàn)證更大規(guī)模的數(shù)據(jù),且利用MBT的結(jié)構(gòu)能夠較好地實(shí)現(xiàn)數(shù)據(jù)塊替換等動(dòng)態(tài)操作。

多副本機(jī)制能夠提高數(shù)據(jù)的抗風(fēng)險(xiǎn)能力,即時(shí)使用多副本對(duì)損壞數(shù)據(jù)進(jìn)行修復(fù),對(duì)于重要的數(shù)據(jù),多副本機(jī)制重要性更為突出。劉洪宇等[12]提出支持動(dòng)態(tài)操作的多副本驗(yàn)證機(jī)制,該機(jī)制對(duì)Merkle樹(shù)結(jié)構(gòu)進(jìn)行改造,提出基于等級(jí)的Merkle樹(shù),實(shí)現(xiàn)對(duì)動(dòng)態(tài)驗(yàn)證的支持。該機(jī)制通過(guò)對(duì)多個(gè)副本進(jìn)行關(guān)聯(lián),實(shí)現(xiàn)多副本的同步更新。Curtmola等[13]通過(guò)隨機(jī)掩碼技術(shù)實(shí)現(xiàn)多副本數(shù)據(jù)的生成,為任意數(shù)量的副本使用恒定數(shù)量的元數(shù)據(jù),可以動(dòng)態(tài)創(chuàng)建新副本而無(wú)須再次預(yù)處理數(shù)據(jù),且多副本完整性驗(yàn)證的時(shí)間和單副本數(shù)據(jù)的驗(yàn)證時(shí)間接近。但是多副本機(jī)制存在生成的隨機(jī)數(shù)等元數(shù)據(jù)過(guò)多、處理大數(shù)據(jù)量的文件時(shí)會(huì)出現(xiàn)元數(shù)據(jù)管理負(fù)擔(dān)過(guò)重的問(wèn)題,不適合數(shù)據(jù)量大且包含大量非結(jié)構(gòu)化數(shù)據(jù)的大數(shù)據(jù)環(huán)境。

以上的數(shù)據(jù)完整性驗(yàn)證的審計(jì)主要使用可信第三方機(jī)構(gòu),但可信第三方機(jī)構(gòu)尋找困難,容易發(fā)生第三方攻擊的問(wèn)題。應(yīng)用區(qū)塊鏈技術(shù)進(jìn)行數(shù)據(jù)的完整性驗(yàn)證成為新的選擇[14-21]。

Liu等[18]采用區(qū)塊鏈智能合約取代第三方審計(jì)機(jī)構(gòu),并認(rèn)為在共享數(shù)據(jù)之前,數(shù)據(jù)使用者應(yīng)該對(duì)數(shù)據(jù)的完整性進(jìn)行驗(yàn)證。為了實(shí)現(xiàn)公平的完整性審計(jì),Zhao等[19]考慮使用區(qū)塊鏈技術(shù)進(jìn)行數(shù)據(jù)完整性的驗(yàn)證。數(shù)據(jù)擁有者將數(shù)據(jù)塊的簽名上傳到區(qū)塊鏈賬本,將加密后的數(shù)據(jù)上傳到云上,驗(yàn)證的時(shí)候?qū)?shù)據(jù)進(jìn)行下載,利用區(qū)塊鏈賬本記錄的數(shù)字簽名對(duì)數(shù)據(jù)的完整性進(jìn)行驗(yàn)證。Wei等[20]通過(guò)虛擬代理機(jī)制實(shí)現(xiàn)基于區(qū)塊鏈的數(shù)據(jù)完整性驗(yàn)證,并結(jié)合基于角色的訪問(wèn)控制技術(shù)對(duì)存儲(chǔ)的數(shù)據(jù)進(jìn)行管控。魏艷等[21]提出基于以太坊[22]的數(shù)據(jù)完整性驗(yàn)證機(jī)制,該機(jī)制在智能合約中存儲(chǔ)數(shù)據(jù)的哈希值以及數(shù)據(jù)簽名等信息,在進(jìn)行數(shù)據(jù)完整性驗(yàn)證的時(shí)候,將現(xiàn)有數(shù)據(jù)的哈希與智能合約中存儲(chǔ)的哈希進(jìn)行對(duì)比實(shí)現(xiàn)驗(yàn)證。目前基于區(qū)塊鏈的數(shù)據(jù)完整性驗(yàn)證機(jī)制沒(méi)有考慮數(shù)據(jù)使用者獲取共享數(shù)據(jù)真實(shí)性的需求,僅對(duì)數(shù)據(jù)擁有者提供服務(wù)。

目前有學(xué)者注意到對(duì)于大數(shù)據(jù)進(jìn)行完整性驗(yàn)證的問(wèn)題。Chang等[23]對(duì)外包大數(shù)據(jù)完整性驗(yàn)證技術(shù)進(jìn)行了總結(jié),但與譚霜等[4]提出的技術(shù)基本一致,未體現(xiàn)大數(shù)據(jù)完整性驗(yàn)證的特點(diǎn)。Chen等[24]實(shí)現(xiàn)數(shù)據(jù)塊的細(xì)粒度更新,采用平衡更新樹(shù)作為ADS(authenticated data structure)來(lái)減少動(dòng)態(tài)更新后的更新驗(yàn)證,從而減少計(jì)算和通信資源。Nasonov等[25]提出基于區(qū)塊鏈實(shí)現(xiàn)數(shù)據(jù)交易完整性的分布式大數(shù)據(jù)平臺(tái),重點(diǎn)設(shè)計(jì)完整性管理器模塊,確保數(shù)據(jù)的真實(shí)性與一致性。Lebdaoui等[26]考慮到大數(shù)據(jù)來(lái)源廣泛以及大數(shù)據(jù)數(shù)據(jù)量大的特點(diǎn),并提出數(shù)據(jù)輸入驗(yàn)證模型實(shí)現(xiàn)對(duì)數(shù)據(jù)來(lái)源的驗(yàn)證,提出連續(xù)完整性監(jiān)測(cè)模型實(shí)現(xiàn)數(shù)據(jù)在使用過(guò)程中的完整性驗(yàn)證,但僅提出了模型的框架。

綜上分析可得,目前仍需要對(duì)適合大數(shù)據(jù)環(huán)境的數(shù)據(jù)完整性驗(yàn)證機(jī)制進(jìn)行研究,對(duì)大數(shù)據(jù)環(huán)境下數(shù)據(jù)量大、包含大量非結(jié)構(gòu)化數(shù)據(jù)和傾向共享等特點(diǎn)進(jìn)行充分考慮。

3 基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)

由于大數(shù)據(jù)環(huán)境中的數(shù)據(jù)來(lái)源廣泛,且大多為結(jié)構(gòu)不一的非結(jié)構(gòu)化數(shù)據(jù)(例如,數(shù)據(jù)擁有者獲得的一組數(shù)據(jù)中可能同時(shí)包含圖像、視頻、文檔等),實(shí)現(xiàn)對(duì)這些非結(jié)構(gòu)化數(shù)據(jù)的有效組織是進(jìn)行高效驗(yàn)證的前提。本節(jié)針對(duì)大數(shù)據(jù)環(huán)境數(shù)據(jù)中的特點(diǎn),為實(shí)現(xiàn)對(duì)數(shù)據(jù)的有效管理,并在此基礎(chǔ)上生成數(shù)據(jù)完整性審計(jì)的證明元數(shù)據(jù),提出基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)。在數(shù)據(jù)域?qū)用?,使用Merkle DAG結(jié)構(gòu)構(gòu)造非結(jié)構(gòu)化數(shù)據(jù)間的組織關(guān)系;在數(shù)據(jù)塊層面,對(duì)單個(gè)數(shù)據(jù)的數(shù)據(jù)分塊構(gòu)造多分支平衡Merkle樹(shù)。

本節(jié)提出數(shù)據(jù)域的概念,借助此概念實(shí)現(xiàn)對(duì)非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行組織。這里的域是指對(duì)一類(lèi)關(guān)聯(lián)的數(shù)據(jù)或者子數(shù)據(jù)域的包含。對(duì)于一批需要進(jìn)行存儲(chǔ)的數(shù)據(jù),數(shù)據(jù)擁有者根據(jù)數(shù)據(jù)的內(nèi)在聯(lián)系,(如數(shù)據(jù)的來(lái)源、獲取日期、類(lèi)別等)關(guān)系,對(duì)數(shù)據(jù)進(jìn)行劃分,將一類(lèi)數(shù)據(jù)歸置于一個(gè)域中。從而獲得一個(gè)包含所有數(shù)據(jù)和子數(shù)據(jù)域的最大域。

在該存儲(chǔ)結(jié)構(gòu)中使用Merkle DAG。在Merkle樹(shù)的基礎(chǔ)上構(gòu)建Merkle DAG,打破了Merkle樹(shù)的子節(jié)點(diǎn)個(gè)數(shù)的限制,無(wú)須進(jìn)行數(shù)據(jù)的平衡操作,能夠根據(jù)實(shí)際的需要構(gòu)建更為靈活的數(shù)據(jù)結(jié)構(gòu)。Merkle DAG保留Merkle樹(shù)循環(huán)計(jì)算節(jié)點(diǎn)哈希獲得Merkle Root的特點(diǎn),父節(jié)點(diǎn)的哈希值由子節(jié)點(diǎn)的哈希值決定,同時(shí)父節(jié)點(diǎn)包含指向子節(jié)點(diǎn)的信息。在IPFS[27]中將Merkle DAG作為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),現(xiàn)實(shí)分布式文件存儲(chǔ)網(wǎng)絡(luò)。

構(gòu)建基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)的過(guò)程如下:

1) 根據(jù)非結(jié)構(gòu)化數(shù)據(jù)的包含與并列關(guān)系,構(gòu)建包含所有數(shù)據(jù)的Merkle DAG文件結(jié)構(gòu);

2) 對(duì)域內(nèi)的每條數(shù)據(jù)構(gòu)建多分支平衡Merkle樹(shù)結(jié)構(gòu),獲取Merkle DAG節(jié)點(diǎn)信息中的nodeid。

3.1 構(gòu)建基于數(shù)據(jù)域的Merkle DAG文件結(jié)構(gòu)

針對(duì)非結(jié)構(gòu)化數(shù)據(jù)構(gòu)建數(shù)據(jù)域,相關(guān)聯(lián)的數(shù)據(jù)放在一個(gè)域內(nèi),數(shù)據(jù)域中包含子數(shù)據(jù)域,各級(jí)數(shù)據(jù)域表示數(shù)據(jù)不同的關(guān)聯(lián)程度,域中同時(shí)存放相關(guān)聯(lián)的多條數(shù)據(jù),并規(guī)定域內(nèi)至少包含兩個(gè)數(shù)據(jù)文件。如圖1所示,數(shù)據(jù)域?yàn)?{A,A1,A2}。A域包含 {A1,A2,d7,d8,d9}。A1域包含 {d1,d2}。A2域包含 {d3,d4,d5,d6}。

圖1 數(shù)據(jù)域結(jié)構(gòu)Figure 1 Data field structure

基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)包含域節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)兩種節(jié)點(diǎn)。為每個(gè)域構(gòu)建域節(jié)點(diǎn)標(biāo)識(shí)該域,域節(jié)點(diǎn)如圖2所示, nodeid為該域節(jié)點(diǎn)的唯一標(biāo)識(shí)信息,能夠使用 nodeid區(qū)分節(jié)點(diǎn);Lr為右指針,指向同級(jí)域中的其他節(jié)點(diǎn);{Id1, Id2,… ,Idi}為子指針,指向數(shù)據(jù)節(jié)點(diǎn)或者子數(shù)據(jù)域節(jié)點(diǎn)。

圖2 基于數(shù)據(jù)域的Merkle DAG結(jié)構(gòu)域節(jié)點(diǎn)信息Figure 2 Domain-based Merkle DAG structure domain node information

在基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)中,每個(gè)非結(jié)構(gòu)化數(shù)據(jù)由一個(gè)數(shù)據(jù)節(jié)點(diǎn)標(biāo)識(shí),數(shù)據(jù)節(jié)點(diǎn)如圖3所示, nodeid為該數(shù)據(jù)節(jié)點(diǎn)的唯一標(biāo)識(shí)信息,能夠使用 nodeid區(qū)分?jǐn)?shù)據(jù)節(jié)點(diǎn);Lr為右指針,指向同級(jí)域中的數(shù)據(jù)節(jié)點(diǎn)。對(duì)圖1的數(shù)據(jù)域可以構(gòu)建圖4所示的Merkle DAG文件結(jié)構(gòu)。

圖3 基于數(shù)據(jù)域的Merkle DAG結(jié)構(gòu)化數(shù)據(jù)節(jié)點(diǎn)信息Figure 3 Domain-based Merkle DAG structure data node information

圖4 基于數(shù)據(jù)域的Merkle DAG文件結(jié)構(gòu)Figure 4 Merkle DAG file structure based on data domain

3.2 獲取Merkle DAG節(jié)點(diǎn) nodeid信息

構(gòu)建基于數(shù)據(jù)域的Merkle DAG文件結(jié)構(gòu)之后,需要獲取各個(gè)域節(jié)點(diǎn)或者數(shù)據(jù)節(jié)點(diǎn)中的nodeid。本文通過(guò)對(duì)非結(jié)構(gòu)化數(shù)據(jù)構(gòu)建多分支Merkle樹(shù)結(jié)構(gòu)獲取標(biāo)識(shí)不同節(jié)點(diǎn)的 nodeid。設(shè)非葉子節(jié)點(diǎn)最大的子節(jié)點(diǎn)的個(gè)數(shù)為Nmax;數(shù)據(jù)塊分割大小恒定為D。

構(gòu)建多分支Merkle樹(shù)結(jié)構(gòu)流程如下:

1) 數(shù)據(jù)分片。依據(jù)數(shù)據(jù)塊的分片大小對(duì)數(shù)據(jù)文件進(jìn)行分片,分片之后剩余不足分片大小的數(shù)據(jù)充當(dāng)最后一個(gè)數(shù)據(jù)塊。設(shè)將文件Df分成了n塊,則Df可以表示為Df= {m1,m2,… ,mn}。

2) 計(jì)算多分支平衡Merkle樹(shù)第一層節(jié)點(diǎn)哈希。對(duì)數(shù)據(jù)塊 {m1,m2,…,mn}分別計(jì)算哈希,獲得多分支平衡Merkle樹(shù)第一層(i為1)哈希{h(m1),h(m2),…,h(mn)}。

3) 對(duì)哈希節(jié)點(diǎn)分組。依據(jù)Nmax對(duì)平衡Merkle樹(shù)的第i層哈希層進(jìn)行分組,每組的個(gè)數(shù)為Nmax。如果最后一組的個(gè)數(shù)不足Nmax,則將剩余的數(shù)據(jù)哈希歸為一組。

4) 計(jì)算i+1層哈希。對(duì)各組進(jìn)行i+1層哈希節(jié)點(diǎn)的計(jì)算:hh=h(h1||h2||… ||hNmax),hh表示i+1層節(jié)點(diǎn),{h1,h2,…,hNmax}表示i層某組節(jié)點(diǎn),各組獲得的哈希節(jié)點(diǎn)組成平衡Merkle樹(shù)第i+1層哈希節(jié)點(diǎn)。

5) 循環(huán)計(jì)算獲得新的哈希層。對(duì)步驟3)和步驟4)進(jìn)行循環(huán),直到某層哈希節(jié)點(diǎn)的個(gè)數(shù)為1,將該哈希節(jié)點(diǎn)作為該條數(shù)據(jù)的Merkle Root,計(jì)為nodedi。

Nmax取3,數(shù)據(jù)d1可以構(gòu)建如圖5所示的多分支平衡Merkle樹(shù)結(jié)構(gòu)。該結(jié)構(gòu)能夠滿足大數(shù)據(jù)量的表示。設(shè)非葉子節(jié)點(diǎn)的最大子節(jié)點(diǎn)的個(gè)數(shù)為Nmax,數(shù)據(jù)塊分割大小為D,設(shè)哈希層數(shù)為k,則該結(jié)構(gòu)可以表示的數(shù)據(jù)量為Nmaxk-1?D。當(dāng)Nmax取27,D取24 MB,k取4,則表示的數(shù)據(jù)量為461 GB。

圖5 數(shù)據(jù)d1的多分支平衡Merkle樹(shù)結(jié)構(gòu)Figure 5 Multi-branch balanced Merkle tree structure of data 1d

獲得數(shù)據(jù)nodedi之后,利用域中的各個(gè)數(shù)據(jù)節(jié)點(diǎn)的 nodeid計(jì)算數(shù)據(jù)域節(jié)點(diǎn)的 nodeid。例如,nodeA1表示為h(noded1||noded2)。獲得域節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)的 nodeid信息之后,便可獲得完整的基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)。完整的基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)如圖6所示。

圖6 完整的基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)Figure 6 Integrate hybrid Merkle DAG structure based on data domain

當(dāng)數(shù)據(jù)域中的非結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)量小于構(gòu)建多分支Merkle樹(shù)的分片大小時(shí),非結(jié)構(gòu)化數(shù)據(jù)不經(jīng)過(guò)分片直接計(jì)算數(shù)據(jù)的哈希, nodeid=h(d)。圖7表示非結(jié)構(gòu)化數(shù)據(jù)較小時(shí),基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu),其構(gòu)造簡(jiǎn)單,能夠?qū)?shù)據(jù)個(gè)數(shù)多但數(shù)據(jù)量小的非結(jié)構(gòu)化數(shù)據(jù)進(jìn)行有效組織,并有利于在此基礎(chǔ)上生成完整性審計(jì)的證明元數(shù)據(jù)。

圖7 數(shù)據(jù)較小時(shí),基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)Figure 7 Hybrid Merkle DAG structure based on data domain for small data

4 方案設(shè)計(jì)

4.1 MBE-ADI系統(tǒng)

本文考慮為某類(lèi)數(shù)據(jù)相關(guān)的各方建立聯(lián)盟鏈系統(tǒng)。數(shù)據(jù)擁有者、數(shù)據(jù)使用者與數(shù)據(jù)存儲(chǔ)系統(tǒng)均會(huì)加入?yún)^(qū)塊鏈系統(tǒng)并且成為區(qū)塊鏈系統(tǒng)中的節(jié)點(diǎn)。基于聯(lián)盟鏈的雙驗(yàn)證審計(jì)架構(gòu)如圖8所示,DO表示數(shù)據(jù)擁有者,DU表示數(shù)據(jù)使用者,SP表示數(shù)據(jù)存儲(chǔ)系統(tǒng)。

圖8 基于聯(lián)盟鏈的雙驗(yàn)證審計(jì)架構(gòu)Figure 8 Dual verification audit architecture based on consortium blockchain

各個(gè)參與方在系統(tǒng)中包含鏈下基礎(chǔ)設(shè)施部分和鏈上區(qū)塊鏈節(jié)點(diǎn)部分。鏈下基礎(chǔ)設(shè)施包含存儲(chǔ)設(shè)施和計(jì)算設(shè)施,完成審計(jì)流程主要的存儲(chǔ)和計(jì)算任務(wù)。系統(tǒng)中通過(guò)區(qū)塊鏈網(wǎng)絡(luò)連接參與的各個(gè)節(jié)點(diǎn),完整性審計(jì)的流程通過(guò)區(qū)塊鏈的元數(shù)據(jù)上傳合約、完整性判決合約和審計(jì)歷史索引合約實(shí)現(xiàn),審計(jì)過(guò)程的關(guān)鍵數(shù)據(jù)通過(guò)區(qū)塊鏈賬本進(jìn)行記錄。

在本文方案中,區(qū)塊鏈部分通過(guò)Hyperledger Fabric平臺(tái)實(shí)現(xiàn)。Hyperledger Fabric是由Linux基金會(huì)牽頭研發(fā)的面向企業(yè)應(yīng)用的聯(lián)盟鏈平臺(tái)[28]。Hyperledger Fabric中的賬本分為世界狀態(tài)和區(qū)塊鏈兩部分。世界狀態(tài)以鍵值對(duì)的方式存儲(chǔ)賬本狀態(tài)的當(dāng)前值,相較于遍歷整個(gè)交易日志能夠獲得更快的訪問(wèn)速度。區(qū)塊鏈?zhǔn)墙灰兹罩?,它記錄了區(qū)塊鏈賬本的完整數(shù)據(jù),世界狀態(tài)的改變由這些交易日志決定。當(dāng)鏈上數(shù)據(jù)的鍵唯一的時(shí)候,世界狀態(tài)的值就不會(huì)被改變,能夠穩(wěn)定記錄數(shù)據(jù)的鍵值對(duì)。

對(duì)某個(gè)數(shù)據(jù)域的完整性審計(jì)的所有歷史記錄會(huì)在區(qū)塊鏈賬本上保存,通過(guò)檢索并審查審計(jì)歷史實(shí)現(xiàn)對(duì)數(shù)據(jù)域歷史可信度的增強(qiáng)。為保證對(duì)數(shù)據(jù)完整性審計(jì)歷史檢索的速度,本文對(duì)狀態(tài)數(shù)據(jù)庫(kù)進(jìn)行檢索。為實(shí)現(xiàn)多類(lèi)型索引查詢(xún)操作,狀態(tài)數(shù)據(jù)庫(kù)采用CouchDB數(shù)據(jù)庫(kù)。各個(gè)流程相關(guān)信息以JSON格式進(jìn)行存儲(chǔ),存儲(chǔ)的數(shù)據(jù)可以表示為:

ObjectType標(biāo)識(shí)數(shù)據(jù)類(lèi)型,分為data_up、challenge、prove、audit,分別代表上鏈數(shù)據(jù)、挑戰(zhàn)數(shù)據(jù)、證明數(shù)據(jù)、審計(jì)數(shù)據(jù)。時(shí)間戳Timestamp作為該條狀態(tài)數(shù)據(jù)的唯一標(biāo)識(shí),由區(qū)塊鏈智能合約自動(dòng)生成。Node_block為需要進(jìn)行數(shù)據(jù)完整性審計(jì)的數(shù)據(jù)域df節(jié)點(diǎn)標(biāo)識(shí),對(duì)于審計(jì)數(shù)據(jù)域,構(gòu)建基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu),獲得Node_block= nodedf。data1和data2為其他信息,由不同的數(shù)據(jù)類(lèi)型決定。

本文的完整性驗(yàn)證方案通過(guò)BLS簽名實(shí)現(xiàn)。BLS[29]為數(shù)字簽名算法,其簽名長(zhǎng)度較RSA和DSA簽名方案更短。

DH四元組定義:G為階為素?cái)?shù)q的循環(huán)群,D=(g1,g2,u1,u2)?G4為四元組,其中g(shù)1、g2為G的生成元,。判斷α=β是否成立,如果成立,則稱(chēng)D為DH四元組。

設(shè)G為間隙群,g為G的生成元,H:{0,1}*→G為全域哈希函數(shù)。隨機(jī)整數(shù)x為私鑰,y=gx為公鑰。M?{ 0,1}*為待簽名的消息,h=H(M),則σ=h x?G為消息M的簽名。如果四元組(g,h,y,σ)為DH四元組,則簽名判斷為T(mén)rue,否則簽名判斷為False。

4.2 基于BLS簽名多副本確定性驗(yàn)證方法

4.2.1初始化階段

對(duì)于數(shù)據(jù)的加密,本文選用AES對(duì)稱(chēng)加密。該階段生成數(shù)據(jù)加密所需的AES加密密鑰以及BLS簽名所需的公鑰和私鑰。該階段在每個(gè)數(shù)據(jù)擁有者鏈下計(jì)算設(shè)施中分別進(jìn)行。

設(shè)需要產(chǎn)生μ個(gè)數(shù)據(jù)域副本,生成μ個(gè)AES加密密鑰 {K1,K2,… ,Kμ},密鑰長(zhǎng)度為kbit。g為生成元,隨機(jī)選擇令x為數(shù)據(jù)擁有者DO的BLS簽名私鑰,數(shù)據(jù)擁有者DO的BLS簽名公鑰y滿足y=gx。啟動(dòng)區(qū)塊鏈網(wǎng)絡(luò),在區(qū)塊鏈各個(gè)節(jié)點(diǎn)部署智能合約。

4.2.2證明元數(shù)據(jù)生成階段

數(shù)據(jù)擁有者使用AES加密密鑰 {K1,K2,…,Kμ}分別對(duì)數(shù)據(jù)域df中每個(gè)數(shù)據(jù)進(jìn)行加密,獲得μ個(gè)數(shù)據(jù)域副本 {df1,df2,… ,dfμ}。為實(shí)現(xiàn)對(duì)多個(gè)副本完整性的同時(shí)驗(yàn)證,對(duì)多副本拼接獲得復(fù)合數(shù)據(jù)域DF,對(duì)DF進(jìn)行數(shù)據(jù)完整性驗(yàn)證實(shí)現(xiàn)對(duì)多副本的同時(shí)驗(yàn)證。獲得數(shù)據(jù)域證明元數(shù)據(jù)流程如下。

1) 獲取復(fù)合數(shù)據(jù)域DF。獲取復(fù)合數(shù)據(jù)域需要對(duì)數(shù)據(jù)域中的數(shù)據(jù)進(jìn)行逐個(gè)復(fù)合,以實(shí)現(xiàn)對(duì)多副本數(shù)據(jù)完整性的同時(shí)驗(yàn)證。設(shè)原始數(shù)據(jù)域中的某個(gè)數(shù)據(jù)為d,數(shù)據(jù)域副本的個(gè)數(shù)為3,則數(shù)據(jù)d有3個(gè)數(shù)據(jù)副本 {d1,d2,d3},數(shù)據(jù)副本被劃分成n個(gè)數(shù)據(jù) 塊,表 示為j? (1,2,3)。數(shù)據(jù)擁有者確定生成證明元數(shù)據(jù)數(shù)量為k,并使用偽隨機(jī)數(shù)發(fā)生器生成k個(gè)隨機(jī)序列:L= {l1,l2,…,lk},并為每個(gè)隨機(jī)序列生成一個(gè)隨機(jī)序列拼接策略S= {s1,s2,… ,sk}。設(shè)隨機(jī)序列l(wèi)i對(duì)應(yīng)的拼接策略是si:{md1||li||md2||md3},其中md1、md2、md3分別表示數(shù)據(jù)副本d1、d2、d3的數(shù)據(jù)塊,不同的拼接策略規(guī)定隨機(jī)序列插入的位置不同。則數(shù)據(jù)d的復(fù)合數(shù)據(jù)D可以表示為為復(fù)合數(shù)據(jù)D的各個(gè)數(shù)據(jù)塊的集合。逐個(gè)獲得數(shù)據(jù)域df中非結(jié)構(gòu)化數(shù)據(jù)的復(fù)合數(shù)據(jù)。

2) 利用獲得的復(fù)合數(shù)據(jù)獲得df的復(fù)合數(shù)據(jù)域DF,并構(gòu)建基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu),獲得復(fù)合數(shù)據(jù)域DF節(jié)點(diǎn)信息 nodeDF。圖9為獲取 nodeDF示意。

圖9 獲取證明元數(shù)據(jù)Figure 9 Obtain proof metadata

3) 計(jì)算h=H(nodeDF),使用私鑰x對(duì)h進(jìn)行BLS簽名,σi=hx,則數(shù)據(jù)域df的證明元數(shù)據(jù)可以表示為 {nodedf,li,si,σi,y}。

4.2.3數(shù)據(jù)副本存儲(chǔ)階段

數(shù)據(jù)存儲(chǔ)系統(tǒng)通過(guò)安全通道接收數(shù)據(jù)擁有者需要存儲(chǔ)的數(shù)據(jù)域副本 {df1,df2,… ,dfμ},并通過(guò)簽名機(jī)制生成數(shù)據(jù)存儲(chǔ)憑證storage_credentials。

在該階段,數(shù)據(jù)擁有者上傳上鏈數(shù)據(jù),docType取data_up,data1取數(shù)據(jù)名稱(chēng)data_name,data2取數(shù)據(jù)存儲(chǔ)憑證storage_credentials。

4.2.4挑戰(zhàn)階段

在該階段,數(shù)據(jù)擁有者確定進(jìn)行挑戰(zhàn)的數(shù)據(jù)域df,選取df對(duì)應(yīng)的證明元數(shù)據(jù)為挑戰(zhàn)數(shù)據(jù){nodedf,l i,si,σi,y},docType取challenge,data1取挑戰(zhàn)數(shù)據(jù),data2取數(shù)據(jù)存儲(chǔ)憑證storage_credentials。

4.2.5證據(jù)生成階段

數(shù)據(jù)存儲(chǔ)系統(tǒng)作為區(qū)塊鏈節(jié)點(diǎn),在線監(jiān)聽(tīng)數(shù)據(jù)擁有者對(duì)自己的挑戰(zhàn),獲取挑戰(zhàn)元數(shù)據(jù){nodedf,l i,si,σi,y},依據(jù) nodedf,從存儲(chǔ)數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)域的副本 {df1,df2,…, dfμ},依據(jù)隨機(jī)序列l(wèi)i和拼接策略si獲得復(fù)合數(shù)據(jù)域DF′,對(duì)復(fù)合數(shù)據(jù)域DF構(gòu)建基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)獲得證據(jù)Ki=H(nodeDF')。

在該階段,存儲(chǔ)系統(tǒng)上傳證明數(shù)據(jù),docType取prove,data1取證據(jù)Ki,data2取對(duì)應(yīng)的挑戰(zhàn)時(shí)間戳challenge_timestamp。

4.2.6完整性判決階段

完整性判決合約獲得挑戰(zhàn)元數(shù)據(jù){nodedf,li,si,σi,y}和證據(jù)Ki,并判斷(g,K i,y,σi)是否為DH四元組,如果是,則判斷數(shù)據(jù)完整,audit_results=True;如果不是,則判斷數(shù)據(jù)不完整,audit_results=False。

在該階段,數(shù)據(jù)完整性判決合約上傳審計(jì)數(shù)據(jù),docType取audit,data1取審計(jì)結(jié)果audit_results,data2取對(duì)應(yīng)的證據(jù)時(shí)間戳prove_ timestamp。

4.3 數(shù)據(jù)完整性審計(jì)歷史可信追溯

為實(shí)現(xiàn)對(duì)審計(jì)歷史的高效檢索,創(chuàng)建索引文件并與本文使用的智能合約一起安裝到區(qū)塊鏈系統(tǒng)節(jié)點(diǎn)。索引文件內(nèi)容如下:

上述索引文件創(chuàng)建了兩個(gè)索引,索引1依據(jù)Node_block進(jìn)行索引,能夠索引與某個(gè)數(shù)據(jù)域相關(guān)的所有信息,包括上鏈數(shù)據(jù)、挑戰(zhàn)數(shù)據(jù)、證明數(shù)據(jù)、審計(jì)數(shù)據(jù);索引2依據(jù)docType和Node_block進(jìn)行索引,能夠分別索引某個(gè)數(shù)據(jù)域的上鏈數(shù)據(jù)、挑戰(zhàn)數(shù)據(jù)、證明數(shù)據(jù)、審計(jì)數(shù)據(jù)信息。

5 方案分析

5.1 安全性分析

5.1.1驗(yàn)證流程安全性

完整性驗(yàn)證流程概括為數(shù)據(jù)副本生成、證明元數(shù)據(jù)生成、證據(jù)生成、證據(jù)審計(jì)4個(gè)階段。非結(jié)構(gòu)化數(shù)據(jù)通過(guò)基于數(shù)據(jù)域的Merkle DAG文件結(jié)構(gòu)進(jìn)行組織,節(jié)點(diǎn)信息中的 nodedf保證節(jié)點(diǎn)的唯一性,節(jié)點(diǎn)信息中指針信息保證Merkle DAG文件結(jié)構(gòu)確定,數(shù)據(jù)在數(shù)據(jù)存儲(chǔ)系統(tǒng)SP中以確定的方式進(jìn)行存儲(chǔ)。副本生成機(jī)制保證數(shù)據(jù)損壞能夠即時(shí)修復(fù)。數(shù)據(jù)副本生成階段,通過(guò)設(shè)置μ個(gè)不同的AES密鑰 {K1,K2,… ,Kμ}對(duì)數(shù)據(jù)加密實(shí)現(xiàn)副本生成,防止存儲(chǔ)系統(tǒng)進(jìn)行數(shù)據(jù)多副本偽存儲(chǔ)。該副本生成機(jī)制,能夠減少副本參數(shù)存儲(chǔ),防止海量參數(shù)丟失與損壞。在證明元數(shù)據(jù)生成階段,使用隨機(jī)序列拼接方式組合獲得復(fù)合數(shù)據(jù)域nodeDF,對(duì) nodeDF進(jìn)行簽名獲得證明元數(shù)據(jù){nodedf,l i,si,σi,y}。在證據(jù)生成階段,存儲(chǔ)系統(tǒng)同樣使用隨機(jī)序列拼接方式獲得復(fù)合數(shù)據(jù)域nodeDF',該方式能夠保證元數(shù)據(jù)生成必須使用完整副本數(shù)據(jù)塊,保證完整性審計(jì)的可行性。在證據(jù)驗(yàn)證階段通過(guò)檢驗(yàn)(g,K i,y,σi)是否為DH四元組,判斷數(shù)據(jù)是否遭到破壞,保證校驗(yàn)結(jié)果的可信度。

5.1.2區(qū)塊鏈賬本記錄可信度

本文的完整性驗(yàn)證流程通過(guò)智能合約實(shí)現(xiàn),驗(yàn)證的相關(guān)數(shù)據(jù)記錄在區(qū)塊鏈賬本上。智能合約取代可信第三方對(duì)證據(jù)的審計(jì),這樣能夠解決防止第三方對(duì)驗(yàn)證流程進(jìn)行攻擊的問(wèn)題。區(qū)塊鏈賬本能夠?qū)崿F(xiàn)賬本數(shù)據(jù)的安全可信多方存儲(chǔ),驗(yàn)證流程數(shù)據(jù)記錄在區(qū)塊鏈賬本上,防止各方對(duì)驗(yàn)證流程的篡改,保證數(shù)據(jù)完整性驗(yàn)證歷史的真實(shí)性。在區(qū)塊鏈賬本上記錄數(shù)據(jù)在區(qū)塊鏈賬本上的唯一標(biāo)識(shí)Node_block,唯一標(biāo)識(shí)的確定能夠保證數(shù)據(jù)存儲(chǔ)與完整性驗(yàn)證的一致性,實(shí)現(xiàn)對(duì)某一數(shù)據(jù)完整性驗(yàn)證歷史的檢索。通過(guò)數(shù)據(jù)完整性驗(yàn)證歷史的檢索,能夠保證數(shù)據(jù)在進(jìn)行共享之前的歷史一致性,保證數(shù)據(jù)的可信度。

5.2 方案對(duì)比

表1 為本文方案與現(xiàn)有方案的對(duì)比。本文方案包含多個(gè)數(shù)據(jù)擁有者與數(shù)據(jù)使用者,以及多個(gè)數(shù)據(jù)存儲(chǔ)系統(tǒng),能夠?qū)崿F(xiàn)同領(lǐng)域數(shù)據(jù)或者聯(lián)盟成員間數(shù)據(jù)的多方審計(jì)。本文方案選用智能合約作為系統(tǒng)審計(jì)機(jī)構(gòu),能夠避免尋找可信第三方。與抽樣驗(yàn)證相比,基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)能夠?qū)崿F(xiàn)多副本數(shù)據(jù)的確定性驗(yàn)證,提高數(shù)據(jù)完整性審計(jì)的效率與準(zhǔn)確度。同時(shí),本文方案設(shè)計(jì)數(shù)據(jù)完整性審計(jì)歷史高效檢索機(jī)制,實(shí)現(xiàn)數(shù)據(jù)完整性驗(yàn)證歷史高效檢索以及多方驗(yàn)證,保證數(shù)據(jù)歷史的一致性,增強(qiáng)數(shù)據(jù)的可信度。本文方案沒(méi)有實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)修改,降低了數(shù)據(jù)存儲(chǔ)的靈活性,但可以增加數(shù)據(jù)的歷史一致性,適合本文探討的傾向數(shù)據(jù)共享的場(chǎng)景。

表1 方案對(duì)比Table 1 Scheme comparison

6 系統(tǒng)測(cè)試

本文實(shí)驗(yàn)部署6臺(tái)阿里云服務(wù)器,其功能標(biāo)識(shí)如表2所示。云服務(wù)器配置Intel Xeon Platinum 8269CY @2.5GHz處理器,256 GB內(nèi)存,Ubuntu 16.04 64位操作系統(tǒng)。通過(guò)Java實(shí)現(xiàn)CBC模式128 bit密鑰AES加密。證明元數(shù)據(jù)生成階段使用go語(yǔ)言編程實(shí)現(xiàn),并利用go語(yǔ)言的并發(fā)機(jī)制加快計(jì)算速度,使用SHA256算法進(jìn)行數(shù)據(jù)摘要提取。BLS簽名驗(yàn)證的部分通過(guò)Java的JPBC庫(kù)實(shí)現(xiàn)。區(qū)塊鏈部分基于Hyperledger Fabric 2.2實(shí)現(xiàn)。區(qū)塊鏈系統(tǒng)的背書(shū)策略為:將智能合約安裝在6臺(tái)服務(wù)器中的peer節(jié)點(diǎn)上,在進(jìn)行區(qū)塊鏈交易時(shí),6臺(tái)服務(wù)器中的peer節(jié)點(diǎn)均進(jìn)行交易背書(shū)。

表2 云服務(wù)器功能Table 2 Cloud server function

證明元數(shù)據(jù)生成過(guò)程與證據(jù)生成過(guò)程相似,在本文的測(cè)試中,對(duì)證明元數(shù)據(jù)生成效率進(jìn)行測(cè)試。為驗(yàn)證系統(tǒng)對(duì)大數(shù)據(jù)環(huán)境中廣泛存在的小數(shù)據(jù)量數(shù)據(jù)進(jìn)行完整性驗(yàn)證的效率,測(cè)試了包含大量小數(shù)據(jù)的數(shù)據(jù)域生成證明元數(shù)據(jù)的速度。并進(jìn)行證據(jù)校驗(yàn)效率測(cè)試。

6.1 證明元數(shù)據(jù)生成效率測(cè)試

對(duì)數(shù)據(jù)量為1~10 GB的數(shù)據(jù)進(jìn)行證明元數(shù)據(jù)生成效率的測(cè)試如圖10所示。在該測(cè)試中,數(shù)據(jù)副本的數(shù)量為3,多分支Merkle樹(shù)結(jié)構(gòu)中參數(shù)Nmax取27,分別構(gòu)建數(shù)據(jù)塊大小為16 MB、24 MB、32 MB的基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)。圖11所示的是對(duì)1 GB以?xún)?nèi)數(shù)據(jù)進(jìn)行證明元數(shù)據(jù)生成效率的測(cè)試。數(shù)據(jù)副本的數(shù)量為3,多分支Merkle樹(shù)結(jié)構(gòu)中參數(shù)Nmax取27,分別構(gòu)建數(shù)據(jù)塊大小為1 MB、4 MB、8 MB的基于數(shù)據(jù)域的混合Merkle DAG結(jié)構(gòu)。

圖10 1~10 GB證明元數(shù)據(jù)的生成測(cè)試Figure 10 1~10 GB proof metadata generation test

圖11 1 GB以?xún)?nèi)證明元數(shù)據(jù)的生成測(cè)試Figure 11 Data within 1 GB to prove metadata generation test

通過(guò)兩組曲線可以看出,相同的數(shù)據(jù)量使用不同大小的分塊進(jìn)行處理,耗時(shí)基本相同。在實(shí)際的應(yīng)用中,數(shù)據(jù)分塊大小可以根據(jù)數(shù)據(jù)量的大小以及實(shí)際的需求進(jìn)行確定。證明元數(shù)據(jù)生成的時(shí)間與數(shù)據(jù)量成正比,耗時(shí)與數(shù)據(jù)量的比例關(guān)系約為1.25 s/GB,數(shù)據(jù)處理效率較高。

圖12 所示的是對(duì)1 000~10 000條非結(jié)構(gòu)小數(shù)據(jù)進(jìn)行證明元數(shù)據(jù)生成效率的測(cè)試。非結(jié)構(gòu)化數(shù)據(jù)大小為1 MB左右,數(shù)據(jù)副本的數(shù)量為3,多分支Merkle樹(shù)結(jié)構(gòu)中參數(shù)取27,構(gòu)建數(shù)據(jù)塊大小為1 MB的基于數(shù)據(jù)域的Merkle DAG文件結(jié)構(gòu)。從獲得的曲線可以看出證明元數(shù)據(jù)生成的速度與數(shù)據(jù)條數(shù)成正比,約為870 條/秒,數(shù)據(jù)處理效率較高。

圖12 非結(jié)構(gòu)化小數(shù)據(jù)證明元數(shù)據(jù)生成測(cè)試Figure 12 Unstructured small data proof metadata generation test

6.2 證據(jù)校驗(yàn)效率測(cè)試

圖13 為對(duì)數(shù)據(jù)量1~10 GB的數(shù)據(jù)進(jìn)行證據(jù)真實(shí)性校驗(yàn)的效率測(cè)試。圖14為對(duì)數(shù)據(jù)量100~900 MB的數(shù)據(jù)進(jìn)行證據(jù)真實(shí)性的效率測(cè)試。由結(jié)果可知,完整性證據(jù)的耗時(shí)與數(shù)據(jù)量的大小無(wú)關(guān),證據(jù)真實(shí)性校驗(yàn)的時(shí)間約為40 ms,能夠?qū)崿F(xiàn)對(duì)證據(jù)真實(shí)性的快速校驗(yàn)。

圖13 1~10 GB數(shù)據(jù)證據(jù)校驗(yàn)測(cè)試Figure 13 1~10 GB data evidence verification test

圖14 1 GB以?xún)?nèi)數(shù)據(jù)證據(jù)校驗(yàn)測(cè)試Figure 14 Data proof verification test within 1 GB

6.3 性能分析

從實(shí)驗(yàn)的結(jié)果可以看出數(shù)據(jù)完整性證明元數(shù)據(jù)生成以及完整性審計(jì)的速度都較高,能夠滿足數(shù)據(jù)異構(gòu)以及數(shù)據(jù)量大的要求。需要說(shuō)明的是,以上的測(cè)試均是在3個(gè)數(shù)據(jù)副本的基礎(chǔ)上進(jìn)行的,測(cè)試消耗的時(shí)間是對(duì)3個(gè)數(shù)據(jù)副本同時(shí)進(jìn)行數(shù)據(jù)完整性證明所用的時(shí)間。如果減少副本的數(shù)量,則將成比例減少時(shí)間消耗。在實(shí)際使用中,數(shù)據(jù)擁有者可以根據(jù)數(shù)據(jù)的重要程度選取合適的數(shù)據(jù)副本數(shù)或者不使用副本技術(shù)。

7 結(jié)束語(yǔ)

本文針對(duì)大數(shù)據(jù)環(huán)境下數(shù)據(jù)特點(diǎn)構(gòu)建基于區(qū)塊鏈的數(shù)據(jù)完整性多方高效審計(jì)機(jī)制,實(shí)現(xiàn)非結(jié)構(gòu)化小數(shù)據(jù)以及大體積數(shù)據(jù)的高效多副本審計(jì)。通過(guò)智能合約實(shí)現(xiàn)數(shù)據(jù)完整性審計(jì)過(guò)程,對(duì)審計(jì)歷史追溯實(shí)現(xiàn)對(duì)審計(jì)過(guò)程多方監(jiān)督,保證數(shù)據(jù)共享之前的歷史一致性,增加數(shù)據(jù)可信度。但是本文方案證明元數(shù)據(jù)的生成需要在生成隨機(jī)序列的基礎(chǔ)上實(shí)現(xiàn),下一步計(jì)劃研究更靈活的證明元數(shù)據(jù)生成方式。

猜你喜歡
擁有者副本哈希
基于特征選擇的局部敏感哈希位選擇算法
哈希值處理 功能全面更易用
文件哈希值處理一條龍
使用卷影副本保護(hù)數(shù)據(jù)
面向流媒體基于蟻群的副本選擇算法①
分布式系統(tǒng)數(shù)據(jù)復(fù)制的研究
巧用哈希數(shù)值傳遞文件
《口袋西游—藍(lán)龍》新副本“幽冥界”五大萌點(diǎn)
法库县| 诏安县| 聂拉木县| 柏乡县| 香港| 大渡口区| 康定县| 扎囊县| 连州市| 曲周县| 漳平市| 高雄县| 阳谷县| 武川县| 武夷山市| 汉源县| 镇远县| 泽州县| 广平县| 海原县| 咸阳市| 南开区| 林西县| 中西区| 新干县| 孟连| 广元市| 枣阳市| 长子县| 洛南县| 简阳市| 鸡泽县| 奉贤区| 河源市| 清水河县| 来宾市| 湘潭县| 罗定市| 大方县| 灵山县| 新乡县|