王 冠 丁 浩
1(北京工業(yè)大學信息學部 北京 100124) 2(可信計算北京市重點實驗室 北京 100124)
在社會信息快速發(fā)展的今天,跨部門的電子政務業(yè)務協(xié)同辦公非常重要.《國務院關(guān)于加快推進全國一體化在線政務服務平臺建設的指導意見》(國發(fā)〔2018〕27 號)要求,加強頂層設計,整合各類政務服務資源,跨地區(qū)、跨部門、跨層級數(shù)據(jù)共享和業(yè)務協(xié)同,全流程網(wǎng)上辦理,推動線上線下深度融合,推進綜合保障一體化,推進公共支撐一體化.推動電子政務發(fā)展可以增強政府的服務能力[1],但是現(xiàn)在各政務部門仍然存在數(shù)據(jù)庫重復建設、數(shù)據(jù)資源散落在各部門從而成為數(shù)據(jù)孤島以及部門信息不互通、部門間政務服務相互分割的問題.因此如何實現(xiàn)數(shù)據(jù)跨部門安全共享并保證數(shù)據(jù)在共享時來源可知、保證數(shù)據(jù)真實完整、防止數(shù)據(jù)隱私泄露以及避免數(shù)據(jù)使用者在使用非法數(shù)據(jù)或者數(shù)據(jù)提供者提供假冒數(shù)據(jù)后出現(xiàn)抵賴現(xiàn)象難以進行追責等是一個亟需解決的問題.針對跨部門間的業(yè)務協(xié)同數(shù)據(jù)共享這一應用場景,本文提供一種基于區(qū)塊鏈的業(yè)務協(xié)同數(shù)據(jù)安全共享方案,該方案通過區(qū)塊鏈和IPFS結(jié)合并利用同態(tài)加密技術(shù)實現(xiàn)數(shù)據(jù)來源可知、保證數(shù)據(jù)真實、防止數(shù)據(jù)隱私泄露、避免用戶在數(shù)據(jù)共享過程中進行抵賴等,同時通過Token授權(quán)防止數(shù)據(jù)非法使用,保證數(shù)據(jù)擁有者對數(shù)據(jù)擁有唯一控制權(quán),最終應用于電子政務環(huán)境下實現(xiàn)跨部門間的數(shù)據(jù)安全共享.
隨著區(qū)塊鏈[2]技術(shù)的發(fā)展,區(qū)塊鏈環(huán)境下數(shù)據(jù)的安全共享得到了很大的進展,金泳等人[3]提出基于區(qū)塊鏈的大數(shù)據(jù)安全共享需求模型架構(gòu),該模型雖然解決了數(shù)據(jù)不可篡改,保證了數(shù)據(jù)安全性和完整性,但是將數(shù)據(jù)直接存儲在區(qū)塊鏈上增加了區(qū)塊鏈的存儲壓力,降低了區(qū)塊鏈中消息傳播的速度以及消息處理的效率,同時在模型中加入了可信第三方違背了區(qū)塊鏈去中心化的初衷,從而存在中心化相應的缺點.余益民等人[4]研究了基于區(qū)塊鏈的政務信息資源共享模型,該模型具有實時交換、數(shù)據(jù)一致和可溯源等特點,但是最大的遺憾就是將大量文件存儲在本地,沒有進行安全防護.郭乃網(wǎng)等人[5]提出了一種隱私數(shù)據(jù)共享協(xié)議,該協(xié)議實現(xiàn)了點對點的數(shù)據(jù)安全共享,但只限于用戶具有共同索引的數(shù)據(jù)交換共享,并不能得到廣泛的應用.Diallo等人[6]運用區(qū)塊鏈技術(shù)和分散自治組織(DAO)改進了電子政務系統(tǒng).Hou[7]分析了當前區(qū)塊鏈應用于電子政務的框架、難點和挑戰(zhàn),探討了區(qū)塊鏈技術(shù)對電子政務和公共服務發(fā)展的貢獻.Zheng等人[8]提出了一種基于區(qū)塊鏈的可信數(shù)據(jù)共享方案,使用區(qū)塊鏈不可篡改特性防止共享數(shù)據(jù)被篡改,使用Paillier同態(tài)加密[9]算法實現(xiàn)共享數(shù)據(jù)的保密性,然而該方案將數(shù)據(jù)直接存儲在區(qū)塊鏈中降低了區(qū)塊共識效率.區(qū)塊鏈[10-11]具有去中心化、集體維護、數(shù)據(jù)防篡改和分布式運行等特點,在數(shù)據(jù)安全共享中最大的問題就是如何實現(xiàn)數(shù)據(jù)的隱私保護[12],OpenPDS是一個個人元數(shù)據(jù)管理框架[13],使用了SafeAnswers機制:一種在個人層面保護元數(shù)據(jù)隱私的使用方法,該方案將訪問權(quán)限交給第三方失去了對數(shù)據(jù)的控制權(quán).針對個人數(shù)據(jù)的隱私保護,Zyskind等人[14]提出了一種協(xié)議,實現(xiàn)在任何給定的時間數(shù)據(jù)提供者都可以更改權(quán)限集并取消對以前收集的數(shù)據(jù)的訪問,可是隨著數(shù)據(jù)權(quán)限集的更改增加了不必要的資源消耗.Liu等人[15]介紹了政務數(shù)據(jù)共享的隱私安全問題,但只針對數(shù)據(jù)共享過程中的數(shù)據(jù)隱私保護卻沒有針對數(shù)據(jù)在共享后實現(xiàn)數(shù)據(jù)隱私保護.Feng等人[16]對區(qū)塊鏈的隱私加密防御機制進行批判性的比較分析,并分析得出現(xiàn)有的隱私保護威脅.
通過對現(xiàn)有方案的分析可以發(fā)現(xiàn)區(qū)塊鏈促進了數(shù)據(jù)安全共享.然而不能忽視的是數(shù)據(jù)隱私保護仍然是一個挑戰(zhàn).此外,數(shù)據(jù)來源、數(shù)據(jù)真實性、數(shù)據(jù)可控以及防止用戶在數(shù)據(jù)共享過程中抵賴等數(shù)據(jù)安全共享問題都是本文所關(guān)注的.
為了保證數(shù)據(jù)擁有者可以對數(shù)據(jù)擁有可控權(quán),基于區(qū)塊鏈的業(yè)務協(xié)同數(shù)據(jù)安全共享方案除了包含數(shù)據(jù)提供者和數(shù)據(jù)使用者以外還需要數(shù)據(jù)擁有者實體.各部門在數(shù)據(jù)共享前需要經(jīng)過FabricCA進行身份認證,通過認證的節(jié)點可以加入到區(qū)塊鏈網(wǎng)絡中,并頒布身份證書.共享數(shù)據(jù)時需要將數(shù)據(jù)信息存儲到區(qū)塊鏈當中,但是由于區(qū)塊的存儲容量有限,交易數(shù)據(jù)量大容易引起交易處理時間長、共識效率低、網(wǎng)絡出現(xiàn)擁堵等問題,所以為了避免在區(qū)塊鏈中存儲非必要的信息,引入了分布式的數(shù)據(jù)存儲網(wǎng)絡(interplanetary file system,IPFS)[17].在業(yè)務協(xié)同辦理過程中,各部門辦理業(yè)務時對共享數(shù)據(jù)處理的業(yè)務邏輯不同,所以可以通過編寫不同智能合約實現(xiàn)不同業(yè)務邏輯.綜上可知,基于區(qū)塊鏈的業(yè)務協(xié)同數(shù)據(jù)安全共享方案模型共涉及7個實體,分別是區(qū)塊鏈、本地數(shù)據(jù)庫、IPFS、智能合約和用戶實體,其中有3類用戶實體,分別是數(shù)據(jù)擁有者、數(shù)據(jù)提供者以及數(shù)據(jù)使用者.數(shù)據(jù)擁有者是在業(yè)務辦理過程中與數(shù)據(jù)有關(guān)聯(lián)的需要進行業(yè)務申請的個人或部門;數(shù)據(jù)提供者是在業(yè)務辦理過程中業(yè)務材料存放的部門;數(shù)據(jù)使用者是在業(yè)務辦理過程中使用數(shù)據(jù)辦理業(yè)務的部門.方案模型如圖1所示:
圖1 方案模型圖
上述方案模型結(jié)合了區(qū)塊鏈、IPFS和智能合約并通過Paillier算法達到保護共享數(shù)據(jù)隱私,實現(xiàn)數(shù)據(jù)在業(yè)務協(xié)同中安全共享.該方案針對電子政務環(huán)境下跨部門間的業(yè)務協(xié)同數(shù)據(jù)共享這一應用場景,構(gòu)建Fabric[18]環(huán)境,并與去中心化的IPFS結(jié)合,通過脫鏈的形式存儲共享數(shù)據(jù),其中原始數(shù)據(jù)存儲在各部門數(shù)據(jù)庫中,需要共享的數(shù)據(jù)加密后存儲在IPFS中,數(shù)據(jù)存儲地址等元數(shù)據(jù)存儲在Fabric聯(lián)盟鏈網(wǎng)絡中,通過這種方式實現(xiàn)數(shù)據(jù)共享,并根據(jù)業(yè)務邏輯通過智能合約完成相應數(shù)據(jù)處理,得到數(shù)據(jù)處理結(jié)果,實現(xiàn)共享數(shù)據(jù)處理結(jié)果而不共享原始數(shù)據(jù),避免數(shù)據(jù)隱私泄露,實現(xiàn)數(shù)據(jù)跨部門安全共享.
在上述模型中,本文提出的方案主要針對3個緊密相連的場景.在第1個場景中,如果數(shù)據(jù)擁有者需要辦理某種業(yè)務,則向數(shù)據(jù)提供者申請業(yè)務辦理所需數(shù)據(jù)信息,數(shù)據(jù)提供者判斷申請數(shù)據(jù)是否對應數(shù)據(jù)擁有者身份,驗證通過后,加密并上傳數(shù)據(jù),同時通知數(shù)據(jù)擁有者數(shù)據(jù)的存儲地址等信息,第2個場景開始.數(shù)據(jù)擁有者將數(shù)據(jù)使用權(quán)授權(quán)給業(yè)務辦理人員,即數(shù)據(jù)使用者,數(shù)據(jù)使用者獲得授權(quán)后向數(shù)據(jù)提供者申請使用數(shù)據(jù),驗證通過后調(diào)用智能合約完成數(shù)據(jù)處理共享數(shù)據(jù)處理結(jié)果,數(shù)據(jù)使用者解密得到數(shù)據(jù)處理結(jié)果完成數(shù)據(jù)共享.在第3個場景下,數(shù)據(jù)共享流程以交易的形式進行分布式共識,最終記錄在區(qū)塊鏈中.例如,像發(fā)票這類數(shù)據(jù)是一次性使用的,則共享次數(shù)不能超過1次,并且數(shù)據(jù)共享流程上鏈有利于業(yè)務辦理公開透明,提供審計等功能.
在該模型下,數(shù)據(jù)擁有者從數(shù)據(jù)使用者獲取辦理業(yè)務需要的數(shù)據(jù)后向?qū)臄?shù)據(jù)提供者申請共享數(shù)據(jù),作為整個模型的交互流起點;隨著數(shù)據(jù)提供者在共享平臺發(fā)布共享數(shù)據(jù)并將數(shù)據(jù)存儲到分布式的IPFS平臺中;最后在共享平臺中進行數(shù)據(jù)授權(quán).通過實用拜占庭容錯機制[19-20]解決分布式區(qū)塊鏈網(wǎng)絡達成一致的問題,實現(xiàn)區(qū)塊共識,保證數(shù)據(jù)共享流程不可篡改,營造良好的跨部門間業(yè)務協(xié)同數(shù)據(jù)共享環(huán)境.該模型數(shù)據(jù)共享過程中各參與方通過FabricCA生成的公私鑰進行信息交互,公鑰作為各部門的代號向外界公開,私鑰由各部門自行保管.用戶需要廣播信息時可以通過私鑰對信息進行加密,從而確保交易信息的真實性.該方案數(shù)據(jù)共享過程以交易的形式寫入?yún)^(qū)塊鏈當中,而用戶是區(qū)塊鏈網(wǎng)絡中的各個節(jié)點,所以在實際數(shù)據(jù)共享過程中數(shù)據(jù)共享是在用戶間直接完成的,同時網(wǎng)絡中的各節(jié)點對該交易檢驗達成共識,保證交易不可篡改,一旦在數(shù)據(jù)共享過程中發(fā)生糾紛,可以從區(qū)塊鏈中的查詢記錄進行追溯,維護用戶權(quán)益.本文方案模型的主要流程如下:
1)數(shù)據(jù)擁有者向數(shù)據(jù)提供者申請業(yè)務辦理所需的共享數(shù)據(jù);
2)數(shù)據(jù)提供者驗證數(shù)據(jù)擁有者身份并同意申請后按數(shù)據(jù)擁有者需求將數(shù)據(jù)加密后通過哈希運算得到密文摘要,然后通過上傳數(shù)據(jù)智能合約自動存儲數(shù)據(jù)密文至IPFS中并返回數(shù)據(jù)內(nèi)容哈希值,然后將相應解密密鑰以及數(shù)據(jù)內(nèi)容哈希值發(fā)送給數(shù)據(jù)擁有者,同時將相關(guān)數(shù)據(jù)信息存儲本地數(shù)據(jù)庫并將數(shù)據(jù)內(nèi)容哈希值、密文摘要和數(shù)據(jù)相關(guān)屬性上鏈存儲到區(qū)塊鏈當中;
3)數(shù)據(jù)擁有者為數(shù)據(jù)使用者頒發(fā)使用數(shù)據(jù)的授權(quán)令牌Token,并通過授權(quán)令牌Token一鍵申請業(yè)務辦理,同時將授權(quán)令牌Token和授權(quán)部門等其他授權(quán)信息以交易的形式上傳到區(qū)塊鏈中,保證數(shù)據(jù)授權(quán)可追溯,防止數(shù)據(jù)擁有者對已授權(quán)的數(shù)據(jù)進行授權(quán)抵賴和數(shù)據(jù)使用者使用不合法數(shù)據(jù)進行抵賴行為產(chǎn)生;
4)數(shù)據(jù)使用者收到業(yè)務辦理申請后觸發(fā)業(yè)務申請智能合約,驗證業(yè)務辦理所需的材料是否齊全,若驗證成功則開始進行業(yè)務辦理,否則業(yè)務辦理結(jié)束并通知數(shù)據(jù)擁有者;
5)數(shù)據(jù)使用者開始進行業(yè)務辦理需要根據(jù)數(shù)據(jù)擁有者頒發(fā)的授權(quán)令牌Token向數(shù)據(jù)提供者申請使用數(shù)據(jù);
6)數(shù)據(jù)提供者得到數(shù)據(jù)使用申請后觸發(fā)驗證智能合約,驗證數(shù)據(jù)使用者身份以及授權(quán)令牌Token的真?zhèn)?,驗證成功后在本地數(shù)據(jù)庫中查詢數(shù)據(jù)是否滿足共享條件,若滿足共享條件則向數(shù)據(jù)使用者發(fā)送相應密鑰并觸發(fā)數(shù)據(jù)處理智能合約,同時在本地數(shù)據(jù)庫中更新數(shù)據(jù)相關(guān)屬性,并將數(shù)據(jù)內(nèi)容哈希值和更新后的數(shù)據(jù)相關(guān)屬性上鏈;
7)數(shù)據(jù)使用者通過密鑰解密數(shù)據(jù)處理結(jié)果,完成跨部門間業(yè)務協(xié)同辦理.
根據(jù)上述方案針對的3個場景,下面分析數(shù)據(jù)上傳、數(shù)據(jù)授權(quán)、數(shù)據(jù)處理以及區(qū)塊鏈記錄4個關(guān)鍵技術(shù).
該過程中需要先對數(shù)據(jù)進行加密后再對數(shù)據(jù)進行上傳存儲,方案中用到的加密算法為同態(tài)加密中的Paillier算法,數(shù)據(jù)上傳存儲是將加密數(shù)據(jù)存儲至IPFS的流程添加到upload_file智能合約中,部署upload_file智能合約并同步到區(qū)塊鏈網(wǎng)絡中,通過upload_file智能合約自動存儲數(shù)據(jù)密文到IPFS中并返回相應數(shù)據(jù)內(nèi)容哈希值,將數(shù)據(jù)內(nèi)容哈希值等信息存儲到區(qū)塊鏈上.
1)加密數(shù)據(jù)
以下面場景的數(shù)據(jù)為例介紹數(shù)據(jù)加密.場景:某市領導為了了解本市的薪資水平,市統(tǒng)計局機構(gòu)B對市內(nèi)產(chǎn)業(yè)結(jié)構(gòu)及各產(chǎn)業(yè)平均薪資情況進行統(tǒng)計,但是對各產(chǎn)業(yè)職工具體薪資需要進行保密.下面以市統(tǒng)計局機構(gòu)B(以下簡稱機構(gòu)B)對機構(gòu)A的統(tǒng)計進行分析描述數(shù)據(jù)加密.
機構(gòu)A中的薪資數(shù)據(jù)由h條記錄和k個字段組成,如下所示:
(1)
(2)
C=EncHE(D′,r,PKHE)=gD′rnmodn2.
(3)
2)上傳數(shù)據(jù)
該方案中的共享數(shù)據(jù)通過加密后由智能合約自動完成數(shù)據(jù)上傳,下面是上傳數(shù)據(jù)upload_file智能合約:
算法1.上傳數(shù)據(jù)upload_file.
輸入:數(shù)據(jù)密文路徑和文件名;
輸出:數(shù)據(jù)內(nèi)容哈希值.
func (t*SimpleChaincode)upload_file(stub shim.ChaincodeStubInterface,args []string)pb.Response {
if len(args)!=2 {
return shim.Error(″Incorrect number
of arguments.Expecting 2″)}
String(args[0]))
if err !=nil {
fmt.Println(″上傳ipfs時錯誤:″,err)}
return hash}
本文設計的方案模型中,數(shù)據(jù)使用者需要通過數(shù)據(jù)擁有者頒發(fā)的授權(quán)令牌Token向數(shù)據(jù)提供者申請使用數(shù)據(jù),實現(xiàn)數(shù)據(jù)從數(shù)據(jù)提供者向數(shù)據(jù)使用者直接共享.其中數(shù)據(jù)提供者完成數(shù)據(jù)共享驗證成功后觸發(fā)data_processing智能合約,根據(jù)授權(quán)令牌Token中的數(shù)據(jù)內(nèi)容哈希值在IPFS中得到相對應的數(shù)據(jù)密文,然后根據(jù)data_processing智能合約的規(guī)定完成數(shù)據(jù)密文處理,得到數(shù)據(jù)處理結(jié)果,最后使用同態(tài)加密密鑰對數(shù)據(jù)處理結(jié)果進行解密,完成數(shù)據(jù)共享.其中授權(quán)令牌Token的設計結(jié)構(gòu)如圖2所示:
圖2 授權(quán)令牌架構(gòu)圖
授權(quán)令牌是用于數(shù)據(jù)擁有者為數(shù)據(jù)使用者進行數(shù)據(jù)使用授權(quán)的一種憑證,可以防止非授權(quán)用戶獲得共享數(shù)據(jù)辦理數(shù)據(jù)擁有者不知情的業(yè)務.其中內(nèi)容哈希是數(shù)據(jù)存儲在IPFS中返回的存儲地址哈希值經(jīng)過數(shù)據(jù)提供者公鑰加密的數(shù)據(jù)內(nèi)容哈希值,保證數(shù)據(jù)存儲地址只由數(shù)據(jù)提供者得知,防止數(shù)據(jù)原始信息泄露.授權(quán)部門是指獲得數(shù)據(jù)使用權(quán)限的部門,即數(shù)據(jù)使用者,可以驗證數(shù)據(jù)使用者和授權(quán)令牌Token擁有者身份是否一致,保證數(shù)據(jù)只能由被授權(quán)的用戶使用.業(yè)務描述是指數(shù)據(jù)使用者使用數(shù)據(jù)的相關(guān)描述,可以了解數(shù)據(jù)用途.使用終期是指數(shù)據(jù)的共享時間限制,保證數(shù)據(jù)共享可控.時間戳是指授權(quán)令牌頒發(fā)時間,用來記錄Token頒發(fā)時間.授權(quán)者信息是指頒發(fā)授權(quán)令牌的用戶信息,也就是數(shù)據(jù)擁有者相關(guān)信息,方便數(shù)據(jù)提供者對其進行驗證并查找相應數(shù)據(jù).數(shù)字簽名是對上述信息用數(shù)據(jù)授權(quán)者私鑰進行簽名,可以防止數(shù)據(jù)使用者使用其他數(shù)據(jù)后出現(xiàn)抵賴現(xiàn)象,并防止授權(quán)令牌Token篡改.
根據(jù)2.2節(jié)場景分別對密文中每條記錄的k個字段進行加法同態(tài)計算,也就是對相應密文進行乘積運算,得到密文計算結(jié)果C′:
(4)
機構(gòu)B使用同態(tài)加密私鑰SKHE=(λ,μ)對密文計算結(jié)果中的每個數(shù)據(jù)項進行解密,得到機構(gòu)A共享的明文結(jié)果w:
(5)
Paillier算法具有加法同態(tài)性,所以解密得到的明文結(jié)果為機構(gòu)A中全部員工按照各項薪資區(qū)分的總工資,即1條記錄,k個字段.接下來對工資計算平均并進行逆整數(shù)化處理,得到w′就是最終的共享結(jié)果:
(6)
以上是對密文進行數(shù)據(jù)處理后解密得到數(shù)據(jù)處理結(jié)果的過程,不同的業(yè)務協(xié)同數(shù)據(jù)共享場景下需要對數(shù)據(jù)進行不同的運算,不過不同場景下各實體所需要完成的工作和數(shù)據(jù)共享思想都是大同小異的.
本方案中,共享數(shù)據(jù)由數(shù)據(jù)提供者向數(shù)據(jù)使用者轉(zhuǎn)移后,數(shù)據(jù)提供者都會在區(qū)塊鏈上記錄共享信息,實現(xiàn)共享可追溯,區(qū)塊鏈記錄階段需要完成2個方面的記錄:首先,將存儲在IPFS中的共享數(shù)據(jù)返回的數(shù)據(jù)內(nèi)容哈希值記錄在區(qū)塊鏈當中;其次,對數(shù)據(jù)擁有者為數(shù)據(jù)使用者頒發(fā)的授權(quán)令牌Token進行記錄.Fabric平臺的區(qū)塊鏈只存儲由數(shù)據(jù)內(nèi)容哈希值等相關(guān)數(shù)據(jù)信息組成的Merkle樹,業(yè)務協(xié)同辦理所需的共享數(shù)據(jù)存儲在IPFS平臺中.
方案中區(qū)塊鏈中的區(qū)塊由塊頭和塊體2個部分組成,塊頭包含版本號、前一區(qū)塊的哈希值、時間戳、Merkle根哈希值和其他信息.塊體存儲的是交易信息,以二叉樹的形式存儲共享數(shù)據(jù)的內(nèi)容哈希值,最后得到一個根哈希值就是Merkle根哈希值.本文的交易信息包括哈希值、使用終期、時間戳、使用次數(shù)、上次使用時間和數(shù)據(jù)提供者對其的數(shù)字簽名.其中哈希值是指數(shù)據(jù)提供者根據(jù)數(shù)據(jù)擁有者申請需求存儲在IPFS中的共享數(shù)據(jù)的數(shù)據(jù)內(nèi)容哈希值密文,該密文是通過數(shù)據(jù)提供者公鑰加密的信息,保證只有數(shù)據(jù)提供者能得到哈希值,防止數(shù)據(jù)泄露.使用終期是指共享數(shù)據(jù)的共享時間限制,比如房產(chǎn)證的抵押截止日期,和時間戳一起用來保證數(shù)據(jù)共享的有序性.時間戳是指數(shù)據(jù)共享開始時間,用來保證數(shù)據(jù)共享的有序性,并且防止有共享限制的數(shù)據(jù)在同一時間段進行多次共享,比如房產(chǎn)證1次只能共享給1個數(shù)據(jù)使用者.使用次數(shù)是指共享數(shù)據(jù)的共享次數(shù),這一屬性主要是為了防止一次性數(shù)據(jù)被多次共享,保證失效數(shù)據(jù)不會重復使用,比如發(fā)票的使用次數(shù)為1.上次使用時間是指共享數(shù)據(jù)最近1次被共享的時間,可以通過查詢區(qū)塊鏈中的記錄方便地查看數(shù)據(jù)是否在共享時間內(nèi),驗證是否滿足被共享的條件.
1)機密性.本方案使用了同態(tài)加密Paillier算法對數(shù)據(jù)進行加密后存儲再進行數(shù)據(jù)共享,從根本上解決用戶得到數(shù)據(jù)密文的問題,實現(xiàn)只對用戶共享數(shù)據(jù)處理結(jié)果而不共享原始數(shù)據(jù)密文,保證數(shù)據(jù)機密性.
2)真實性.數(shù)據(jù)在區(qū)塊鏈存儲過程中是與數(shù)據(jù)提供者進行綁定的,數(shù)據(jù)密文存儲在IPFS中,對應的數(shù)據(jù)內(nèi)容哈希值通過數(shù)據(jù)提供者私鑰進行簽名后存儲到區(qū)塊鏈中不可變更并永久存儲,保證數(shù)據(jù)內(nèi)容哈希值和數(shù)據(jù)提供者進行了綁定,由于數(shù)據(jù)內(nèi)容改變會引起對應的數(shù)據(jù)內(nèi)容哈希值改變,所以保證了數(shù)據(jù)和數(shù)據(jù)提供者進行綁定,保證數(shù)據(jù)的真實性.
3)完整性 .數(shù)據(jù)在經(jīng)過加密后使用哈希函數(shù)運算得到密文摘要,并將密文摘要存儲在區(qū)塊鏈上,當數(shù)據(jù)完成共享后,可以通過計算共享數(shù)據(jù)密文哈希摘要,并比對區(qū)塊鏈上的密文摘要驗證數(shù)據(jù)完整性.
4)可控性.本文通過設計授權(quán)令牌Token實現(xiàn)數(shù)據(jù)訪問控制,保證數(shù)據(jù)使用者只有在獲得數(shù)據(jù)擁有者授權(quán)并頒發(fā)授權(quán)令牌Token后才能向數(shù)據(jù)提供者申請使用數(shù)據(jù)的權(quán)限,實現(xiàn)數(shù)據(jù)擁有者對數(shù)據(jù)擁有唯一操作權(quán),控制數(shù)據(jù)訪問權(quán)限.
5)防抵賴性.方案中業(yè)務協(xié)同數(shù)據(jù)共享的過程記錄在區(qū)塊鏈上,可對數(shù)據(jù)共享過程進行追蹤溯源實現(xiàn)了防抵賴功能.其中包括2個方面:首先,針對數(shù)據(jù)提供者方面,如果因為數(shù)據(jù)提供者共享的數(shù)據(jù)在業(yè)務協(xié)同辦理中產(chǎn)生了問題,可以根據(jù)區(qū)塊鏈可追溯和不可篡改的特性防止數(shù)據(jù)提供者抵賴已共享的數(shù)據(jù);其次,針對數(shù)據(jù)使用者方面,如果數(shù)據(jù)使用者不是使用的數(shù)據(jù)提供者共享的數(shù)據(jù)信息,可以通過區(qū)塊鏈可追溯和不可篡改的特性得知,從而防止數(shù)據(jù)使用者使用不合法的數(shù)據(jù)后進行抵賴.
本文提出的方案中,性能評估主要是評估搭建的聯(lián)盟鏈性能進行分析.所以本節(jié)主要對本文提出方案搭建的聯(lián)盟鏈網(wǎng)絡交易吞吐量進行測試.本方案針對電子政務環(huán)境下業(yè)務協(xié)同數(shù)據(jù)共享的應用場景,設計的聯(lián)盟網(wǎng)絡共有3個聯(lián)盟組織,分別代表數(shù)據(jù)提供者、數(shù)據(jù)擁有者和數(shù)據(jù)使用者,每個組織中包含1個主節(jié)點和1個背書節(jié)點,主節(jié)點負責與Orderer節(jié)點進行通信,將交易從Orderer節(jié)點分發(fā)到組織中的其他節(jié)點,組織間采用單通道的形式進行通信.測試工具為Caliper框架,實驗中進行了聯(lián)盟鏈寫入壓力測試和查詢壓力測試,具體測試方法為設置1 000筆寫入數(shù)據(jù)的交易量,目的是測試賬本寫入性能,設置5 000筆查詢數(shù)據(jù)的交易量,目的是測試賬本讀取性能,并且控制交易的發(fā)送速度,查看數(shù)據(jù)寫入和查詢各階段的最小響應時間、最大響應時間、平均響應時間和交易處理速度,共進行10次測試.測試結(jié)果如表1所示,從表1可知聯(lián)盟網(wǎng)絡運行穩(wěn)定,交易完成率100%,同時隨著發(fā)送速度的提升,吞吐量受到一定影響.
表1 聯(lián)盟鏈網(wǎng)絡壓力測試結(jié)果表
下面通過折線圖的形式展示交易發(fā)送速度和交易響應時間、交易發(fā)送速度和交易處理速度的關(guān)系,如圖3是寫入壓力測試交易響應時間和交易處理速度折線圖,圖4是查詢壓力測試交易響應時間和交易處理速度折線圖.
圖3 寫入壓力測試交易響應時間和交易處理速度圖
圖4 查詢壓力測試交易響應時間和交易處理速度圖
由圖3(a)可知,交易響應時間在交易發(fā)送速度為50 TPS和100 TPS時處于較低的水平,但是在交易發(fā)送速度為150 TPS后交易響應時間開始大幅度上漲,這說明寫入賬本功能在150 TPS以下時響應時間較少能夠保證高效交易.由圖3(b)可知,交易處理速度在交易發(fā)送速度為150 TPS以后開始趨于穩(wěn)定狀態(tài),基本維持在145 TPS左右,說明寫入賬本功能的交易處理速度峰值為150 TPS.
由圖4所知在查詢壓力測試環(huán)境下,交易響應時間在交易發(fā)送速度為100 TPS,200 TPS和300 TPS時處于較低的水平,并且在交易發(fā)送速度為300 TPS時交易處理速度達到峰值300 TPS.但是在交易發(fā)送速度為350 TPS開始交易響應時間上升至20 s,而且交易處理速度下降到250 TPS左右,這表明查詢賬本功能的交易處理速度峰值為300 TPS,并且交易發(fā)送速度達到交易處理速度峰值時交易響應時間明顯增加.
在實際電子政務環(huán)境業(yè)務協(xié)同數(shù)據(jù)共享場景下,交易發(fā)送速度在150 TPS時,寫入賬本的響應時間較快能夠保證高效交易,交易的發(fā)送速度在300 TPS時查詢賬本的效率較高,交易處理相對穩(wěn)定,交易的響應時間也是在可接受范圍,并且聯(lián)盟網(wǎng)絡運行穩(wěn)定,交易吞吐量也滿足業(yè)務需求,所以測試結(jié)果可以滿足跨部門業(yè)務協(xié)同數(shù)據(jù)共享要求.
電子政務場景下解決數(shù)據(jù)在跨部門間共享的同時保證數(shù)據(jù)的安全是一個具有挑戰(zhàn)性的問題.本文針對該問題提出了一種基于區(qū)塊鏈的業(yè)務協(xié)同數(shù)據(jù)安全共享方案,通過結(jié)合區(qū)塊鏈、IPFS、智能合約和Paillier達到保護共享數(shù)據(jù)隱私,實現(xiàn)數(shù)據(jù)在業(yè)務協(xié)同中安全共享.該方案通過構(gòu)建Fabric環(huán)境,并與去中心化的IPFS結(jié)合以脫鏈的形式存儲共享數(shù)據(jù),解決了區(qū)塊鏈存儲問題,并提高了共識效率.根據(jù)業(yè)務邏輯編寫智能合約完成相應數(shù)據(jù)處理得到數(shù)據(jù)處理結(jié)果實現(xiàn)共享數(shù)據(jù)處理結(jié)果而不共享原始數(shù)據(jù),從根本上解決數(shù)據(jù)隱私泄露問題.此外,通過設計授權(quán)令牌Token并將其記錄在區(qū)塊中實現(xiàn)訪問控制,保證數(shù)據(jù)擁有者對數(shù)據(jù)擁有唯一控制權(quán).該方案應用于電子政務環(huán)境下實現(xiàn)跨部門間的數(shù)據(jù)安全共享.