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