黃志清,解魯陽(yáng),張嚴(yán)心,尹澤明
(1.北京工業(yè)大學(xué)信息學(xué)部,北京 100124;2.北京市物聯(lián)網(wǎng)軟件與系統(tǒng)工程技術(shù)研究中心,北京 100124;3.北京交通大學(xué)電子信息工程學(xué)院,北京 100044;4.中國(guó)聯(lián)合網(wǎng)絡(luò)通信集團(tuán)公司,北京 100032)
近年來(lái),隨著物聯(lián)網(wǎng)技術(shù)[1]的快速發(fā)展,越來(lái)越多的智能傳感設(shè)備連接到互聯(lián)網(wǎng)并部署至車聯(lián)網(wǎng)[2]、智能家居[3]、智慧城市[4]、智慧醫(yī)療[5]、智慧交通[6]等諸多應(yīng)用領(lǐng)域。通過(guò)對(duì)以上領(lǐng)域的物聯(lián)數(shù)據(jù)進(jìn)行信息化及數(shù)字化處理,并在共享經(jīng)濟(jì)浪潮的推動(dòng)下,助推了物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)的發(fā)展[7]。然而,國(guó)家地球系統(tǒng)科學(xué)數(shù)據(jù)中心共享服務(wù)平臺(tái)、地質(zhì)大數(shù)據(jù)共享與應(yīng)用平臺(tái)、專業(yè)移動(dòng)大數(shù)據(jù)服務(wù)平臺(tái)等現(xiàn)有的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)平臺(tái)沒(méi)有系統(tǒng)的信譽(yù)評(píng)估體系,不能幫助用戶從海量的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)中直觀、精準(zhǔn)、快速地檢索出高質(zhì)量數(shù)據(jù)。同時(shí),物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)還存在物聯(lián)網(wǎng)數(shù)據(jù)分散存儲(chǔ)、信譽(yù)數(shù)據(jù)存儲(chǔ)管理不安全、集中式存儲(chǔ)的數(shù)據(jù)容易被惡意攻擊導(dǎo)致數(shù)據(jù)泄露或篡改等問(wèn)題[8-9]。因此,為物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)構(gòu)建信譽(yù)評(píng)估模型,并提供一個(gè)不易被攻擊、用戶隱私防泄露、高效數(shù)據(jù)篩選等功能的信譽(yù)數(shù)據(jù)管理系統(tǒng)模型是十分必要的。
區(qū)塊鏈[10-12]的本質(zhì)是一種去中心化的分布式數(shù)據(jù)庫(kù),核心優(yōu)勢(shì)是運(yùn)用分布式共識(shí)、數(shù)據(jù)加密、經(jīng)濟(jì)激勵(lì)、時(shí)間戳、數(shù)字簽名和密碼學(xué)等技術(shù)對(duì)傳統(tǒng)的中心化體系進(jìn)行了顛覆。運(yùn)用區(qū)塊鏈技術(shù)對(duì)信譽(yù)值、評(píng)價(jià)數(shù)據(jù)等進(jìn)行維護(hù),可以很好地保障信譽(yù)數(shù)據(jù)的安全可信性。同時(shí),區(qū)塊鏈的分布式、集體維護(hù)等特性也可以很好地為集中式架構(gòu)的數(shù)據(jù)服務(wù)平臺(tái)提供解決方案。
CHAI 等[13]在車聯(lián)網(wǎng)中構(gòu)建聲譽(yù)證明模型,信譽(yù)值表示參與車輛的可信度,并將共識(shí)機(jī)制和資源共享過(guò)程相結(jié)合,實(shí)現(xiàn)了在車聯(lián)網(wǎng)中降低計(jì)算功耗并激勵(lì)參與資源共享車輛的功能。KHAQQI 等[14]建立一種新的工業(yè)4.0 集成定制的排放交易體系(Emissions Trading Scheme,ETS)模型,結(jié)合區(qū)塊鏈技術(shù)解決ETS 的欺詐和管理問(wèn)題,并利用聲譽(yù)代表參與者的績(jī)效和對(duì)減排所做出的努力,提高了ETS的效率。LU 等[15]針對(duì)車聯(lián)網(wǎng)中防止內(nèi)部車輛廣播偽造消息,同時(shí)保護(hù)車輛免受跟蹤攻擊,提出基于區(qū)塊鏈的匿名信譽(yù)系統(tǒng)(BARS)。基于擴(kuò)展區(qū)塊鏈技術(shù)的存在和缺席證明有效地保護(hù)了車輛隱私。為防止偽造消息的分發(fā),設(shè)計(jì)一種依賴于直接歷史交互和對(duì)車輛間接評(píng)價(jià)的信譽(yù)評(píng)估算法。HUANG 等[16]針對(duì)傳統(tǒng)支付系統(tǒng)中的安全、高吞吐量問(wèn)題,利用分片技術(shù)和信譽(yù)機(jī)制,并結(jié)合區(qū)塊鏈技術(shù)提出RepChain 解決方案。該方案利用信譽(yù)明確表征驗(yàn)證者之間的異質(zhì)性并將其作為激勵(lì)機(jī)制的基礎(chǔ),同時(shí)構(gòu)建交易鏈和信譽(yù)鏈結(jié)構(gòu),保證了支付系統(tǒng)的全面性和安全性。
上述研究工作都是在集中式的系統(tǒng)架構(gòu)中針對(duì)特定場(chǎng)景下系統(tǒng)機(jī)制的改進(jìn),通過(guò)信譽(yù)數(shù)據(jù)管理系統(tǒng)模型表明參與者之間的異質(zhì)性,但并未闡述如何構(gòu)建物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)評(píng)估體系,且未解決由于第三方的參與所導(dǎo)致的數(shù)據(jù)泄露、單點(diǎn)失效、數(shù)據(jù)篡改等安全性問(wèn)題。本文基于區(qū)塊鏈技術(shù),設(shè)計(jì)與實(shí)現(xiàn)物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)評(píng)估模型,闡述與分析物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)數(shù)據(jù)管理模型中的關(guān)鍵機(jī)制與相關(guān)算法。
本節(jié)總結(jié)了物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)評(píng)估指標(biāo)體系構(gòu)建原則,通過(guò)層次分析法(Analytic Hierarchy Process,AHP)[17]進(jìn)行信譽(yù)評(píng)估指標(biāo)權(quán)重分析和計(jì)算,并對(duì)數(shù)據(jù)服務(wù)提供商的信譽(yù)計(jì)算方式進(jìn)行詳細(xì)介紹,進(jìn)而構(gòu)建物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)評(píng)估模型。
著名管理學(xué)家彼得·德魯克提出:在組織指標(biāo)的設(shè)定過(guò)程中可以遵守smart 原則,也就是確定性、可實(shí)現(xiàn)性、時(shí)效性、可衡量性、現(xiàn)實(shí)性5 個(gè)原則[18]。綜合其他構(gòu)建原則,本文構(gòu)建原則遵循目的性、獨(dú)立性、導(dǎo)向性、動(dòng)態(tài)性、時(shí)效性、規(guī)范性、完整性、準(zhǔn)確性、一致性和可訪問(wèn)性。
在以上構(gòu)建原則的基礎(chǔ)上,結(jié)合物聯(lián)網(wǎng)數(shù)據(jù)特點(diǎn),在新一代物聯(lián)網(wǎng)技術(shù)[19]背景下,通過(guò)結(jié)合信譽(yù)評(píng)價(jià)、企業(yè)評(píng)價(jià)、電子商務(wù)評(píng)價(jià)等領(lǐng)域的研究成果[20-21],抽取物聯(lián)網(wǎng)數(shù)據(jù)的共性進(jìn)行分析和處理,再根據(jù)AHP 構(gòu)建如圖1 所示的評(píng)價(jià)指標(biāo)層次結(jié)構(gòu),其中A、B、C 表示層級(jí)關(guān)系。
圖1 評(píng)價(jià)指標(biāo)層次結(jié)構(gòu)Fig.1 Evaluation index hierarchy structure
1.2.1 判斷矩陣建立
自目標(biāo)層開(kāi)始,自上而下依次以上一層元素為依據(jù),對(duì)下一層與之相關(guān)的元素進(jìn)行兩兩比較,規(guī)則如圖2所示。每?jī)蓛蓽?zhǔn)則層相對(duì)于目標(biāo)層的重要程度會(huì)根據(jù)表1 進(jìn)行賦值,賦值后構(gòu)建如表2 所示的矩陣。
圖2 矩陣判斷規(guī)則Fig.2 Matrix judgment rule
表1 相對(duì)重要性比例標(biāo)度Table 1 Ratio scale of relative importance
表2 判斷矩陣Table 2 Judgment matrix
根據(jù)規(guī)則形成判斷矩陣[Bij]m×m,m為矩陣階數(shù),具有如下性質(zhì):
1)Bij>0(i,j=1,2,…,m),即判斷矩陣中的任一元素都為正數(shù)。
2)Bij=1(i=1,2,…,m),即判斷矩陣中對(duì)角線元素為1。
3)Bij=1/Bji,即判斷矩陣中非對(duì)角線上的元素互為倒數(shù)。
根據(jù)定義,本文針對(duì)圖1 層次結(jié)構(gòu),構(gòu)造的判斷矩陣分別有A、B1、B2、B3、B4、B5,由于篇幅限制,下面僅以判斷矩陣A進(jìn)行舉例說(shuō)明:
1.2.2 一致性檢驗(yàn)
判斷矩陣是通過(guò)決策者或者專家根據(jù)經(jīng)驗(yàn)和自身知識(shí)進(jìn)行主觀性判斷得出的,需依次對(duì)判斷矩陣進(jìn)行一致性檢驗(yàn)。
根據(jù)矩陣論定義,當(dāng)判斷矩陣具有一致性時(shí),矩陣的階數(shù)和最大特征值相等,即滿足式(1),而其余的特征值都為0。
其中:λmax表示判斷矩陣的最大特征值;m表示階數(shù)。
當(dāng)判斷矩陣不具有一致性時(shí),不滿足式(1)。CI表示度量判斷矩陣偏離一致性的指標(biāo),計(jì)算公式如下:
根據(jù)式(2)可知:當(dāng)λmax=m時(shí),CI值為0,表示矩陣完全一致;CI值與0的差值越大,表明判斷矩陣的一致性越差。
通常而言,判斷矩陣階數(shù)越高,保持判斷矩陣完全一致性的難度也隨之增加。為了檢驗(yàn)判斷矩陣的一致性,引入隨機(jī)一致性比率(CR)表征不同階數(shù)的判斷矩陣的一致性情況,如式(3)所示:
1~10 階判斷矩陣的同階平均隨機(jī)一致性指標(biāo)(RI)值如表3 所示。
表3 1~10 階判斷矩陣RI 值Table 3 RI values of judgment matrix of order 1~10
當(dāng)滿足CR<0.1 條件時(shí),判斷矩陣可以看作具有滿意一致性;否則,需要重新調(diào)整判斷矩陣,直到滿足以上條件要求為止。判斷矩陣A的特征向量和特征值構(gòu)成的矩陣VA和矩陣DA如下:
從計(jì)算結(jié)果可查得,λmax=5.413 1,m=5,查表可知5 階矩陣RRI=1.12,得到:
因?yàn)镃CR=0.092 2<0.1,所以判斷矩陣A具有滿意一致性。剩余判斷矩陣同理。
1.2.3 層次單排序
對(duì)目標(biāo)層以外的每層元素分別計(jì)算相對(duì)權(quán)重,即對(duì)每個(gè)判斷矩陣分別計(jì)算出最大特征根和特征向量。特征值矩陣對(duì)角線上的元素為特征根,其余元素都為0。分別對(duì)特征向量矩陣相對(duì)于特征值矩陣中最大特征根這列元素進(jìn)行歸一化處理,結(jié)果即每個(gè)元素對(duì)應(yīng)上層的權(quán)重?cái)?shù)值。經(jīng)歸一化處理后,權(quán)重Wi(i=A,B1,B2,B3,B4,B5)表示如下:
1.2.4 信譽(yù)值評(píng)估計(jì)算
通過(guò)懲罰機(jī)制和獎(jiǎng)勵(lì)機(jī)制進(jìn)行信譽(yù)評(píng)估。獎(jiǎng)勵(lì)機(jī)制具有2 種行為:1)用戶誠(chéng)實(shí)積極地發(fā)布數(shù)據(jù);2)當(dāng)發(fā)現(xiàn)有用戶提供虛假數(shù)據(jù)時(shí),向群管理員(LEA)發(fā)送揭發(fā)消息。懲罰機(jī)制也具有2 種行為:1)用戶被揭發(fā)有提供虛假數(shù)據(jù)的行為;2)用戶故意給他人做出惡意評(píng)論的行為。信譽(yù)值分為點(diǎn)對(duì)點(diǎn)信譽(yù)值和綜合信譽(yù)值。
定義1點(diǎn)對(duì)點(diǎn)信譽(yù)值表示節(jié)點(diǎn)i、j通過(guò)直接交互進(jìn)行數(shù)據(jù)評(píng)價(jià)后得出的評(píng)價(jià)分?jǐn)?shù),用表示,如式(4)所示:
其中:k表示i、j的第k次交互;W表示權(quán)重;X表示指標(biāo)評(píng)分;n表示評(píng)價(jià)指標(biāo)總數(shù)。
定義2綜合信譽(yù)值是指將系統(tǒng)中所有與節(jié)點(diǎn)i的點(diǎn)對(duì)點(diǎn)信譽(yù)值進(jìn)行整合,用CRi表示。為了表示節(jié)點(diǎn)i與節(jié)點(diǎn)j進(jìn)行多次交互后的總點(diǎn)對(duì)點(diǎn)信譽(yù)值,引入變量,其中T表示節(jié)點(diǎn)i與j的總交互次數(shù)。當(dāng)j認(rèn)為i的第k次交互的數(shù)據(jù)不可信且向LEA 申訴為真時(shí),設(shè);當(dāng)j認(rèn)為i的第k次交互的數(shù)據(jù)可信時(shí),根據(jù)數(shù)據(jù)質(zhì)量的滿意程度設(shè)∈(0,1]。的計(jì)算公式如式(5)所示:
其中:β為懲罰因子,取值范圍為(0,1),當(dāng)i與j的第k次交易不可信時(shí),總信譽(yù)與β相乘,β越小,懲罰力度越大;α為數(shù)據(jù)可信時(shí)的影響因子,取值范圍為(0,1],α越小,說(shuō)明第k次交易在整體信譽(yù)值中的影響越大;為節(jié)點(diǎn)i對(duì)節(jié)點(diǎn)j的第k次交易的數(shù)據(jù)價(jià)值量。
算法1信譽(yù)值計(jì)算算法
在算法1 中:MG 表示節(jié)點(diǎn)Pj(j=1,2,…,n)對(duì)節(jié)點(diǎn)Pi的行為消息級(jí)別;表示節(jié)點(diǎn)i、j的當(dāng)前綜合信譽(yù)值;CRi、CRj表示節(jié)點(diǎn)i、j重新計(jì)算后的最新信譽(yù)值;α、β、δ為相關(guān)系數(shù)。
基于區(qū)塊鏈的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)數(shù)據(jù)管理系統(tǒng)模型包括節(jié)點(diǎn)和基于以太坊的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)平臺(tái)兩部分。如圖3 所示,節(jié)點(diǎn)又分為數(shù)據(jù)擁有者(以下簡(jiǎn)稱DO)和數(shù)據(jù)請(qǐng)求者(以下簡(jiǎn)稱DR)。DR 是指對(duì)物聯(lián)網(wǎng)數(shù)據(jù)有極大需求的互聯(lián)網(wǎng)企業(yè)、廠商、研究機(jī)構(gòu)等;DO 是指持有數(shù)據(jù)所有權(quán)并可以對(duì)數(shù)據(jù)進(jìn)行權(quán)限管理的企業(yè)、個(gè)體、機(jī)構(gòu)等。
圖3 基于區(qū)塊鏈的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)管理模型Fig.3 IoT data service reputation management model based on blockchain
在該模型中,DR 和DO 兩個(gè)角色之間可以相互轉(zhuǎn)化,每個(gè)角色的初始信譽(yù)值為0。信息流從DO 在平臺(tái)上發(fā)布數(shù)據(jù)開(kāi)始,參與者可以在平臺(tái)上進(jìn)行數(shù)據(jù)訂閱、數(shù)據(jù)檢索、查看用戶信譽(yù)值、數(shù)據(jù)評(píng)價(jià)等相關(guān)信息,根據(jù)用戶信譽(yù)值擇優(yōu)進(jìn)行數(shù)據(jù)請(qǐng)求、權(quán)限交互、數(shù)據(jù)評(píng)價(jià)等服務(wù),最終所有的交易關(guān)鍵信息都會(huì)保存到區(qū)塊鏈中,從而保證了交易數(shù)據(jù)和評(píng)價(jià)信息的可靠性,為物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)數(shù)據(jù)管理營(yíng)造了可信良好的環(huán)境。
現(xiàn)有的集中式物聯(lián)網(wǎng)服務(wù)信譽(yù)數(shù)據(jù)管理模型(如圖4 所示)雖然在進(jìn)行數(shù)據(jù)維護(hù)和管理上操作性較強(qiáng),但存在數(shù)據(jù)存儲(chǔ)性能瓶頸問(wèn)題,且當(dāng)受到惡意攻擊時(shí),容易造成用戶隱私泄露、單點(diǎn)故障、數(shù)據(jù)篡改等問(wèn)題。
圖4 集中式物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)管理模型Fig.4 Centralized IoT data service reputation management model
結(jié)合星際文件系統(tǒng)(Interplanetary File System,IPFS)[22]提出基于區(qū)塊鏈的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)連接模型,如圖5 所示。該模型去除了第三方,將信譽(yù)數(shù)據(jù)和數(shù)據(jù)源管理分隔開(kāi),數(shù)據(jù)提供商將數(shù)據(jù)傳入IPFS 網(wǎng)絡(luò),返回對(duì)應(yīng)hash 值。在數(shù)據(jù)發(fā)布時(shí),將數(shù)據(jù)存入?yún)^(qū)塊鏈網(wǎng)絡(luò)進(jìn)行廣播。用戶在區(qū)塊鏈網(wǎng)絡(luò)中檢索、請(qǐng)求數(shù)據(jù)時(shí),會(huì)進(jìn)行數(shù)據(jù)權(quán)限交互,用戶可使用令牌和公示的數(shù)據(jù)hash 值從IPFS 網(wǎng)絡(luò)中獲取相應(yīng)數(shù)據(jù)。在交易后,用戶可對(duì)該數(shù)據(jù)進(jìn)行數(shù)據(jù)質(zhì)量評(píng)價(jià)。系統(tǒng)根據(jù)評(píng)價(jià)結(jié)果進(jìn)行信譽(yù)值動(dòng)態(tài)更新調(diào)整并廣播公示,其中涉及的評(píng)價(jià)信息、信譽(yù)值等信譽(yù)數(shù)據(jù)都存儲(chǔ)到鏈上,保證了信譽(yù)數(shù)據(jù)的安全可信性。IPFS 可以防止區(qū)塊鏈網(wǎng)絡(luò)數(shù)據(jù)冗余,降低區(qū)塊鏈節(jié)點(diǎn)的數(shù)據(jù)備份空間和計(jì)算成本,縮短交易時(shí)間,提高共識(shí)效率。
圖5 基于區(qū)塊鏈和IPFS 的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)連接模型Fig.5 IoT data service reputation connection model based on blockchain and IPFS
2.3.1 用戶匿名評(píng)價(jià)保護(hù)機(jī)制
在物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)平臺(tái)進(jìn)行數(shù)據(jù)評(píng)價(jià)時(shí),為了防止惡意用戶利用用戶隱私數(shù)據(jù)進(jìn)行打擊報(bào)復(fù)或惡意破壞的行為,本文采用環(huán)簽名技術(shù),實(shí)現(xiàn)數(shù)據(jù)評(píng)價(jià)簽名者對(duì)評(píng)價(jià)消息的完全匿名。在簽名時(shí)不需要成員之間的合作,任何一個(gè)成員都可以使用自己的私鑰和環(huán)中所有用戶的公鑰進(jìn)行數(shù)據(jù)簽名。用戶只知道該簽名來(lái)自該環(huán),但不能確定來(lái)自環(huán)中的哪個(gè)簽名者。
算法2環(huán)簽名生成算法
算法3環(huán)簽名驗(yàn)證算法
2.3.2 基于區(qū)塊鏈和Redis 的信譽(yù)數(shù)據(jù)緩存機(jī)制
為提高查詢速度,引入Redis 緩存技術(shù)。由圖6可以看出,用戶在平臺(tái)中進(jìn)行信譽(yù)數(shù)據(jù)訪問(wèn)時(shí),平臺(tái)先從Redis 中根據(jù)參數(shù)進(jìn)行信譽(yù)數(shù)據(jù)查找,若有則直接返回,否則從區(qū)塊鏈中進(jìn)行查詢,查詢到信譽(yù)數(shù)據(jù)返回平臺(tái),并同時(shí)寫(xiě)入Redis 中進(jìn)行備份,為下次訪問(wèn)做準(zhǔn)備,具體流程如圖7 所示。
圖6 基于區(qū)塊鏈和Redis 的信譽(yù)數(shù)據(jù)緩存流程Fig.6 Procedure of reputation data caching based on blockchain and Redis
圖7 基于區(qū)塊鏈和Redis 的信譽(yù)數(shù)據(jù)更新流程Fig.7 Procedure of reputation data update based on blockchain and Redis
本節(jié)設(shè)計(jì)基于以太坊的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)評(píng)估原型系統(tǒng),介紹原型系統(tǒng)的主要功能模塊、實(shí)現(xiàn)細(xì)節(jié),并對(duì)系統(tǒng)功能性進(jìn)行測(cè)試驗(yàn)證。
基于以太坊的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)評(píng)估原型系統(tǒng)的功能架構(gòu)如圖8 所示。
圖8 基于以太坊的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)評(píng)估原型系統(tǒng)的功能架構(gòu)Fig.8 Functional architecture of prototype system of IoT data service reputation evaluation based on Ethereum
基于以太坊的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)評(píng)估原型系統(tǒng)的功能模塊具體如下:
1)賬戶管理模塊
該模塊由創(chuàng)建賬戶、注冊(cè)賬戶、賬戶管理組成。采用區(qū)塊鏈的非對(duì)稱加密技術(shù)創(chuàng)建賬戶,通過(guò)智能合約進(jìn)行信譽(yù)計(jì)算、更新等邏輯功能的實(shí)現(xiàn)。
2)數(shù)據(jù)管理模塊
該模塊主要含有數(shù)據(jù)上傳、數(shù)據(jù)請(qǐng)求、數(shù)據(jù)訪問(wèn)權(quán)限控制、數(shù)據(jù)查詢4 個(gè)主要功能模塊。在數(shù)據(jù)上傳時(shí),用戶將數(shù)據(jù)以文檔的形式上傳到IPFS 中,以返回的hash 值作為參數(shù)調(diào)用數(shù)據(jù)上傳接口,返回?cái)?shù)據(jù)基本信息填寫(xiě)界面,完成信息填寫(xiě)后,再調(diào)用數(shù)據(jù)上傳合約存入?yún)^(qū)塊鏈網(wǎng)絡(luò)中。在數(shù)據(jù)請(qǐng)求時(shí),可請(qǐng)求平臺(tái)不存在的數(shù)據(jù)集,DO 會(huì)進(jìn)行權(quán)限審核,審核通過(guò)后,DR 會(huì)收到數(shù)據(jù)hash 地址,DR 可使用hash 地址從IPFS 網(wǎng)絡(luò)中獲取數(shù)據(jù)集。在數(shù)據(jù)查詢時(shí),可根據(jù)數(shù)據(jù)名稱或數(shù)據(jù)類型進(jìn)行精確查找和分類型查找。數(shù)據(jù)管理關(guān)系時(shí)序圖如圖9 所示。
圖9 數(shù)據(jù)管理關(guān)系時(shí)序圖Fig.9 Data management relationship sequence diagram
3)權(quán)限管理模塊
結(jié)合區(qū)塊鏈技術(shù),設(shè)計(jì)的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)訪問(wèn)控制流程具體如下:
(1)數(shù)據(jù)采集完成后,數(shù)據(jù)源向DO 發(fā)送最新數(shù)據(jù)集標(biāo)簽,包含數(shù)據(jù)名稱、數(shù)據(jù)類型、數(shù)據(jù)大小、IPFS hash 地址和數(shù)據(jù)訪問(wèn)路徑。
(2)DO 在區(qū)塊鏈網(wǎng)絡(luò)中發(fā)布數(shù)據(jù)信息。
(3)DR 通過(guò)平臺(tái)向DO 進(jìn)行數(shù)據(jù)請(qǐng)求。
(4)DO 接收到請(qǐng)求者的請(qǐng)求后會(huì)對(duì)其進(jìn)行審核,然后將數(shù)據(jù)訪問(wèn)標(biāo)簽發(fā)送給DR,訪問(wèn)標(biāo)簽包含數(shù)據(jù)集hash 地址、訪問(wèn)路徑和查詢方式。
(5)DR 收到數(shù)據(jù)訪問(wèn)標(biāo)簽后可以直接從數(shù)據(jù)源處獲取數(shù)據(jù)集信息。
(6)DR 對(duì)數(shù)據(jù)源的操作結(jié)束后,數(shù)據(jù)源會(huì)將信息反饋給DO 并進(jìn)行數(shù)據(jù)操作記錄。
物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)訪問(wèn)控制流程如圖10 所示。
圖10 物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)訪問(wèn)控制流程Fig.10 Procedure of IoT data service access control
4)信譽(yù)評(píng)估模塊
數(shù)據(jù)服務(wù)信譽(yù)評(píng)估模塊包括數(shù)據(jù)質(zhì)量評(píng)價(jià)、信譽(yù)信息查詢、信譽(yù)信息更新功能模塊。在交易完成后,DR 都會(huì)根據(jù)數(shù)據(jù)集的不同維度進(jìn)行評(píng)價(jià),評(píng)價(jià)信息可對(duì)DO 提供一個(gè)有利的反饋信息,用于改善數(shù)據(jù)質(zhì)量,同時(shí)還會(huì)根據(jù)上文計(jì)算出的指標(biāo)權(quán)重對(duì)本次交易進(jìn)行信譽(yù)計(jì)算,用于標(biāo)注該用戶的可信程度。
3.2.1 系統(tǒng)架構(gòu)
基于以太坊的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)原型系統(tǒng)的分層架構(gòu)如圖11 所示。表現(xiàn)層采用HTML5、Bootstrap等前端技術(shù)實(shí)現(xiàn)人機(jī)交互界面,更好地展現(xiàn)不同的服務(wù)。服務(wù)層采用SSM(SpringMVC+Spring+Mybatis)框架和Web3.js 將合約所提供的接口進(jìn)行封裝,整合為不同的服務(wù)接口。合約層采用Solidity 智能合約語(yǔ)言實(shí)現(xiàn)各個(gè)合約邏輯功能。區(qū)塊鏈層采用以太坊私有鏈區(qū)塊鏈平臺(tái)。在數(shù)據(jù)存儲(chǔ)層中采用IPFS、Mysql 和Redis 數(shù)據(jù)庫(kù)存儲(chǔ)大型文件、平臺(tái)相關(guān)信息和不經(jīng)常變更且高頻率訪問(wèn)的數(shù)據(jù)。
圖11 基于以太坊的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)原型系統(tǒng)的分層架構(gòu)Fig.11 Layered architecture of Ethereum-based IoT data service prototype system
3.2.2 關(guān)鍵合約實(shí)現(xiàn)
約定合約下半?yún)^(qū)表示功能函數(shù),上半?yún)^(qū)表示全局變量,-為個(gè)人可見(jiàn)的私有變量,+為所有賬戶可見(jiàn)的公有變量,#表示需要特定權(quán)限才能進(jìn)行調(diào)用。關(guān)鍵合約具體如下:
1)物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)管理主合約。該合約負(fù)責(zé)將系統(tǒng)中所有合約功能接口整合封裝,提供更加簡(jiǎn)潔的接口調(diào)用,如圖12 所示。
圖12 物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)管理主合約Fig.12 IoT data service management main contract
2)用戶注冊(cè)合約。該合約具有用戶注冊(cè)、用戶信息記錄、用戶信譽(yù)值初始計(jì)算等功能,如圖13所示。
圖13 用戶注冊(cè)合約Fig.13 User register contract
3)數(shù)據(jù)合約。該合約存儲(chǔ)數(shù)據(jù)名稱、數(shù)據(jù)類型、訪問(wèn)路由、提供者等信息,如圖14 所示。
圖14 數(shù)據(jù)合約Fig.14 Data contract
4)信譽(yù)管理合約。該合約具有信譽(yù)值計(jì)算、數(shù)據(jù)服務(wù)評(píng)價(jià)、修改評(píng)價(jià)記錄、叛徒追蹤等功能,如圖15 所示。
圖15 信譽(yù)管理合約Fig.15 Reputation management contract
3.2.3 性能測(cè)試
新的以太坊節(jié)點(diǎn)加入到區(qū)塊鏈網(wǎng)絡(luò)中都會(huì)自動(dòng)備份所有交易數(shù)據(jù),與其他節(jié)點(diǎn)共同參與整個(gè)網(wǎng)絡(luò)數(shù)據(jù)的維護(hù)。在共識(shí)過(guò)程中節(jié)點(diǎn)需要進(jìn)行挖礦,節(jié)點(diǎn)挖礦速度如圖16 所示。
圖16 節(jié)點(diǎn)挖礦速度Fig.16 Node mining speed
為驗(yàn)證本文提出的信譽(yù)評(píng)估模型的有效性和正確性,實(shí)驗(yàn)場(chǎng)景設(shè)置為4 個(gè)節(jié)點(diǎn)在200 min 內(nèi)分別執(zhí)行不同行為。如圖17 所示,對(duì)4 個(gè)節(jié)點(diǎn)的初始信譽(yù)值設(shè)為50。在T1到T2、T3到T4時(shí)間段內(nèi),節(jié)點(diǎn)A、B、C、D 通過(guò)積極地進(jìn)行數(shù)據(jù)服務(wù),從而使得它們的信譽(yù)評(píng)分都有所增長(zhǎng)。在T2到T3時(shí)間段內(nèi):節(jié)點(diǎn)A 通過(guò)大量的共享真實(shí)數(shù)據(jù),使得信譽(yù)得分顯著增加;節(jié)點(diǎn)B 共享虛假信息的行為被節(jié)點(diǎn)C 舉報(bào),并被LEA仲裁結(jié)果為真,從而節(jié)點(diǎn)B 的得分急劇下降,節(jié)點(diǎn)C也相應(yīng)得到獎(jiǎng)勵(lì);節(jié)點(diǎn)D 被LEA 仲裁為故意誹謗其他節(jié)點(diǎn),所以進(jìn)行相應(yīng)的處罰。在T4到T5時(shí)間段內(nèi),節(jié)點(diǎn)C 正常分享數(shù)據(jù),節(jié)點(diǎn)B 被節(jié)點(diǎn)A 舉報(bào)惡意進(jìn)行數(shù)據(jù)評(píng)價(jià)并被仲裁為真,節(jié)點(diǎn)D 又被仲裁為惡意誹謗并進(jìn)行了相應(yīng)的獎(jiǎng)懲。實(shí)驗(yàn)結(jié)果驗(yàn)證了該信譽(yù)評(píng)估模型的有效性。
圖17 信譽(yù)值計(jì)算驗(yàn)證Fig.17 Reputation value calculation verification
為驗(yàn)證信譽(yù)數(shù)據(jù)的響應(yīng)速度,將本文模型與基于集中式信譽(yù)管理系統(tǒng)的淘寶、京東平臺(tái)進(jìn)行響應(yīng)速度比較,如圖18 所示。由圖18 可以看出,本文模型的第一次信譽(yù)請(qǐng)求時(shí)間較長(zhǎng)是因?yàn)榈谝淮握?qǐng)求是從區(qū)塊鏈中取值,后續(xù)會(huì)從Redis 中取值,并且對(duì)信譽(yù)數(shù)據(jù)的請(qǐng)求處理速度與主流平臺(tái)具有可比性。
圖18 信譽(yù)數(shù)據(jù)請(qǐng)求響應(yīng)時(shí)間對(duì)比Fig.18 Comparison of reputation data request response time
本文設(shè)計(jì)基于區(qū)塊鏈的物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)評(píng)估模型,用戶通過(guò)向物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)平臺(tái)上傳物聯(lián)網(wǎng)數(shù)據(jù)源或者檢索數(shù)據(jù),根據(jù)數(shù)據(jù)提供者自身信譽(yù)或數(shù)據(jù)評(píng)價(jià)記錄進(jìn)行數(shù)據(jù)篩選,并利用訪問(wèn)控制進(jìn)行數(shù)據(jù)權(quán)限的交互。在交互完成后進(jìn)行數(shù)據(jù)質(zhì)量評(píng)價(jià),采用環(huán)簽名技術(shù)保證評(píng)價(jià)真實(shí)性并隱藏用戶個(gè)人信息。同時(shí),利用IPFS 解決了數(shù)據(jù)冗余和存儲(chǔ)性能瓶頸的問(wèn)題,通過(guò)Redis 提升了區(qū)塊鏈數(shù)據(jù)檢索速度。測(cè)試結(jié)果表明,該模型能夠有效進(jìn)行物聯(lián)網(wǎng)數(shù)據(jù)評(píng)估,并在分布式環(huán)境中保證了系統(tǒng)安全性和魯棒性。下一步將優(yōu)化物聯(lián)網(wǎng)數(shù)據(jù)服務(wù)信譽(yù)評(píng)估模型的系統(tǒng)結(jié)構(gòu),并引入自然語(yǔ)言處理技術(shù),對(duì)數(shù)據(jù)評(píng)價(jià)進(jìn)行自動(dòng)識(shí)別,提升信譽(yù)評(píng)估維度。