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

        ?

        基于區(qū)塊鏈的精準扶貧數(shù)據(jù)保護方案

        2021-03-24 02:04:46張利華王欣怡白甲義張贛哲
        應(yīng)用科學(xué)學(xué)報 2021年1期

        張利華,黃 陽,王欣怡,白甲義,曹 宇,張贛哲

        1.華東交通大學(xué)軟件學(xué)院,江西南昌330013

        2.華東交通大學(xué)電氣與自動化工程學(xué)院,江西南昌330013

        精準扶貧作為政府的第1 民生工程,是決勝全面小康的一場攻堅戰(zhàn)。2014年以來,精準扶貧工作在政策上愈發(fā)完善,在方式上愈發(fā)創(chuàng)新。扶貧數(shù)據(jù)作為扶貧事業(yè)中積累的獨特資源,如何將其精準記錄并加以有效整合是影響這場攻堅戰(zhàn)成敗與否的重要因素。

        在“互聯(lián)網(wǎng)+”大背景的烘托下,人們大規(guī)模地運用數(shù)字化手段對扶貧數(shù)據(jù)進行處理,雖然具有簡便快捷的優(yōu)勢但也存在以下問題:1)數(shù)據(jù)缺乏結(jié)構(gòu)化,不利于分析;2)數(shù)據(jù)經(jīng)數(shù)字化處理后增加了被篡改的風險;3)缺乏安全高效的共享渠道,導(dǎo)致各個扶貧工作的權(quán)威機構(gòu)仍處于孤島狀態(tài);4)數(shù)據(jù)的可追溯性不強,無法明確相關(guān)責任;5)解決數(shù)據(jù)處理過程中隱私保護問題的方案還不夠完善;6)中心化的數(shù)據(jù)庫存在深層次的安全隱患等。

        作為一項創(chuàng)新性的技術(shù),區(qū)塊鏈本質(zhì)上是一個分布式的數(shù)據(jù)庫,具有去中心化、防篡改、公開透明等特性[1]。結(jié)合星際文件系統(tǒng)(inter-planetary file system,IPFS)、數(shù)字簽名、安全多方計算(secure multi-party computation,SMPC)等技術(shù)理論,研究了一種基于區(qū)塊鏈的精準扶貧數(shù)據(jù)保護方案,具體思路如下:

        1)各個管理扶貧數(shù)據(jù)機構(gòu)組成聯(lián)盟鏈,并作為權(quán)威節(jié)點擔負管理維護的職責,同時聯(lián)盟鏈上的數(shù)據(jù)以快照信息的形式與公有鏈錨定。

        2)扶貧數(shù)據(jù)以數(shù)字檔案的形式存在,只有經(jīng)本人授權(quán)才能解密。源數(shù)據(jù)通過鏈下的私有IPFS 集群加密存儲,而數(shù)字檔案的摘要信息則存儲在鏈上,兩者配合實現(xiàn)數(shù)據(jù)的新增、更新、驗證、溯源和共享等功能。

        3)聯(lián)盟鏈采用的是基于節(jié)點綜合性能的Raft 共識算法,將各節(jié)點的性能、可靠性、地區(qū)影響力等因素作為綜合性能來解決存儲和數(shù)據(jù)處理效率的問題。

        1 相關(guān)工作

        目前,在精準扶貧數(shù)據(jù)的處理和保護方面已有很多相關(guān)成果。文獻[2] 利用大數(shù)據(jù)技術(shù)對各地脫貧攻堅工作中產(chǎn)生的數(shù)據(jù)進行挖掘分析,以數(shù)據(jù)呈現(xiàn)、聯(lián)合分析等方式實現(xiàn)精準扶貧的可視化。文獻[3] 基于Hadoop 架構(gòu)的精準扶貧大數(shù)據(jù)系統(tǒng)設(shè)計方案,利用FP-Growth(frequent pattern-growth)算法實現(xiàn)精準扶貧數(shù)據(jù)的深入挖掘。

        區(qū)塊鏈作為新興技術(shù),在眾多領(lǐng)域都發(fā)揮著關(guān)鍵作用。在數(shù)據(jù)保護與共享領(lǐng)域,文獻[4]基于區(qū)塊鏈構(gòu)建了去中心化的醫(yī)療數(shù)據(jù)訪問管理系統(tǒng),使患者對數(shù)據(jù)有自主分享的權(quán)利。文獻[5] 利用IPFS 和智能合約對物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)進行儲存管理,雖然實現(xiàn)了數(shù)據(jù)保護,但采用的是公有鏈和公有IPFS 集群,不但成本較高而且存在一定的安全隱患。文獻[6] 提出了基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)共享模型,卻依舊沒有解決數(shù)據(jù)中心化存儲的問題。

        在隱私保護領(lǐng)域,文獻[7] 利用采集基站搭建聯(lián)盟鏈,保障了數(shù)據(jù)安全存儲,但受制于資源、架構(gòu),物聯(lián)網(wǎng)技術(shù)而難以兼容其他安全技術(shù)。文獻[8] 提出一種基于區(qū)塊鏈的數(shù)據(jù)網(wǎng)關(guān)架構(gòu)并引入了SMPC,使第3 方用戶能在不侵犯患者隱私的情況下計算并存儲數(shù)據(jù)。文獻[9] 同樣將區(qū)塊鏈與物聯(lián)網(wǎng)相結(jié)合,在增強物聯(lián)網(wǎng)聯(lián)系的同時提供了安全的技術(shù)保障。文獻[10] 利用智能合約設(shè)置不同場景下的不同訪問權(quán)限,實現(xiàn)了數(shù)據(jù)動態(tài)共享,保障了用戶的隱私安全。文獻[11] 結(jié)合區(qū)塊鏈和數(shù)據(jù)脫敏技術(shù)提出了一種電子病歷安全共享模型,憑借部分數(shù)據(jù)的準確性解決了隱私保護問題。

        在數(shù)據(jù)溯源領(lǐng)域,文獻[12-13] 分別利用區(qū)塊鏈技術(shù)搭建了數(shù)據(jù)溯源框架,但更強調(diào)對用戶ID 的隱私保護。文獻[14] 結(jié)合區(qū)塊鏈技術(shù)和IC 芯片卡提出一套防偽方案,但并未解決防偽信息泄露問題。文獻[15] 借助區(qū)塊鏈與大數(shù)據(jù)技術(shù)提出了基于區(qū)塊鏈的射頻識別(radio frequency identification,RFID)大數(shù)據(jù)溯源模型,在RFID 溯源的各個環(huán)節(jié)建立區(qū)塊鏈賬本以實現(xiàn)大數(shù)據(jù)的安全管理,但同樣忽略了數(shù)據(jù)的隱私保護問題。文獻[16] 將區(qū)塊鏈技術(shù)引入精準扶貧數(shù)據(jù)保護,開發(fā)了基于區(qū)塊鏈的精準扶貧系統(tǒng),但更多的是側(cè)重于系統(tǒng)的設(shè)計。為此,本文在數(shù)據(jù)層面上引入?yún)^(qū)塊鏈技術(shù),從而達到數(shù)據(jù)保護的目的。

        2 整體架構(gòu)

        2.1 系統(tǒng)模型

        如圖1所示,精準扶貧數(shù)據(jù)保護方案的系統(tǒng)模型由以下四部分構(gòu)成:

        圖1 系統(tǒng)框架Figure 1 System framework

        1)權(quán)威驗證機構(gòu)(authoritative certification authority,ACA),如政務(wù)部門、學(xué)校、醫(yī)院、銀行等之間構(gòu)成的聯(lián)盟鏈,采用改進后的基于節(jié)點綜合性能的Raft 共識算法,通過智能合約存儲權(quán)威機構(gòu)數(shù)字身份和檔案的摘要信息。ACA 享有檔案保護、管理、共享、獲取等服務(wù)。

        2)RESTful Operate 是去中心化應(yīng)用(decentralization application,DAPP)程序,本身不存儲任何檔案數(shù)據(jù)和身份信息,而是通過Web 為精準扶貧數(shù)據(jù)保護系統(tǒng)提供智能合約和調(diào)用接口。

        3)公有鏈采用基于權(quán)益證明(proof of stake,PoS)共識算法,以定期錨定數(shù)據(jù)快照的方式為聯(lián)盟鏈上的數(shù)據(jù)提供保護。

        4)私有IPFS 集群存儲了加密檔案的原始信息,采用分布式哈希表、比特流等技術(shù)保障了數(shù)據(jù)的安全性。

        2.2 智能合約體系

        智能合約是一種允許在第3 方不參與的情況下以代碼方式形成、驗證或執(zhí)行合同的計算機協(xié)議[17],它支持多樣化的實際應(yīng)用,能滿足鏈上數(shù)據(jù)不可更改的需求[18]。本方案的合約體系分為兩大部分,如圖2所示。其一是公有鏈中區(qū)塊數(shù)據(jù)驗證合約(block data verify contract,BDVC),用于存儲數(shù)據(jù)快照并定期比對;其二是聯(lián)盟鏈中的區(qū)塊數(shù)據(jù)保護合約(block data protection contract,BDPC),包括身份控制合約(identity controller contract,ICC)、數(shù)據(jù)管理合約(date manage contract,DMC)。

        圖2 智能合約框架Figure 2 Framework of smart contract

        ICC 作為全局合約管理所有ACA 的數(shù)字身份標識(authoritative certification authority-ID,ACA-ID)、對應(yīng)的公鑰(PubKey)及對應(yīng)的錢包賬戶。創(chuàng)建ICC 的同時也一起創(chuàng)建DMC與ACA 的數(shù)字身份。

        DMC 用于實現(xiàn)扶貧檔案的保護、驗證、恢復(fù)、共享和錢包等功能,包括數(shù)據(jù)存儲合約(data storage contract,DSC)、數(shù)據(jù)共享存儲合約(data sharing storage contract,DSSC)、數(shù)字身份授權(quán)合約(data identity authority contract,DIAC)和資金轉(zhuǎn)賬合約(fund transfer contract,FTC)。

        DIAC 合約用來驗證ACA 的身份;DSC 合約則用于存儲檔案的屬性信息,如數(shù)字檔案對象的IPFS 地址等;DSSC 合約用于存儲權(quán)威機構(gòu)間分享的檔案信息,包括檔案標識(document-ID,Doc-ID)、ACA-ID 和分享時間等。FTC 是基于SMPC 來搭建的,可以解決敏感的資金問題,由合約ICC 和DMC 調(diào)用。

        3 方法設(shè)計

        精準扶貧數(shù)據(jù)保護是通過公有鏈、聯(lián)盟鏈、IPFS 私有集群來完成的,其中數(shù)據(jù)以檔案的形式保存。ACA 利用智能合約將數(shù)據(jù)的摘要信息等存儲在鏈上的DSC 合約中,而完整的源數(shù)據(jù)則存儲于鏈下的私有IPFS 集群,數(shù)據(jù)檔案對象是JSON 形式的檔案信息組織結(jié)構(gòu)。本文利用聯(lián)盟鏈的信息定期與公有鏈快照信息比對的方式來保證數(shù)據(jù)的完整性。

        本文方案包括以下功能:數(shù)據(jù)新增與更新、數(shù)據(jù)共享、數(shù)據(jù)驗證、賬戶資金重構(gòu)。

        3.1 數(shù)據(jù)新增與更新

        數(shù)據(jù)檔案新增步驟如下:

        步驟1貧困用戶(以下簡稱用戶)首次訪問ACA 會生成一對隨機的密鑰key,此密鑰由用戶自己保存。

        步驟2ACA 通過RESTful Operate 向IPFS 集群發(fā)送請求,獲得一個空的存儲地址

        步驟3提取檔案Files 屬性,將檔案編號Doc-ID、版本號、創(chuàng)建時間、操作管理員、及檔案Files 哈希值一起合并生成Filesattrs。

        步驟4ACA 用密鑰key 對檔案Files 進行加密,與步驟3 中生成的Filesattrs一起生成檔案對象DOCJSON,DOCJSON 經(jīng)過二次加密儲存到步驟2 生成的IPFS 地址中。

        步驟5ACA 利用身份標識ACA-ID、檔案對象哈希值、Filesattrs的私鑰進行簽名,通過RESTful Operate 發(fā)送至合約DMC 處理。

        步驟6DMC 合約收到新增檔案請求后,調(diào)用ICC 合約中的公鑰信息和ACA-ID,然后DIAC 用公鑰對簽名進行解密,得到ACA-ID、、Filesattrs。比對ACA-ID 和DOCJSON 的哈希值,若身份檢查通過,則在合約中存儲Filesattrs,并完成Doc-ID、Filesattrs映射。

        算法1Saving of Data

        檔案更新操作步驟與新增類似,不同之處在于:貧困戶不用在ACA 重新生成key,而是根據(jù)Doc-ID 通過智能合約取出DOCJSON,并以用戶提供的key 解密后更新檔案。

        3.2 數(shù)據(jù)共享

        檔案的共享步驟如下:

        步驟1權(quán)威機構(gòu)A(ACA-A) 以私鑰SK-A 對待分享檔案編號Doc-ID、身份標識ACAID-A、目標機構(gòu)ACA-ID-B 等信息進行簽名,并通過RESTful Operate 發(fā)送到合約。

        步驟2DSSC 合約收到請求后,先用DIAC 對合約ICC 中ACA-A 的公鑰信息和ACA-ID-A 的簽名進行比對,比對無誤后將ACA-ID-B 添加至Doc-ID 對應(yīng)的分享列表。

        步驟3權(quán)威機構(gòu)B(ACA-B) 同樣利用私鑰SK-B 對檔案編號(Doc-ID) 和標識(ACAID-B) 等信息進行簽名,通過智能合約進行身份檢查。若檢查通過,則返回檔案屬性,抽取相關(guān)地址對應(yīng)的哈希值。

        步驟4ACA-B 從IPFS 集群中獲取加密的檔案對象,并通過用戶對象提供的密鑰key進行解密,獲得信息。

        算法2Sharing of Data

        3.3 數(shù)據(jù)驗證

        數(shù)據(jù)驗證分為兩部分:首先是公有鏈根據(jù)鏈上快照信息對聯(lián)盟鏈的數(shù)據(jù)進行驗證,其次是聯(lián)盟鏈對IPFS 集群中的數(shù)據(jù)進行驗證。

        ACA 對身份標識ACA-ID 和目標數(shù)據(jù)的檔案編號Doc-ID 等信息進行簽名,RESTful Operate 收到請求后調(diào)用公有鏈合約BDVC,獲取最新的區(qū)塊快照信息進行當前聯(lián)盟鏈數(shù)據(jù)比對,若不一致則返回聯(lián)盟鏈的數(shù)據(jù)異常。若一致,則繼續(xù)將簽名發(fā)送給智能合約DSC,合約收到請求后調(diào)用DISC 對ACA 的身份進行驗證,然后通過Doc-ID 找到存儲在鏈上的檔案屬性Filesattrs,抽取其中的通過從IPFS 中獲取DOCJSONCiphertext,通過用戶的密鑰key 解密得到DOCJSONPlaintext,并與比對,若不一致則返回IPFS 數(shù)據(jù)異常。

        在數(shù)據(jù)驗證過程中,若出現(xiàn)數(shù)據(jù)異常情況,則可以根據(jù)不同情況回溯。當聯(lián)盟鏈數(shù)據(jù)異常時,可以通過信息的比對來定位出異常區(qū)塊的高度,并重新創(chuàng)建區(qū)塊;當IPFS 數(shù)據(jù)異常時,可以通過Filesattrs回溯到正確的版本。從安全性和花銷方面考慮,除了由所有的ACA 組織的集體驗證外,每一次對數(shù)據(jù)更新前都要驗證歷史版本,并將驗證結(jié)果寫入Filesattrs,方便數(shù)據(jù)的回溯。

        算法3Validation of Data

        3.4 賬戶資金重構(gòu)

        資金轉(zhuǎn)賬合約是基于SMPC 搭建的。權(quán)威驗證機構(gòu)如銀行、基金,可給每一份貧困賬戶進行資金轉(zhuǎn)賬,由權(quán)威機構(gòu)直接創(chuàng)建交易。以官方賬戶Alice 向?qū)ο筚~戶Bob 轉(zhuǎn)賬為例,假設(shè)Bob 賬戶余額為Bob.Val,賬戶Alice 給賬戶Bob 的轉(zhuǎn)賬金額為X,具體轉(zhuǎn)賬過程如下。

        首先在FTC 引入了一個可信方Dealer[19],它在執(zhí)行過程中只是扮演驗證和通知的角色,而不會參與合約的計算,故不影響智能合約的公平性。執(zhí)行過程經(jīng)歷4 個階段:1)初始化,先驗證雙方身份,再征集節(jié)點,最后創(chuàng)建環(huán)境;2)秘密共享,官方賬戶Alice 的動作是轉(zhuǎn)賬金額X,對象賬戶Bob 的動作是收款,即X+Bob.Val;3)計算節(jié)點進行計算;4)兩個賬戶對秘密進行重構(gòu)。合約算法如下。

        算法4Fund transfer contract(SMPC)

        4 共識機制

        聯(lián)盟鏈采用改進后的Raft 一致性算法作為共識機制。首先對于Raft 共識算法來說,全節(jié)點的選舉意味著部分中心化,具有比其他共識機制更好的數(shù)據(jù)處理能力;其次聯(lián)盟鏈由各地區(qū)、各類不同功能的權(quán)威機構(gòu)組成,節(jié)點忠誠性問題的概率比發(fā)生故障的概率小得多,可見故障節(jié)點出現(xiàn)的概率遠大于作惡節(jié)點出現(xiàn)的概率。Raft 容忍故障節(jié)點的能力為(N ?1)/2,其中N為集群中總的節(jié)點數(shù)量,可以滿足實際需求。

        共識機制的主要思路是以節(jié)點的存儲證明和時空證作為共識算法,以節(jié)點的地區(qū)影響力等因素作為標準,通過比對綜合性能選舉出全節(jié)點。

        4.1 存儲證明、復(fù)制證明及時空證明

        存儲證明、復(fù)制證明和時空證明是整個共識機制的核心要點。存儲證明是礦工對于自身存儲空間的證明,是獲得權(quán)利的前提;復(fù)制證明(proof of replication,PoRep)是權(quán)益證明PoS 的一個實際形式,用以證明數(shù)據(jù)可由礦工獨立保存;時空證明(proofs of spacetime,PoSt)則是礦工在一定時間內(nèi)持續(xù)地生成復(fù)制證明和接受挑戰(zhàn)、驗證的過程。

        4.1.1 存儲證明

        存儲證明是每個存儲礦工為網(wǎng)絡(luò)提供的有效存儲空間占比,且任意一個節(jié)點都可查閱并且驗證其他所有節(jié)點的存儲算力。存儲算力可以定義為

        式中,n為全部網(wǎng)絡(luò)礦工數(shù)量,ptj為t時刻礦工的挖礦能力。

        這樣定義存儲算力主要考慮了以下幾個特點:

        1)存儲率計算透明,礦工存儲率和全網(wǎng)存儲率是公開的,且任何時刻都可通過區(qū)塊鏈查看。

        2)可驗證性,礦工在特定時間段內(nèi)需要生成存儲證明,以便驗證存儲算力的合法性。

        3)靈活性,礦工不但能簡便地提交存儲算力,而且能隨時以提高自身存儲空間的方式增加自身算力。

        4.1.2 復(fù)制證明

        證明者P受到網(wǎng)絡(luò)委托,存儲n個數(shù)據(jù)D的獨立備份;當檢驗者V向P提出挑戰(zhàn)時,P需要向V證明確實存儲了一個備份。這就是PoRep 一次驗證的過程。

        存儲證明共識機制的角色和過程可以抽象成挑戰(zhàn)者、證明者、檢驗者。它們可以是礦工、用戶或者任何網(wǎng)絡(luò)內(nèi)的其他角色。涉及的定義如下:

        1)挑戰(zhàn)

        系統(tǒng)對礦工發(fā)起提問,可能是一個問題或者一系列問題。若礦工能正確答復(fù),則挑戰(zhàn)成功,否則失敗。

        2)證明者

        證明者一般指礦工,向系統(tǒng)提供能完成挑戰(zhàn)的證明。

        3)驗證者

        向礦工發(fā)起挑戰(zhàn),從而檢測礦工是否完成了數(shù)據(jù)存儲任務(wù)。

        4)數(shù)據(jù)

        用戶向礦工提交的需要存儲或者礦工已經(jīng)存儲的數(shù)據(jù)。

        5)驗證

        礦工完成挑戰(zhàn)時的回答。

        4.1.3 時空證明PoSt

        每間隔一定的區(qū)塊高度,礦工需要提交一次存儲證明來驗證合法性,這需要網(wǎng)絡(luò)的大部分存儲算力。每一個新區(qū)塊生成,都會更新當前分配表,包括新的存儲任務(wù)、刪除的過期任務(wù)等。存儲時空證明容量Mtj即t時刻礦工的挖礦能力,只需查詢并驗證分配表中的記錄即可。

        如圖3所示,挑戰(zhàn)者在PoRep 循環(huán)重復(fù)執(zhí)行i輪,輸入一個隨機挑戰(zhàn)參數(shù)c,通過循環(huán)次數(shù)i生成一個新的挑戰(zhàn);以此找到一條能夠到達默克爾根的默克爾路徑,并生成當前時刻的證明;再由上一輪生成的證明去生成新的挑戰(zhàn),進而生成當前的礦工證明,反復(fù)迭代t次,將這個過程生成的證明序列全部交給檢驗者。經(jīng)過時間T后將最后一次結(jié)果作為PoSt 的證明,接受反向驗證。

        圖3 時空證明流程圖Figure 3 Flow chart of spatiotemporal proof

        PoSt 實際上是在一段時間內(nèi)間隔生成的一系列PoRep 的證明。針對PoSt 和PoRep 的實現(xiàn)過程基本相似,但在證明生成環(huán)節(jié)中是不同的。生成證明并非一次結(jié)束,而是需要反復(fù)迭代的。

        4.2 全節(jié)點選舉

        全節(jié)點就是領(lǐng)導(dǎo)節(jié)點。根據(jù)網(wǎng)絡(luò)分片的原理將區(qū)塊鏈網(wǎng)絡(luò)劃分為若干分片,并在每個分片中選取一個全節(jié)點,讓其擔任該分片內(nèi)領(lǐng)導(dǎo)的角色。以往的方案存在負載均衡性和節(jié)點可靠性問題。

        1)負載均衡性

        讓所有的節(jié)點按照一定時間間隔輪流充當全節(jié)點,則所有節(jié)點都處于同一地位,就不存在惡意篡取全節(jié)點的弊端,但沒有考慮到各節(jié)點在硬件性能、存儲能力、穩(wěn)定性、可信度方面的差別,造成存儲負載不均衡的問題。

        2)節(jié)點可靠性

        在實際方案中,綜合性能高的節(jié)點可能存在可靠性不足的問題。這種節(jié)點可能不為系統(tǒng)提供存儲能力,甚至惡意充當女巫節(jié)點來破壞系統(tǒng),以致降低系統(tǒng)的存儲效率。

        除此之外,在實際應(yīng)用場景中還應(yīng)將節(jié)點的地區(qū)影響力作為加權(quán)標準。綜上所述,全節(jié)點的選擇要考慮三方面:節(jié)點性能、可靠性以及地區(qū)影響力,只有這樣才能讓系統(tǒng)的存儲性能達到最優(yōu)。

        4.2.1 節(jié)點性能計算

        節(jié)點性能(node performance)由存儲容量(storage)、CPU 性能、GPU 性能、磁盤I/O速率、內(nèi)存大小、帶寬速率這些因素共同決定。本方案根據(jù)實際工程方案中的加權(quán)求和對節(jié)點性能進行計算

        式中:P(Nodei) 表示節(jié)點的性能;S為節(jié)點的存儲量;Ci表示CPU 的性能;Gi表示GPU的性能;Di為磁盤IO 的讀取數(shù)據(jù)的速率;Mi為內(nèi)存大??;Bi為網(wǎng)絡(luò)的帶寬;ki為加權(quán)值,即對節(jié)點性能的影響因子。

        4.2.2 節(jié)點可靠性計算

        當本方案中所有節(jié)點為系統(tǒng)提供存儲算力時,系統(tǒng)都會給出節(jié)點的可靠性評價Ei,且Ei ∈[0,1]。隨著時間的推移,可靠性評價會隨著時間而衰減。

        參考實際工程可將時間對可靠性的影響表示為T(Ei)=e?|tnow?tm|。其中,T(Ei) 表示時間衰減程度,tnow為當前時間,tm為系統(tǒng)對節(jié)點的評價時間。這樣節(jié)點i的可靠性可表示為

        4.2.3 節(jié)點綜合性能計算

        在本方案中,全節(jié)點的綜合性能既要考慮節(jié)點性能又要考慮節(jié)點的可靠性,則綜合性能的公式為

        式中,H(Nodei) 表示節(jié)點的綜合性能,k1、k2、k3分別表示節(jié)點性能、可靠性、地區(qū)影響力對綜合性能的影響因子。本文將分片內(nèi)的節(jié)點進行綜合性能的排行,選擇出綜合性能值最高的節(jié)點作為分片內(nèi)的全節(jié)點。在實際項目中,可能會出現(xiàn)綜合性能值相同的節(jié)點,此時將可靠性值最高的節(jié)點選為領(lǐng)導(dǎo)節(jié)點。

        基于節(jié)點綜合性能的Raft 共識機制將分片中節(jié)點綜合性能的算力進行排行,根據(jù)算力的排行次序選出領(lǐng)導(dǎo)節(jié)點和候選人節(jié)點。領(lǐng)導(dǎo)節(jié)點為所處分片中其他節(jié)點安排存儲等資源,候選人節(jié)點則作為領(lǐng)導(dǎo)節(jié)點的備份節(jié)點。當領(lǐng)導(dǎo)節(jié)點突然掉線或者遇到一些突發(fā)情況而不再工作時,候選人節(jié)點立即成為新的領(lǐng)導(dǎo)節(jié)點。

        4.2.4 共識機制的實現(xiàn)

        在共識機制中,所有節(jié)點提供自己的存儲算力。存儲算力越大的節(jié)點被作為記賬節(jié)點的概率越大。礦工需要持續(xù)生成時空證明,以便確保他們存儲了文件的備份。每一個存儲證明也是產(chǎn)生下一個區(qū)塊的選票。

        系統(tǒng)在每一個固定的時間段從全體礦工中競選出領(lǐng)導(dǎo)節(jié)點,每個時段選出的領(lǐng)導(dǎo)節(jié)點最好是一個。若沒有選出領(lǐng)導(dǎo)節(jié)點,則添加一個空的區(qū)塊;若有多個領(lǐng)導(dǎo)節(jié)點則出現(xiàn)分支,但這不影響區(qū)塊鏈主鏈的交易。最佳的情況是每次剛好有一個領(lǐng)導(dǎo)節(jié)點產(chǎn)生,實際上為了減少分支情況的出現(xiàn),可以通過修改網(wǎng)絡(luò)參數(shù)盡可能滿足只出現(xiàn)一個領(lǐng)導(dǎo)節(jié)點的要求。

        競選出的領(lǐng)導(dǎo)節(jié)點負責新區(qū)塊的創(chuàng)建,并且廣播給全網(wǎng)其他參與者。參與者通過對新區(qū)塊提交簽名的方式來證明新的區(qū)塊就此產(chǎn)生。網(wǎng)絡(luò)參與者通過存儲證明生成選票,則競選算法和驗證算法如下。

        每位礦工必須符合的標準為

        式中:T為這一區(qū)塊的選票;表示此時的礦工存儲算力;L為Hash 函數(shù)得到的結(jié)果,sig 為礦工的數(shù)字簽名。如果上述驗證通過,則礦工節(jié)點生成πit=sig(t,ticket)。一個節(jié)點的算力越大,競選成功的概率也越大。競選成功的概率近似于該節(jié)點存儲算力占全網(wǎng)總存儲算力的比例。

        網(wǎng)絡(luò)節(jié)點每接受一個新的區(qū)塊就開始驗證,具體步驟如下:

        步驟1驗證簽名的合法性,πit是否由礦工簽名;

        步驟2檢查Pti是否為t時刻礦工的存儲算力;

        步驟3檢查對應(yīng)存儲算力下的密碼學(xué)問題是否通過。

        根據(jù)存儲算力的共識機制具有以下幾個特性:

        1)公平性

        每位參與者在每次選舉時都只有一次機會,且競選成功率與其存儲算力所占的比例基本一致,在期望上成功率與存儲效率是對等的,對網(wǎng)絡(luò)貢獻越多的節(jié)點越有可能選為記賬節(jié)點。

        2)不可偽造性

        驗證信息由礦工私鑰簽名,其他人無法偽造。

        3)可驗證性

        被選出的領(lǐng)導(dǎo)節(jié)點的時空證明會提交給其他節(jié)點驗證,以確保簽名一致和存儲證明一致,并且任何節(jié)點都能驗證這一過程。

        5 測試及分析

        5.1 性能分析

        精準扶貧數(shù)據(jù)保護方案構(gòu)建的系統(tǒng)是基于區(qū)塊鏈技術(shù)實現(xiàn)的去中心化應(yīng)用,采用開源的以太坊平臺和用于輔助存儲應(yīng)用中的大文本數(shù)據(jù)系統(tǒng)IPFS 共同搭建在一臺主機上,主機的硬件配置為16 GB 內(nèi)存、i5 處理器和500 GB 硬盤。使用虛擬化軟件創(chuàng)建出5 臺內(nèi)存為2 GB的虛擬機并配有64 位的Ubuntu 14.04.1 操作系統(tǒng),用于搭建以太坊網(wǎng)絡(luò)和IPFS 網(wǎng)絡(luò)。

        5.1.1 數(shù)據(jù)存證測試

        系統(tǒng)使用Postman 工具對鏈上數(shù)據(jù)進行存證測試[20]。Postman 工具可以模擬客戶端發(fā)送任意HTTP 網(wǎng)絡(luò)請求,接收服務(wù)端的正常響應(yīng)并顯示出返回的完整數(shù)據(jù)。

        使用Postman 發(fā)送HTTP 請求到后臺服務(wù)器,并接受后臺響應(yīng)的JSON 格式的數(shù)據(jù)。若響應(yīng)的數(shù)據(jù)中包含了區(qū)塊鏈上鏈產(chǎn)生的特征哈希值,并且可以使用該值查詢到原先上鏈的完整數(shù)據(jù),即可證明系統(tǒng)的存證功能測試通過。

        首先將需要上傳的扶貧數(shù)據(jù)封裝成JSON 格式的數(shù)據(jù),在測試工具中填寫對應(yīng)服務(wù)器的IP、端口、路徑和請求方式。使用工具發(fā)送請求后獲得后臺響應(yīng)結(jié)果,如圖4所示。

        圖4 發(fā)送請求后臺響應(yīng)結(jié)果Figure 4 Background response result of sending request

        扶貧數(shù)據(jù)已作為一筆交易成功添加到區(qū)塊中,并且系統(tǒng)能夠返回交易對應(yīng)的具體編號ID作為其存在區(qū)塊鏈的特征屬性值,進而獲取詳細信息,如圖5所示。

        圖5 詳細信息后臺響應(yīng)結(jié)果Figure 5 Background response result of detailed information

        5.1.2 區(qū)塊鏈的性能測試

        使用壓力測試工具JMeter 來測試區(qū)塊鏈的性能[20]。JMeter 建立多線程組并給出目標時間t0,每個線程在t0時間內(nèi)單獨發(fā)送一次請求,從而模擬多用戶同時在線對服務(wù)器接口調(diào)用的并發(fā)場景。每秒產(chǎn)生的并發(fā)量對于調(diào)用功能接口會產(chǎn)生相當大的負載量,用此工具可以得出每秒的平均交易事務(wù)量(transaction per second,TPS)STPS,進一步分析系統(tǒng)底層區(qū)塊鏈的性能。

        選取5 組不同數(shù)量級的壓力測試,即1 000、2 000、3 000、4 000、5 000,并將t0設(shè)置為1 s。從5 組不同數(shù)量級的測試中可以選取3 000 次的測試結(jié)果作為本次系統(tǒng)的最優(yōu)測試情況,所對應(yīng)的上鏈接口測試總結(jié)報告詳情如表1所示。

        表1 3 000 線程數(shù)的上鏈接口壓力測試表Table 1 Pressure test table for 3 000 threads

        分析以上結(jié)果可以得出:3 000 次用戶并行請求對接口調(diào)用成功率為100%,每秒平均吞吐量STPS可達307.6 tps,最高吞吐量為583.2 tps,具體的TPS 測試報告如圖6所示。

        圖6 線程組數(shù)為3 000 的數(shù)據(jù)上鏈接口的TPS 測試報告Figure 6 TPS test report of data link interface with 3 000 thread groups

        綜上所述,本文所提出的精準扶貧數(shù)據(jù)保護方案構(gòu)建的系統(tǒng)能夠滿足數(shù)據(jù)鏈上存證功能的要求,并在接口承載壓力一定的情況下所表現(xiàn)出的TPS 滿足系統(tǒng)需求。

        5.2 安全性評估

        方案的安全性可以從數(shù)據(jù)保密性、完整性、可追溯等方面分析。在保密性方面,若以SM4作為加密算法將數(shù)據(jù)加密,則敵手攻破貧困戶密鑰獲取的經(jīng)濟收益遠低于成本。因此,方案的安全性評估主要從數(shù)據(jù)的完整性和可追溯性方面加以分析。

        本文方案以聯(lián)盟鏈與公有鏈結(jié)合的方式定期存儲聯(lián)盟鏈區(qū)塊快照信息,實現(xiàn)了對聯(lián)盟鏈上數(shù)據(jù)的保護和溯源,這樣對數(shù)據(jù)的完整性和可追溯性的分析應(yīng)從區(qū)塊數(shù)據(jù)篡改方面入手。

        假設(shè)攻擊者試圖篡改最新區(qū)塊前第h個區(qū)塊的數(shù)據(jù),選擇以分叉的方式替代區(qū)塊,則需要重新計算并生成從第h區(qū)塊到當前高度的所有區(qū)塊,并且廣播全網(wǎng)[21]。假設(shè)當前公有鏈中誠實節(jié)點的算力為p,在當前計算難度下的區(qū)塊哈希值含有g(shù)個前綴二進制0,惡意節(jié)點算力為q,則在沒有大量節(jié)點進出的情況下計算難度基本保持不變。假設(shè)沒有新的節(jié)點進入或者退出,則每秒誠實節(jié)點產(chǎn)生新區(qū)塊的概率為ω=p/2g,惡意節(jié)點產(chǎn)生新區(qū)塊的概率為μ=q/2g。當前區(qū)塊高度差為h0,那么在第秒時每秒高度差hi的變化有3 種可能的結(jié)果[22],分別為X1、X2、X3。其中:X1代表惡意節(jié)點沒有生成區(qū)塊而誠實節(jié)點生成區(qū)塊,X2代表惡意節(jié)點生成區(qū)塊而誠實節(jié)點沒有生成區(qū)塊,X3代表兩者都沒有產(chǎn)生區(qū)塊。

        3 種事件所代表的概率可以表示為

        當hi+1=?1 時,說明惡意節(jié)點追上誠實節(jié)點,數(shù)據(jù)被篡改。假設(shè)在T秒內(nèi)會出現(xiàn)t種結(jié)果,則每種結(jié)果出現(xiàn)的次數(shù)用隨機變量m和n表示。其中X1出現(xiàn)的次數(shù)為n,X2出現(xiàn)的次數(shù)為m。要想成功篡改數(shù)據(jù),X2至少為n+h+1。設(shè)j代表m與至少發(fā)生次數(shù)的差值,則m=n+h+1+j,X3為t ?m ?n。高度差hi+1的變化概率符合多項式分布[21],其中n ∈[0,(t ?h ?1)/2],j ∈[0,t ?2n ?h ?1]。

        在T秒內(nèi),惡意節(jié)點追上誠實節(jié)點的概率為

        故惡意節(jié)點成功的概率會隨著h的增大而減小。在扶貧數(shù)據(jù)保護的實際應(yīng)用場景中,篡改等操作往往與數(shù)據(jù)錄入日期相差久遠,因此高度h的數(shù)量級是巨大的,可見惡意節(jié)點成功概率幾乎為0。

        6 結(jié) 語

        本文基于IPFS、數(shù)字簽名和SMPC 等技術(shù)提出了一種基于區(qū)塊鏈的精準扶貧數(shù)據(jù)保護方案,有效地保證了數(shù)據(jù)的保密性和完整性,并提供了一定的溯源能力。在實際工作過程中,可根據(jù)追溯版本號明確責任,但在貧困戶更加細粒度的隱私保護問題和鏈下數(shù)據(jù)的容災(zāi)備份方面依然有所欠缺,尚需進一步研究。

        av国产自拍在线观看| 色一情一区二区三区四区| 性色av无码一区二区三区人妻| 精品少妇大屁股白浆无码| 午夜福利不卡无码视频| 久久婷婷国产综合精品| 国产一区资源在线播放| 中文精品久久久久人妻不卡| 人人妻人人爽人人澡人人| 狠狠色狠狠色综合| 日韩在线精品在线观看| 亚洲av熟女天堂久久天堂| 在线精品首页中文字幕亚洲| 国产成人亚洲综合无码品善网| 丰满多毛少妇做爰视频| 国产精品女同久久久久久| 亚洲一区二区三区精品久久| 青青草激情视频在线播放| 无码国产精成人午夜视频一区二区| 丰满人妻熟妇乱又伦精品软件| 国产污污视频| 无码视频一区=区| 国内自拍视频一区二区三区 | 2018天天躁夜夜躁狠狠躁| 无码国产色欲xxxxx视频| 亚洲Av无码专区尤物| 亚洲无毛成人在线视频| 午夜福利理论片在线观看| 成人欧美一区二区三区白人| 男男互吃大丁视频网站| 国产三级国产精品国产专播| 国产精品一区二区日本| 亚洲无线码一区二区三区| 亚洲av成人一区二区三区av| 2020亚洲国产| 日日麻批视频免费播放器| 午夜大片在线播放观看| 丰满少妇人妻久久久久久| 天堂а√在线最新版中文| 久久久精品亚洲懂色av| 日本在线观看一二三区|