• 
    

    
    

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

      一種基于區(qū)塊鏈與智能合約的科學(xué)數(shù)據(jù)安全溯源方法

      2021-01-15 13:17:40魏銀珍鄧仲華關(guān)玉蓉胡志華
      現(xiàn)代情報 2021年1期
      關(guān)鍵詞:智能合約區(qū)塊鏈數(shù)據(jù)安全

      魏銀珍 鄧仲華 關(guān)玉蓉 胡志華

      收稿日期:2020-03-06

      基金項目:國家自然科學(xué)基金項目“大數(shù)據(jù)環(huán)境下面向科學(xué)研究第四范式的信息資源云研究”(項目編號:71373191);教育部人文社會科學(xué)基金規(guī)劃項目“面向社會科學(xué)第四范式的數(shù)據(jù)服務(wù)與保障研究”(項目編號:20YJA870017)。

      作者簡介:魏銀珍(1976-),女,高級工程師,研究方向:數(shù)據(jù)分析與處理。鄧仲華(1956-),教授,博士生導(dǎo)師,研究方向:知識組織與服務(wù)。胡志華(1976-),男,教授,研究方向:密碼學(xué)。

      通訊作者:關(guān)玉蓉(1980-),女,副教授,研究方向:區(qū)塊鏈技術(shù)及應(yīng)用。

      摘 要:[目的/意義]數(shù)據(jù)是開展科學(xué)研究活動的基礎(chǔ),確保數(shù)據(jù)的質(zhì)量、防止數(shù)據(jù)被篡改已成為影響研究結(jié)果的重要因素,為了避免數(shù)據(jù)造假、數(shù)據(jù)虛報、偽造結(jié)果以符合關(guān)鍵科學(xué)研究目標(biāo)等數(shù)據(jù)欺詐行為,必須保持?jǐn)?shù)據(jù)的溯源。[方法/過程]將溯源系統(tǒng)的安全威脅分為內(nèi)部因素和外部因素,基于智能合約和開放溯源模型(OPM),通過投票過程實現(xiàn)溯源信息準(zhǔn)入機(jī)制,利用區(qū)塊鏈的分布式特性和不可改變性,提出一種可靠的數(shù)據(jù)溯源收集、驗證和管理區(qū)塊鏈系統(tǒng)模型。[結(jié)果/結(jié)論]在科學(xué)數(shù)據(jù)創(chuàng)建、分發(fā)、流通、使用過程中可以有效、安全地捕獲和驗證溯源記錄,防止溯源信息被惡意更改的同時保護(hù)了隱私信息,為確??蒲袛?shù)據(jù)的客觀真實提供思路和方法參考。

      關(guān)鍵詞:科學(xué)數(shù)據(jù);數(shù)據(jù)安全;數(shù)據(jù)溯源;區(qū)塊鏈;智能合約

      DOI:10.3969/j.issn.1008-0821.2021.01.004

      〔中圖分類號〕G203 〔文獻(xiàn)標(biāo)識碼〕A 〔文章編號〕1008-0821(2021)01-0032-07

      A Method of Secure Provenance of Scientific Data

      Based on Blockchain and Smart Contracts

      Wei Yinzhen1 Deng Zhonghua2 Guan Yurong1* Hu Zhihua1

      (1.School of Computer,Huanggang Normal University,Huanggang 438000,China;

      2.School of Information Management,Wuhan University,Wuhan 430074,China)

      Abstract:[Purpose/Significance]Data is not only the output of scientific research activities,but also the basis on which scientific research activities are carried out.Therefore,ensuring the quality of data and preventing data from being tampered with have become an important factor affecting research results.In order to avoid data fraud,data misreporting,and falsification of results to meet key scientific research goals and other data frauds,it is necessary to maintain the provenance of data.[Methods/Process]The security threats of the provenance system were divided into internal factors and external factors.Based on smart contracts and open provenance models(OPM),the provenance access mechanism was implemented by voting.Changeability,proposed a reliable provenance collection,verification and management program.[Results/Conclusions]In the process of creating,distributing,circulating,and reuse of scientific data,the system can effectively and safely capture and verify traceability records,prevent malicious changes of provenance,and thus provide ways for ensuring the objective and true scientific research data.

      Key words:scientific data;data safety;data provenance;blockchain;smart contracts

      在科學(xué)研究領(lǐng)域中,隨著信息技術(shù)的發(fā)展及其在科學(xué)研究中的廣泛應(yīng)用,加上跨越領(lǐng)域的大規(guī)模合作的科學(xué)態(tài)勢,科學(xué)數(shù)據(jù)的體量呈現(xiàn)幾何指數(shù)增長[1]。2018年3月17日,國務(wù)院辦公廳印發(fā)《科學(xué)數(shù)據(jù)管理辦法》指出,“進(jìn)一步加強和規(guī)范科學(xué)數(shù)據(jù)管理,保障科學(xué)數(shù)據(jù)安全,提高開放共享水平,更好地為國家科技創(chuàng)新、經(jīng)濟(jì)社會發(fā)展和國家安全提供支撐”[2]。數(shù)據(jù)不僅僅是科學(xué)研究活動的產(chǎn)出,也是開展科學(xué)研究活動的基礎(chǔ)。因此,確保數(shù)據(jù)的質(zhì)量,防止數(shù)據(jù)被篡改已成為影響研究結(jié)果的重要因素。例如,美國國家癌癥研究所發(fā)起的多中心癌癥臨床試驗組進(jìn)行的審計發(fā)現(xiàn),實驗報告的欺詐發(fā)生率為0.25%[3]。

      為了避免數(shù)據(jù)造假、數(shù)據(jù)虛報、偽造結(jié)果以符合關(guān)鍵科學(xué)研究目標(biāo)等數(shù)據(jù)欺詐行為,必須保持?jǐn)?shù)據(jù)的溯源。數(shù)據(jù)溯源作為元數(shù)據(jù),描述數(shù)據(jù)源自何處,誰曾經(jīng)擁有過,以及數(shù)據(jù)從產(chǎn)生以來經(jīng)歷了哪些轉(zhuǎn)換。溯源信息可以作為衡量實驗結(jié)果支持研究目標(biāo)的標(biāo)準(zhǔn),從而提高研究的透明度和可靠性。另外,科學(xué)研究的數(shù)據(jù)來源眾多,其中可能包含敏感信息(如患者基本信息及其病歷),因此,公開發(fā)表的科學(xué)數(shù)據(jù)既要具有可驗證性,也要保護(hù)隱私信息。這就要求溯源數(shù)據(jù)的安全收集和可靠存儲,確保數(shù)據(jù)免遭未授權(quán)訪問,防止侵犯隱私。

      有學(xué)者已經(jīng)開發(fā)了一些溯源存儲和處理系統(tǒng)[4-5],這些溯源系統(tǒng)大多是基于集中式存儲模型,集中式存儲的缺點是,如果中央服務(wù)器受到威脅,則整個數(shù)據(jù)溯源信息可能會受到損害;而分布式體系本身不會對嘗試更改數(shù)據(jù)的操作進(jìn)行驗證,任何授權(quán)用戶都可以破壞存儲在溯源系統(tǒng)中的數(shù)據(jù),數(shù)據(jù)溯源信息的安全性是分布式溯源系統(tǒng)需要考慮的另一個問題。基于此,本文所提出的溯源系統(tǒng)框架,用區(qū)塊鏈來存儲溯源信息,使用智能合約對每次更改操作進(jìn)行驗證。區(qū)塊鏈環(huán)境的不可改變性,保證了任何用戶都無法修改已批準(zhǔn)的溯源記錄;區(qū)塊鏈的分布式特性,保證數(shù)據(jù)溯源記錄可在區(qū)塊鏈的每個節(jié)點上復(fù)制,從而確保高可用性和容錯能力。

      鄧仲華等[6]提出了一種分層次的數(shù)據(jù)溯源安全模型,該模型從數(shù)據(jù)溯源安全層、邏輯層和語義層系統(tǒng)地描述了數(shù)據(jù)溯源的過程。Baker J等[7]首先討論了利用區(qū)塊鏈作為數(shù)據(jù)溯源跟蹤,將區(qū)塊鏈交易用于存儲食品從生產(chǎn)到消費者的溯源詳細(xì)信息。Barber S等[8]進(jìn)一步探討了使用比特幣作為研究場景的數(shù)據(jù)溯源系統(tǒng),提出了將研究目標(biāo)作為編碼文件存儲在比特幣交易數(shù)據(jù)字段中的想法。與這些系統(tǒng)模型相比較,本文提出的SciDataProv溯源系統(tǒng)采用了區(qū)塊鏈環(huán)境的不可改變性,實現(xiàn)了具有訪問控制策略的全棧隱私保護(hù),經(jīng)過驗證的數(shù)據(jù)文檔存儲在云中,而溯源信息作為事件日志存儲在區(qū)塊鏈中,從而節(jié)約存儲成本。

      1 相關(guān)技術(shù)和模型

      1.1 以太坊(Ethereum)與智能合約

      本文設(shè)計的SciDataProv溯源系統(tǒng)建立在以太坊(一個分布式公共區(qū)塊鏈網(wǎng)絡(luò))之上。以太坊是一個相互連接的計算機(jī)的全球網(wǎng)絡(luò),其中的計算機(jī)被稱為結(jié)點,用來執(zhí)行特定應(yīng)用程序,節(jié)點通過Geth客戶端連接到以太坊中。以太坊提供了去中心化圖靈完備平臺來運行智能合約,提供一種稱為以太幣的數(shù)字貨幣,來實現(xiàn)平臺中節(jié)點之間的價值交換。

      智能合約是駐留在以太坊區(qū)塊鏈環(huán)境中的程序,在滿足特定條件時自動執(zhí)行。智能合約可以存儲和控制以太幣,其中控制以太幣的功能可用于構(gòu)建需要以太幣充值和支付的應(yīng)用程序,例如身份認(rèn)證管理系統(tǒng)等。在以太坊區(qū)塊鏈平臺中,每個計算步驟都有相應(yīng)的成本[9],稱為氣體(Gas)。

      1.2 溯源模型

      本文所提出的安全溯源系統(tǒng)基于開放溯源模型(OPM)[10]表示數(shù)據(jù)溯源軌跡,旨在提供一個開放的數(shù)據(jù)溯源模型。OPM模型使用3個參數(shù)來表示當(dāng)前系統(tǒng)的動作:①Artifact:表示變更版本前后的實體(如文件等);②Agent:變更發(fā)起者的代理;③Process:將實體從以前的版本更改為當(dāng)前版本的過程。三者之間用依賴關(guān)系連接,如Used、wasGeneratedBy、wasControlledBy等。OPM用圖的形式表達(dá)溯源信息,其中Artifact、Agent和Process是結(jié)點,而他們之間的關(guān)系是邊。如修改文件的動作可以在OPM中表示為元組(用戶,文件舊版本,文件新版本,用于修改的過程)[11]。

      1.3 溯源系統(tǒng)安全威脅模型

      科學(xué)數(shù)據(jù)溯源系統(tǒng)可能受到兩種類型的攻擊,即外部攻擊和內(nèi)部攻擊。外部攻擊是指無權(quán)訪問系統(tǒng)中數(shù)據(jù)文檔的用戶,但會主動嘗試破壞特定私有數(shù)據(jù)文檔的溯源記錄,外部攻擊者不知道解密文檔的密鑰,也無法訪問文檔的存儲位置。攻擊者僅了解文檔ID,并使用此信息對基于區(qū)塊鏈的數(shù)據(jù)溯源系統(tǒng)發(fā)起攻擊。由于云存儲的不可靠,本文將數(shù)據(jù)以加密形式存儲。

      內(nèi)部攻擊者指由數(shù)據(jù)及其溯源所有者授權(quán)訪問系統(tǒng)的用戶,其有權(quán)更改文檔,也能夠?qū)⒋烁挠涗浽谒菰磪^(qū)塊鏈上(這里假設(shè)內(nèi)部被授權(quán)用戶不能將訪問權(quán)限授予他人)。內(nèi)部攻擊者可能會利用訪問權(quán)限,通過對在區(qū)塊鏈上記入錯誤的更改信息來偽造數(shù)據(jù)溯源記錄。本文假設(shè)授權(quán)用戶中至少有一半是誠實的,也就是說相信一半以上的用戶所做的更改是正確的;如果大多數(shù)用戶是惡意的,本文將無法提供安全保證[12]。

      2 科學(xué)數(shù)據(jù)溯源系統(tǒng)模型構(gòu)建

      2.1 科學(xué)數(shù)據(jù)溯源情景

      假定在一項研究中,研究人員將其研究記錄作為文檔存儲在云中,數(shù)據(jù)文件由其所有者(如首席研究員)使用公鑰加密來限制對數(shù)據(jù)文檔的訪問,通過提供密鑰來向用戶授予訪問權(quán)。在SciDataProv系統(tǒng)模型中,通過版本控制對文檔進(jìn)行更改,對文檔的每次更改都以新的版本存儲在云中,后續(xù)的所有更改都必須基于當(dāng)前的最新版本,系統(tǒng)會自動檢查是否更改未記入文檔的溯源中。

      依據(jù)上述情景,結(jié)合一般的區(qū)塊鏈結(jié)構(gòu),本文提出如圖1所示的科學(xué)數(shù)據(jù)溯源系統(tǒng)模型,主要包括應(yīng)用層、合約層、激勵層、共識層、網(wǎng)絡(luò)層、數(shù)據(jù)層。系統(tǒng)通過懲罰提交錯誤的更改溯源詳細(xì)信息的用戶來鼓勵真實的行為。如果投票者發(fā)現(xiàn)有人提交了偽造的更改,則會得到相應(yīng)的獎賞。用戶通過在瀏覽器中運行的客戶端應(yīng)用程序?qū)⒂行Ц挠涗浀较到y(tǒng)中,每個客戶端都存儲有關(guān)當(dāng)前用戶可以使用的持久性數(shù)據(jù)。系統(tǒng)的客戶端應(yīng)用程序采用Node.js和MongoDB實現(xiàn),運行在客戶端的Geth節(jié)點與智能合約進(jìn)行通信;客戶監(jiān)視監(jiān)聽智能合約系統(tǒng)的更改事件;智能合約存儲訪問控制策略以及詳細(xì)信息(如特定文檔的最后更改時間,最后更改的簽名和更改日志)等。

      2.2 溯源捕獲生命周期

      SciDataProv系統(tǒng)模型的單個執(zhí)行周期如圖2所示,包括6個步驟包:第一步,更改發(fā)起人修改數(shù)據(jù)文件并將其上傳到云中。數(shù)據(jù)文件的不同版本均保存在云中,以便在更改被拒絕的情況下還原;第二步,更改發(fā)起人通過客戶應(yīng)用程序?qū)⒏恼埱蠛脱航鹨黄鹛峤唤o投票合約。更改請求包含文檔ID、數(shù)據(jù)文件先前和當(dāng)前版本的哈希加密形式、云存儲庫中的文件位置、時間戳以及發(fā)起人簽名;第三步,客戶端模塊提交更改,然后啟動投票周期。在投票期間,授權(quán)用戶使用駐留在云存儲中的驗證程序腳本驗證更改,如果更改有效,則返回TRUE,否則返回FALSE;第四步,用戶使用投票合約根據(jù)驗證結(jié)果對此次更改進(jìn)行投票(該過程是自動的);第五步,投票合同記錄用戶所投的票數(shù)。在投票結(jié)束時,如果多于一半的用戶投反對票,則拒絕更改,更改發(fā)起者會受到罰款,區(qū)塊鏈系統(tǒng)將該罰款在參與投票的用戶中分配;如果在投票結(jié)束后,投反對票的人數(shù)少于一半,則接受變更,并向變更發(fā)起人退還押金;第六步,如果在表決后接受更改,則表決合約會將此更改記錄在文檔溯源跟蹤器中。更改的日志條目包括負(fù)責(zé)更改的作者、當(dāng)前文檔的哈希值和文檔先前版本的哈希值、當(dāng)前更改的高級OPM表示形式以及用于將來驗證的數(shù)字簽名。

      3 科學(xué)數(shù)據(jù)溯源系統(tǒng)設(shè)計

      SciDataProv系統(tǒng)包括鏈上組件和鏈下組件兩個部分。鏈上組件主要由用于訪問控制、生成和存

      儲溯源跟蹤與進(jìn)行投票過程的以太坊智能合約組成;鏈下組件由客戶端應(yīng)用程序構(gòu)成,主要功能是為智能合約提交更改、投票計時、驗證更改提供接口。

      3.1 鏈上模塊

      SciDataProv系統(tǒng)鏈上模塊主要由文檔追蹤合約和投票合約組成。

      3.1.1 文檔追蹤合約

      文檔追蹤合約用于跟蹤特定文檔的變化軌跡,實施訪問控制策略,維護(hù)所有用戶對文檔的訪問信息,提供用于生成特定文檔的溯源軌跡的方法。所生成的數(shù)據(jù)文檔溯源信息作為事件存儲在文檔追蹤合約的事件日志中。更改事件日志格式為:

      change(docid,agent,EK(docid,H(Xo),H(Xn),link,ts),OPM,signk)

      其中,docid為數(shù)據(jù)文件的唯一標(biāo)識,agent為更改發(fā)起人的地址,EK為加密文本,H(Xo)為先前版本的文件哈希值,H(Xn)為修改后的文件版本的哈希值,link為數(shù)據(jù)文檔在云存儲中的位置,ts為最新的時間戳,OPM為OPM溯源模型的高級表示,signk為基于加密文本的發(fā)起人簽名。

      文檔追蹤合約支持訪問控制管理的所有基本功能,例如創(chuàng)建文檔、用戶權(quán)限管理。SciDataProv系統(tǒng)不會在明文鏈中存儲任何敏感信息,因為明文中存儲的包括智能合約代碼在內(nèi)的任何信息都是公開可訪問的。此外,由于存儲成本和區(qū)塊鏈存儲限制,實際數(shù)據(jù)存儲在區(qū)塊鏈以外的云中。

      將文檔添加到系統(tǒng)時,文檔所有者會生成溯源記錄的初始迭代。智能合約強制執(zhí)行以下約束,即該文檔溯源信息的訪問權(quán)限嚴(yán)格由文檔所有者控制,獲得授權(quán)的用戶禁止轉(zhuǎn)讓其權(quán)限。除主要方法外,文檔追蹤合約還包含用于檢查用戶對文檔訪問權(quán)限的幫助程序,以及用于更新文檔所有者的方法。所有對溯源的更改事件都必須通過投票合約的投票過程來批準(zhǔn)。

      本文選擇投票來核實所提交的更改信息主要基于兩方面的考慮:首先是要有效地防止明顯違反數(shù)據(jù)使用限制的惡意更改(如不允許從藥物試驗數(shù)據(jù)中刪除患者記錄);其次是不希望驗證過程泄漏任何敏感信息。例如,對于藥物試驗,主要的驗證過程可能是確保沒有因致命反應(yīng)而從數(shù)據(jù)集中刪除任何患者記錄(目的是提高藥物試驗的成功率)。另外,如果驗證是在合約中完成的,則需要以不透露任何信息的方式進(jìn)行此操作(如使用零知識證明,因為合同源代碼和執(zhí)行是公開可見的),然而,現(xiàn)有零知識技術(shù)還不夠通用,并且,通用零知識驗證技術(shù)的效率不足以實現(xiàn)溯源捕獲[13]。因此,系統(tǒng)允許每個參與者通過客戶程序在鏈外運行驗證代碼,并使用鏈上合約對數(shù)據(jù)更改進(jìn)行投票。

      3.1.2 投票合約

      投票合約執(zhí)行投票協(xié)議,有兩種類型的投票協(xié)議,即簡單多數(shù)投票和閾值投票。發(fā)起人以加密形式將所做的更改及其簽名與文檔ID一同提交給投票合約。投票合約接收更改,并在驗證后生成日志事件以啟動更改投票。投票周期設(shè)為t1,在此期間參與者可以對此更改投(贊成或反對)票。在投票期結(jié)束時,投票合約統(tǒng)計票數(shù),根據(jù)投票協(xié)議類型,決定拒絕或者接受更改。如果當(dāng)前投票期的總票數(shù)未達(dá)到協(xié)議規(guī)定的最低閾值,則投票合約將開啟新一輪的投票。在投票階段結(jié)束后,如果表決結(jié)果為接受更改,則投票合約會將更改提交給文檔追蹤合約來生成溯源事件。投票合約僅接受特定文檔的單個未完成更改,以確保數(shù)據(jù)溯源鏈的連續(xù)性和一致性。關(guān)于投票過程將在第4小節(jié)中詳細(xì)介紹。

      3.2 鏈下模塊

      鏈下客戶端運行在客戶端計算機(jī)的瀏覽器上,充當(dāng)用戶和后端智能合約之間的接口??蛻舳四K負(fù)責(zé)與智能合約進(jìn)行通信,主要功能是存儲更改、獲取更改并驗證更改的有效性。SciDataProv還有一個驗證腳本模塊,該模塊運行在數(shù)據(jù)文檔所在的云存儲中,來驗證更改請求的有效性。

      3.2.1 客戶端接口模塊

      接口模塊主要為用戶提供與智能合約進(jìn)行交互的接口。該模塊為系統(tǒng)的基本操作提供訪問方法(如添加新文檔、提供授權(quán)信息以及跟蹤記錄數(shù)據(jù)文檔的變更),為用戶的操作生成數(shù)字簽名。

      3.2.2 事件監(jiān)聽模塊

      事件監(jiān)聽模塊監(jiān)聽由投票合約生成的更改事件,讀取記錄在合約中的所有新的變更事件,檢查當(dāng)前客戶端是否正在參與追蹤合約中的變更。如果當(dāng)前文檔更改與當(dāng)前用戶相關(guān),則監(jiān)聽合約對更改事件進(jìn)行解密,驗證更改的簽名,然后調(diào)用驗證腳本,通知用戶驗證結(jié)果,如果驗證結(jié)果有效,則代表用戶進(jìn)行投票。

      3.2.3 計時器模塊

      計時器模塊負(fù)責(zé)跟蹤投票周期。當(dāng)生成文檔更改事件時,調(diào)用計時器模塊以啟動更改的投票周期,計時器將在投票周期結(jié)束時終止投票過程。

      3.2.4 驗證模塊

      驗證腳本位于云存儲中,驗證提交到系統(tǒng)的數(shù)據(jù)文檔更改。驗證腳本的輸入包括文檔的當(dāng)前版本和先前版本的加密哈希以及指向文件最新版本的鏈接。驗證腳本首先驗證所提交的文件哈希值是否有效,然后將當(dāng)前未確認(rèn)的數(shù)據(jù)文件與最后一個穩(wěn)定版本進(jìn)行比較,如果發(fā)現(xiàn)了除更改請求中提到的更改之外的任何更改,則驗證腳本將通知用戶不匹配;如果文件中沒有無效更改,則驗證腳本將確認(rèn)該更改有效。一旦確認(rèn)更改有效,為防止進(jìn)一步操作,驗證腳本將僅對文檔所有者授予寫權(quán)限。

      4 投票過程

      投票過程是本溯源系統(tǒng)的核心部分,本小節(jié)將分別討論多數(shù)表決投票和隨機(jī)閾值投票的過程以及這兩種投票方式的合理性。如圖3所示,當(dāng)變更發(fā)起人向投票合約提交變更請求時,投票過程開始。發(fā)起人客戶端觸發(fā)計時器啟動對本次更改的投票周期,投票合約生成一個事件來表示投票開始??蛻舳藨?yīng)用程序中的事件監(jiān)聽模塊讀取最新的投票事件,驗證它是否是當(dāng)前文檔更改事件中的涉眾。接著,客戶端模塊將調(diào)用駐留在云中的驗證腳本以及指向文件的當(dāng)前和先前版本以及文件哈希的鏈接。根據(jù)表決協(xié)議策略,每個節(jié)點都會調(diào)用驗證過程。如果驗證腳本返回TRUE,則客戶端應(yīng)用程序?qū)⒔Y(jié)果通知用戶,接著,客戶端應(yīng)用程序?qū)Υ烁倪M(jìn)行投票。投票合約接收并記錄了用戶的投票決定,計時器模塊將在投票期結(jié)束時終止投票。投票合約統(tǒng)計票數(shù),如果多數(shù)人對更改投反對票,則拒絕更改。如果接受更改,發(fā)起人的押金將退還。如果更改被拒絕,則押金將分配給投票參與者,以此來激勵參與者講真話。

      4.1 多數(shù)表決投票

      在多數(shù)表決投票中,文檔的利益相關(guān)者對該文檔的更改進(jìn)行投票,接受或拒絕更改的決定基于簡單多數(shù)策略,即如果多數(shù)用戶對更改投了反對票,則更改被拒絕,否則接受更改。這種投票策略的缺點是,要求所有授權(quán)用戶都進(jìn)行投票,當(dāng)文檔的用戶較少(少于5個)時,此策略結(jié)果非常理想,但在用戶數(shù)量巨大的情況下,要求所有利益相關(guān)者為每項更改投票的代價相當(dāng)昂貴。因此,當(dāng)文檔的涉眾數(shù)量少于5個時,SciDataProv實施簡單的多數(shù)表決;而對于用戶量較大時,采用隨機(jī)閾值表決策略。

      4.2 隨機(jī)閾值投票

      4.2.1 隨機(jī)閾值投票過程

      對于包含大量更改和用戶的系統(tǒng),用戶對每個更改進(jìn)行投票的效率都不高。在此情況下,本文采用隨機(jī)閾值表決策略。在隨機(jī)閾值投票中,投票合約要求以最小票數(shù)接受或拒絕更改。假設(shè)文檔有n個用戶,要接受或拒絕更改,則投票合約的閾值為s。為了確保更改的每個投票階段都獲得s票,合約會嘗試在t>s的情況下獲得預(yù)期的t票。閾值t確保每次更改都收到最少的贊成票或反對票s。

      為了確定是否參與變更投票,每個客戶端會根據(jù)以下公式獲得一個隨機(jī)Rs:

      Rs=Hash(Bno,Etext,Glim,Addr)mod n

      Rs是通過散列發(fā)起更改信息的哈希而得到的隨機(jī)數(shù),更改信息包括Bno(當(dāng)前塊號),Etext(更改事件中的加密文本),Glim(當(dāng)前gas限制)和Addr(發(fā)起者的地址)。如果生成的隨機(jī)數(shù)低于投票合約設(shè)置的閾值t(即Ks

      在隨機(jī)閾值表決策略中,對變更的投票基于安全的偽隨機(jī)數(shù),由于每個哈希表的哈希函數(shù)輸入幾乎都是隨機(jī)的,因此無法知道哪個客戶對哪個變更進(jìn)行投票。在投票期結(jié)束時,如果投票合約發(fā)現(xiàn)投票總數(shù)低于閾值s,則投票合約重新啟動投票過程。如果在預(yù)定義的最大重新啟動次數(shù)之后依然未收到所需的票數(shù),則更改被拒絕,并將押金退還給更改發(fā)起人。

      4.2.2 隨機(jī)投票分析

      在隨機(jī)投票的驗證中,從n個可投票的用戶中隨機(jī)選擇至少t個用戶。每個用戶被選中的概率為t/n,其中t>s。本小節(jié)將分析給定投票期限未能獲得至少s票的概率。在分析之前,利用Chernoff-Hoeffding Bound定理得到如下公式來計算用戶投票數(shù)V小于s的概率:

      Pr[V

      在這里,每個用戶被選中的概率是t/n,對于某些選中用戶由于不在線或其他原因不想投票的情況的概率為pf,pf的值可以調(diào)整。

      接下來討論如何在實際應(yīng)用中設(shè)置t和s的值,使每次更改投票數(shù)不低于s。要確定t和s的最優(yōu)值,需要根據(jù)失敗概率考慮整個投票階段的總成本,這里的投票失敗概率即是在給定失敗率pf時,總投票數(shù)V小于s的概率(pt=Pr[V

      假設(shè)失敗概率為pt,n位用戶被選中的概率為t/n,一輪投票的投票數(shù)少于s票,則投票過程的預(yù)期成本E[CV]可以所示如下:

      E[CV]=c·t+c11-pt≤c·t+c11-e2*(t-s)2

      其中c和c1是與系統(tǒng)相關(guān)的常數(shù),根據(jù)經(jīng)驗,常數(shù)c和c1找到給定n時,t和s的最優(yōu)值。

      5 系統(tǒng)分析

      5.1 安全分析

      外部攻擊者可以根據(jù)數(shù)據(jù)文檔ID提交無效的更改請求來嘗試攻擊當(dāng)前系統(tǒng),SciDataProv通過對文檔實施訪問控制策略來阻止此類攻擊。文檔追蹤合約僅接受來自文檔所有者授予訪問權(quán)限的用戶的更改請求,拒絕所有其他權(quán)限用戶的更改請求。通過跟蹤攻擊嘗試,預(yù)扣更改的押金將使外部攻擊者受到懲罰。外部攻擊者可能使用早期的更改請求簽名來發(fā)起反復(fù)攻擊,文檔跟蹤器通過跟蹤特定文檔的最新更改時間戳來防止這種攻擊,任何遲于該文檔最新時間戳的消息都將被忽略。

      內(nèi)部用戶可以是文檔的所有者,也可以是所有者授予其訪問文檔權(quán)限的用戶。后者可能通過提交不實的更改來嘗試破壞數(shù)據(jù)溯源軌跡。由于SciDataProv系統(tǒng)要求每個更改都必須由最少數(shù)量的用戶批準(zhǔn),因此,只有當(dāng)其可以控制文檔所允許的用戶總數(shù)的一半以上時,攻擊才能成功。隨機(jī)閾值投票進(jìn)一步確保了攻擊者無法提前知道所有選民中哪些可以參與當(dāng)前投票,因此,這類攻擊很難成功。如果內(nèi)部攻擊者與其他利益相關(guān)者串通并投票贊成更改,則可能破壞系統(tǒng)。所有者是唯一可以授予訪問權(quán)限的用戶,如果所有者選擇一組忠實于他并有意破壞溯源軌跡的用戶,那么該系統(tǒng)可能處于不利地位。盡管這種攻擊可能是成功的,但它仍在區(qū)塊鏈上留下了可追蹤的痕跡,可用于檢測攻擊。

      5.2 隱私保護(hù)分析

      通過使用哈希散列和加密來實現(xiàn)對溯源數(shù)據(jù)軌跡的隱私保護(hù)。外部用戶只能通過查看事件日志來推斷文檔ID和對特定文檔ID進(jìn)行的更改次數(shù)。所有更改事件對有效信息進(jìn)行加密,外部攻擊者可以獲得的信息無外乎文檔ID、密文和簽名。指向?qū)嶋H文件的云存儲的鏈接位置也是加密的。外部用戶從合約交易記錄中可以得到的信息包括哪些用戶與特定的文檔ID相關(guān)聯(lián),該信息可通過查看投票合約的迭代推導(dǎo)出來。以太坊平臺通過使用隨機(jī)公共地址為用戶提供匿名服務(wù)。SciDataProv的用戶不會在環(huán)境中透露其身份,而是使用公共地址在系統(tǒng)中執(zhí)行操作,只有文件所有者才知道文檔用戶的身份,查看到多個投票迭代的用戶最多可以推斷出與每個文檔關(guān)聯(lián)的公共地址。

      6 總 結(jié)

      本文提出的SciDataProv溯源系統(tǒng)采用了區(qū)塊鏈環(huán)境的不可改變性,實現(xiàn)了具有訪問控制策略的全棧隱私保護(hù),經(jīng)過驗證的數(shù)據(jù)文檔存儲在云中,而溯源信息作為事件日志存儲在區(qū)塊鏈中,從而節(jié)約存儲成本。SciDataProv系統(tǒng)通過使用公共密鑰加密來確保隱私,并通過使用數(shù)字簽名來保持完整性。SciDataProv實現(xiàn)了自動驗證腳本并拒絕了無效的更改,生成的更改哈希鏈僅記錄由驗證腳本驗證的更改,這保證了變更后的文件始終有效,并防止了審計員與利益相關(guān)者之間串通的任何機(jī)會。另外,本文提出的系統(tǒng)框架使用智能合約實施激勵投票,以懲罰試圖將無效更改記錄到溯源軌跡職能中的用戶。隨機(jī)投票的使用降低了驗證過程的集中度,由于驗證腳本會在對更改進(jìn)行投票之前驗證更改,因此無需物理驗證程序。通過使用數(shù)字簽名和時間戳來提供變更證明。該系統(tǒng)確保只有授權(quán)用戶使用適當(dāng)?shù)拿荑€才能訪問區(qū)塊鏈環(huán)境中的更改日志。SciDataProv系統(tǒng)通過對捕獲的變更進(jìn)行隨機(jī)投票,進(jìn)一步增強了數(shù)據(jù)記錄的可靠性,并且使用智能合約對任何惡意更改進(jìn)行。

      參考文獻(xiàn)

      [1]周曉英.情報學(xué)進(jìn)展系列論文之七數(shù)據(jù)密集型科學(xué)研究范式的興起與情報學(xué)的應(yīng)對[J].情報資料工作,2012,(2):5-11.

      [2]中華人民共和國政府網(wǎng).http://www.gov.cn/xinwen/2018-04/02/content_5279353.htm[EB].2018-09-10.

      [3]George S L,Buyse M.Data Fraud in Clinical Trials[J].Clinical Investigation,2015,5(2):161.

      [4]Chimera U.A Visualization System for Exploratory Research and Analysis.Pettersen EF,Goddard TD,Huang CC,Couch GS,Greenblatt DM,Meng EC,F(xiàn)errin TE[J].J Comput Chem,2004,25(13):1605-12.

      [5]明華,張勇,符小輝.數(shù)據(jù)溯源技術(shù)綜述[J].小型微型計算機(jī)系統(tǒng),2012,33(9):1917-1923.

      [6]鄧仲華,容益芳.一種分層次的數(shù)據(jù)溯源安全模型[J].圖書館學(xué)研究,2016,(20):36-41.

      [7]Baker J,Steiner J.Blockchain:The Solution for Transparency in Product Supply Chains[J].Provenance:London,UK,2015.

      [8]Barber S,Boyen X,Shi E,et al.Bitter to Better—How to Make Bitcoin a Better Currency[C]//International Conference on Financial Cryptography and Data Security.Springer,Berlin,Heidelberg,2012:399-414.

      [9]Wood G.Ethereum:A Secure Decentralised Generalised Transaction Ledger[J].Ethereum Project Yellow Paper,2014,151(2014):1-32.

      [10]Moreau L,F(xiàn)reire J,F(xiàn)utrelle J,et al.The Open Provenance Model[J].2007.

      [11]魏銀珍,鄧仲華.基于 PROV 模型的溯源管理設(shè)計與實現(xiàn)[J].情報理論與實踐,2016,39(11):95-100.

      [12]Goldreich O.Foundations of Cryptography:Volume 2,Basic Applications[M].Cambridge University Press,2009:165-166.

      [13]Brakerski Z,Katz J,Segev G,et al.Limits on the Power of Zero-knowledge Proofs in Cryptographic Constructions[C]//Theory of Cryptography Conference.Springer,Berlin,Heidelberg,2011:559-578.

      (責(zé)任編輯:陳 媛)

      猜你喜歡
      智能合約區(qū)塊鏈數(shù)據(jù)安全
      云計算中基于用戶隱私的數(shù)據(jù)安全保護(hù)方法
      電子制作(2019年14期)2019-08-20 05:43:42
      建立激勵相容機(jī)制保護(hù)數(shù)據(jù)安全
      大數(shù)據(jù)云計算環(huán)境下的數(shù)據(jù)安全
      電子制作(2017年20期)2017-04-26 06:57:48
      區(qū)塊鏈技術(shù)在互聯(lián)網(wǎng)保險行業(yè)的應(yīng)用探討
      區(qū)塊鏈技術(shù)的應(yīng)用價值分析
      商情(2016年40期)2016-11-28 11:24:12
      “區(qū)塊鏈”的茍且、詩和遠(yuǎn)方
      基于區(qū)塊鏈技術(shù)的數(shù)字貨幣與傳統(tǒng)貨幣辨析
      區(qū)塊鏈技術(shù)在會計中的應(yīng)用展望
      會計之友(2016年17期)2016-11-02 16:05:15
      智能合約與金融合約
      商(2016年6期)2016-04-20 17:50:36
      用“區(qū)塊鏈”助推中企走出去
      丰台区| 株洲县| 三亚市| 浑源县| 绩溪县| 商城县| 邹平县| 安泽县| 青冈县| 贞丰县| 辽阳市| 华池县| 旺苍县| 厦门市| 嵩明县| 汉中市| 曲松县| 普安县| 广东省| 大名县| 滦南县| 尚义县| 开原市| 革吉县| 高唐县| 鹤峰县| 夏邑县| 平武县| 基隆市| 湘潭县| 拉萨市| 塔河县| 北流市| 赣榆县| 明星| 广灵县| 景宁| 留坝县| 资源县| 沁源县| 讷河市|