摘要:在傳統(tǒng)的信用數(shù)據(jù)共享管理中,數(shù)據(jù)持有者缺乏數(shù)據(jù)開發(fā)動力、缺少安全管理手段、缺乏數(shù)據(jù)流通專業(yè)技術(shù)支撐能力等,是其不愿開放、不敢開放、不會開放的重要原因。區(qū)塊鏈是新興的數(shù)據(jù)共享技術(shù),具有數(shù)據(jù)可追、可認證和不可篡改等特性。此項技術(shù)采用去中心化的共識機制分布式存儲數(shù)據(jù),規(guī)避數(shù)據(jù)泄露、篡改等脫離管理風險?;诖?,開展區(qū)塊鏈技術(shù)在信用數(shù)據(jù)共享及管理中應(yīng)用的研究,促進信用數(shù)據(jù)共享,為社會信用體系建設(shè)高質(zhì)量發(fā)展打好數(shù)據(jù)基礎(chǔ)。
關(guān)鍵詞:區(qū)塊鏈;信用數(shù)據(jù);共享;管理
一、信用數(shù)據(jù)共享模型構(gòu)建
模型分為應(yīng)用層、核心層、網(wǎng)絡(luò)層和數(shù)據(jù)層,其中核心層為去中心化的信用信息提供存證支撐。
(一)應(yīng)用層
系統(tǒng)平臺在應(yīng)用層提供多種操作功能,滿足數(shù)據(jù)管理需求,包括數(shù)據(jù)上鏈、安全認證、安全計算、智能合約、證書管理、數(shù)據(jù)加密、共識選擇、加入節(jié)點等功能[1]。
(二)核心層
核心層功劃分為四個模塊,分別為:數(shù)據(jù)加密模塊,采用非對稱加密、默克爾樹和哈希函數(shù),用密文形式傳輸信用數(shù)據(jù);共識算法模塊,采用PBFT算法、Kafuka算法和Raft算法,保證在權(quán)限范圍內(nèi)訪問數(shù)據(jù);智能合約模塊,采用數(shù)據(jù)采集智能合約、Docker、訪問控制智能合約,在授權(quán)范圍內(nèi)實現(xiàn)數(shù)據(jù)共享;安全計算模塊,采用CKKS加密算法、全同態(tài)加密、SEAL加密算法,確保數(shù)據(jù)具有高度的安全性。
(三)網(wǎng)絡(luò)層
建構(gòu)基于分層P2P網(wǎng)絡(luò)和Gossip協(xié)議的通信機制,用于支持信用數(shù)據(jù)存儲到區(qū)塊鏈中。通信機制納入同步機制、驗證機制和廣播機制,可以滿足發(fā)現(xiàn)與加入節(jié)點的需求。
(四)數(shù)據(jù)層
數(shù)據(jù)層是整個系統(tǒng)平臺的支撐,在此層設(shè)置數(shù)據(jù)存儲器,具備數(shù)據(jù)安全存儲、內(nèi)容加密、安全共享、隱私保護等功能。數(shù)據(jù)層由數(shù)據(jù)存儲層和處理層構(gòu)成,存儲層由信用節(jié)點和錨定節(jié)點形成信用網(wǎng)絡(luò),分為初級信用網(wǎng)絡(luò)與高級信用網(wǎng)絡(luò),初級信用網(wǎng)絡(luò)由多個信用節(jié)點構(gòu)成,高級信用網(wǎng)絡(luò)由多個錨定節(jié)點構(gòu)成;處理層采集來源于政府機構(gòu)、教育機構(gòu)、醫(yī)療機構(gòu)和企業(yè)等主體的數(shù)據(jù),保證數(shù)據(jù)的完整性和可靠性。
二、信用數(shù)據(jù)共享模型設(shè)計方案
結(jié)合模型分層架構(gòu)以及數(shù)據(jù)信用體系對模型各個細節(jié)進行優(yōu)化設(shè)計,共分為以下五層,如圖1所示。
(一)信用數(shù)據(jù)區(qū)塊鏈層
1.模塊組成
該層包括兩個部分,包括區(qū)塊鏈網(wǎng)絡(luò)和證書頒發(fā)機構(gòu),其中區(qū)塊鏈網(wǎng)絡(luò)提供交易背書、排序、驗證、上鏈等功能,證書頒發(fā)機構(gòu)提供證書管理、分發(fā)密鑰和GP-ABB初始化等操作。信用數(shù)據(jù)區(qū)塊鏈層采用分布式賬本技術(shù)和網(wǎng)絡(luò)節(jié)點操作的數(shù)據(jù)存儲、數(shù)據(jù)使用、數(shù)據(jù)更新、數(shù)據(jù)查詢等功能,該層包括高級信用通道和初級信用通道,多個信用數(shù)據(jù)提供方通過peer節(jié)點加入初級信用通道,在客戶端設(shè)計執(zhí)行命令,用于啟動各項功能[2]。
2.Raft排序服務(wù)
該層在高級信用通道中加入各個錨節(jié)點,采用Raft排序服務(wù),各個組織中的錨節(jié)點與其他節(jié)點實現(xiàn)數(shù)據(jù)共享。將錨節(jié)點列表設(shè)置到通道中,從其他組織內(nèi)實時獲取peer信息,在錨節(jié)點更新后,通過Grossip協(xié)議實現(xiàn)peer通信,為初級通道標準化數(shù)據(jù)處理提供支持,保證通道中的賬本可以利用鏈碼調(diào)用。
3.fabric架構(gòu)
信用數(shù)據(jù)區(qū)塊鏈層采用fabric架構(gòu)、解耦排序和多種邏輯處理方法進行設(shè)計,提升了區(qū)塊鏈的網(wǎng)絡(luò)性能。具體表現(xiàn)為:客戶端根據(jù)系統(tǒng)平臺的運行情況,通過調(diào)整節(jié)點類型與個數(shù)適應(yīng)系統(tǒng)運行負載;在分層架構(gòu)中提供多通道,在部分通道實現(xiàn)細粒度權(quán)限訪問控制;提供調(diào)用接口實時監(jiān)控功能、加密功能、解密功能以及權(quán)限管理功能,提高區(qū)塊鏈網(wǎng)絡(luò)運行的安全性。
4.安全機制
區(qū)塊鏈數(shù)據(jù)公開與數(shù)據(jù)安全性之間存在一定矛盾,當在區(qū)塊鏈中直接存儲信用數(shù)據(jù)內(nèi)容源文件時必然會埋下數(shù)據(jù)安全隱患。本層對信用數(shù)據(jù)進行加密,在分布式賬本中存儲數(shù)據(jù),再附加訪問控制權(quán)限,以保證信用數(shù)據(jù)共享的安全性。申請訪問權(quán)限流程如圖2所示。
(二)訪問控制層
1.需求分析
信用數(shù)據(jù)的所有者在主觀意愿上不想直接公開數(shù)據(jù),這些數(shù)據(jù)屬于敏感數(shù)據(jù),一旦出現(xiàn)泄露可能會對數(shù)據(jù)所有者產(chǎn)生重大影響。在數(shù)據(jù)共享機制下,如果在區(qū)塊鏈上直接對數(shù)據(jù)明文進行存證,那么所有人都可以在任何網(wǎng)絡(luò)節(jié)點處訪問信用數(shù)據(jù),造成信用數(shù)據(jù)無性[3]。如果信用數(shù)據(jù)所有者為保證數(shù)據(jù)的性而使用私鑰加密處理數(shù)據(jù),那么則無法將信用數(shù)據(jù)共享給數(shù)據(jù)需求者。針對上述問題,本系統(tǒng)設(shè)計基于CP-ABE的加密訪問控制層,使用訪問控制算法提供共享訪問,滿足數(shù)據(jù)安全與數(shù)據(jù)共享的雙重需求。
2.屬性加密機制
在屬性加密中,權(quán)威機構(gòu)為證書頒發(fā)中心,采用密文策略加密數(shù)據(jù),將加密數(shù)據(jù)屬性寫入私鑰中,滿足信用數(shù)據(jù)的細粒度訪問控制需求。訪問控制層采用CP-ABE調(diào)用架構(gòu),包括以下三個主體:區(qū)塊鏈網(wǎng)絡(luò)fabricnetwork,在區(qū)塊鏈網(wǎng)絡(luò)中提供交易排序、背書、驗證和上鏈功能,分布式存儲密文數(shù)據(jù);客戶端,提供交易發(fā)起、證書接受、密鑰接收和數(shù)據(jù)加解密操作;證書頒發(fā)中心(CA),提供證書管理、密鑰生成、密鑰分發(fā)、CP-AEB初始化操作。當CA收到客戶端發(fā)起的證書申請時,向使用者頒發(fā)證書,初始化CP-ABE,生成和分發(fā)密鑰,設(shè)置使用者權(quán)限,在區(qū)塊鏈網(wǎng)絡(luò)中訪問信用數(shù)據(jù)。
3.加密數(shù)據(jù)的細粒度訪問控制
訪問控制層的執(zhí)行流程如下:
(1)初始化。信用系統(tǒng)采用隨機化算法,輸入安全系數(shù),輸出信用系統(tǒng)公鑰和系統(tǒng)主密鑰。
(2)撤銷機構(gòu)初始化。設(shè)置使用者權(quán)限撤銷機構(gòu),在信用系統(tǒng)公鑰生成后,形成映射表,表內(nèi)包括素數(shù)域、使用者Gid、權(quán)限撤銷列表、使用者屬性等。
(3)生成私鑰。通過輸入公鑰、主密鑰和使用者屬性集合動態(tài)數(shù)據(jù)生成私鑰,向使用者分配素數(shù),分配過程中從素數(shù)域中刪除此素數(shù),保持素數(shù)具備唯一性的特點,借助素數(shù)對映射表進行更新。
(4)加密。采用隨機化方法對數(shù)據(jù)進行加密,在系統(tǒng)中輸入公鑰,對加密明文信息和訪問策略進行關(guān)聯(lián)之后獲取密文CP-ABE。
(5)解密。在密文解密過程中調(diào)用系統(tǒng)中設(shè)定的確定化方法。
(6)撤銷使用者屬性。在撤銷屬性列表中輸入使用者屬性撤銷算法,自動記錄使用者權(quán)限被取消的過程。
(7)恢復使用者屬性。使用者需獲取數(shù)據(jù)恢復權(quán)限,在唯一素數(shù)對應(yīng)的撤銷列表中輸入恢復算法,恢復后對兩個映射表進行更新。通過執(zhí)行上述流程能夠?qū)用軘?shù)據(jù)進行控制。當信用數(shù)據(jù)加密后無需獲取數(shù)據(jù)需求者的身份信息,同時也無需多次加密多個數(shù)據(jù)所有者。如果使用者擁有解密策略即可解密數(shù)據(jù),能夠保證信用數(shù)據(jù)的安全性,實現(xiàn)對敏感性數(shù)據(jù)的精確控制[4]。
(三)安全計算層
1.加密算法
信用應(yīng)用場景中,信用機構(gòu)采用復數(shù)運算等待評估等級結(jié)果。為保證信用數(shù)據(jù)在經(jīng)過不可信第三方共享后仍然不被泄露,故此采用同態(tài)加密算法,將評估等級結(jié)果中的部分數(shù)據(jù)集成CKKS算法后生成同態(tài)加密層。信用數(shù)據(jù)同態(tài)加密流程如下:設(shè)計CKKS參數(shù)→生成CKKS框架→建構(gòu)CKKS模塊(密鑰生成模塊、編碼器模塊、加密模塊、解密模塊、密文計算模塊)→數(shù)據(jù)發(fā)送方(利用公鑰加密)→數(shù)據(jù)接收方(利用私鑰解密)。
2.加密與解密流程
CKKS算法與Pailier同態(tài)加密算法相比,只需要計算出在誤差允許范圍內(nèi)的近似值,簡化了數(shù)據(jù)計算程序,提高了計算效率。在連接云服務(wù)器前,對信用數(shù)據(jù)進行公鑰加密處理,將信用數(shù)據(jù)傳輸?shù)皆品?wù)器后執(zhí)行以下加密流程。
第一,編碼。使用比例因子向量映射復數(shù)明文信息,完成信用數(shù)據(jù)編碼,滿足同態(tài)安全計算。在CKKS算法下,對多項式取整數(shù),設(shè)定縮放因子,對實數(shù)放大后再取正數(shù),保留有效位。
第二,初始化。采用隨機算法進行數(shù)據(jù)初始化,定義特殊模數(shù),根據(jù)任意層的模數(shù)和模式鏈的深度計算出模數(shù)規(guī)模。
第三,生成密鑰。利用初始化向量按照模型生成實例化密鑰,同態(tài)加密處理密鑰,滿足同態(tài)乘法計算要求。
第四,加密。對明文信息編碼后進行加密,得到密文,如果對密文解密處理,則很難保證解密的精確性,當解密出現(xiàn)錯誤時,需要利用加密參數(shù)進行修正,得到CKKS同態(tài)加密安全計算的近似值。
第五,同態(tài)加密計算。采用同態(tài)乘法計算編碼加密后的數(shù)據(jù),在計算過程中面臨著乘法算量大和誤差大的問題,故此需增加重縮步驟,使誤差指數(shù)增長降至線性增長,將計算結(jié)果保持一定的準確度。
第六,解密。利用密文和私鑰計算得到解密后的編碼,將已知編碼代入多項式,此時得到的各項系數(shù)為放大后的數(shù)據(jù),數(shù)據(jù)除以放大因子后得到明文。在解碼過程中,浮點型數(shù)值進行舍入計算,所以解碼后的數(shù)據(jù)可能與源數(shù)據(jù)存在誤差,屬于近似數(shù)據(jù)。
(四)數(shù)據(jù)加密層
為保證信用數(shù)據(jù)的安全性,使用ECC算法加密信用數(shù)據(jù),再將數(shù)據(jù)發(fā)送到云服務(wù)器中,并設(shè)置訪問控制權(quán)限,只允許有權(quán)限的使用者調(diào)取區(qū)塊鏈中的信用數(shù)據(jù)。在信用系統(tǒng)上確定橢圓曲線,在橢圓曲線上取私鑰點和基點,利用基點生成公鑰,將公鑰發(fā)送到信用數(shù)據(jù)所有者。在數(shù)據(jù)加密時,隨機生成數(shù)據(jù)后編碼,加密后的數(shù)據(jù)上傳到云服務(wù)器,由云服務(wù)器完成加密數(shù)據(jù)的同態(tài)計算。如果信用數(shù)據(jù)需求方提出調(diào)取數(shù)據(jù)的申請,則可以在云服務(wù)器上進行數(shù)據(jù)下載,再用數(shù)據(jù)需求方的私鑰對獲取的數(shù)據(jù)進行解碼,得到原始信用數(shù)據(jù)。
(五)數(shù)據(jù)存儲層
在信用機構(gòu)的本地數(shù)據(jù)庫中存儲信用數(shù)據(jù),加入?yún)^(qū)塊鏈分層網(wǎng)絡(luò),加密信息數(shù)據(jù),完成數(shù)據(jù)的同態(tài)計算和上鏈。
三、結(jié)語
綜上所述,研究設(shè)計基于區(qū)塊鏈的信用數(shù)據(jù)共享系統(tǒng)是解決信用數(shù)據(jù)共享難題的有效方案,在信用數(shù)據(jù)共享系統(tǒng)模型建構(gòu)中,要采用區(qū)塊鏈、同態(tài)加密算法、非對稱算法和訪問控制算法解決信用數(shù)據(jù)保護與共享之間的矛盾,將證書頒發(fā)中心作為可信第三方,授權(quán)使用者訪問權(quán)限,通過數(shù)據(jù)加密與解密完成使用者權(quán)限的細粒度控制,最大程度保護信用數(shù)據(jù)持有者,從而實現(xiàn)數(shù)據(jù)信用體系建設(shè)的數(shù)據(jù)共享技術(shù)創(chuàng)新發(fā)展。由于該方案仍處于理論研究探索階段,未來需要通過案例實踐進行驗證或調(diào)整。
參考文獻
[1]盧盛羽.新發(fā)展階段社會信用數(shù)據(jù)管理和應(yīng)用:基于區(qū)塊鏈和隱私計算技術(shù)的視角[J].信用,2023(03):61-65.
[2]馮濤,陳李秋,石建明.基于本地化差分隱私和屬性基可搜索加密的區(qū)塊鏈數(shù)據(jù)共享方案[J].通信學報,2023(05):224-233.
[3]龔良彩.基于區(qū)塊鏈技術(shù)的社交網(wǎng)絡(luò)數(shù)據(jù)隱私防護建模[J].信息記錄材料,2023(06):182-184+187.
[4]劉朗,王卓.基于區(qū)塊鏈技術(shù)的雙鏈數(shù)據(jù)共享系統(tǒng)研究[J].信息技術(shù)與信息化,2023(06):125-128.