喬 蕊, 曹 琰, 王清賢
1(信息工程大學(xué),河南 鄭州 450001)
2(數(shù)學(xué)工程與先進(jìn)計(jì)算國(guó)家重點(diǎn)實(shí)驗(yàn)室,河南 鄭州 450001)
物聯(lián)網(wǎng)廣泛應(yīng)用于工業(yè)、醫(yī)療、教育、供應(yīng)鏈等眾多領(lǐng)域,在多方授權(quán)實(shí)體的參與下,以時(shí)間為基本維度產(chǎn)生新的數(shù)據(jù),本文稱為動(dòng)態(tài)數(shù)據(jù)(dynamic data,簡(jiǎn)稱DD),這些數(shù)據(jù)的操作要求安全、可追溯,以便用于各種取證及決策等[1,2].動(dòng)態(tài)數(shù)據(jù)具有以下特征.
(1) 持續(xù)性.伴隨著時(shí)間的推移,在多方實(shí)體參與下持續(xù)產(chǎn)生新的動(dòng)態(tài)數(shù)據(jù);
(2) 時(shí)間敏感性.動(dòng)態(tài)數(shù)據(jù)是對(duì)產(chǎn)生時(shí)間和應(yīng)用時(shí)間敏感的數(shù)據(jù),例如取某段時(shí)間內(nèi)產(chǎn)生的動(dòng)態(tài)數(shù)據(jù)對(duì)未來進(jìn)行預(yù)測(cè)等;
(3) 多維度.在不同應(yīng)用場(chǎng)景中,動(dòng)態(tài)數(shù)據(jù)存在除時(shí)間維度外的多種維度數(shù)據(jù),如供應(yīng)鏈系統(tǒng)中參與交易的實(shí)體地址、交易額等,工業(yè)控制系統(tǒng)中工程文件的操作、權(quán)限的設(shè)置等[3];
(4) 可用性.動(dòng)態(tài)數(shù)據(jù)應(yīng)具備可用性,支持用戶尤其是企業(yè)用戶的安全管理需求,如分析查看日志信息、了解數(shù)據(jù)使用情況以及展開違法操作調(diào)查等.
可追溯性是確保動(dòng)態(tài)數(shù)據(jù)完整性和可靠性的重要前提,是物聯(lián)網(wǎng)系統(tǒng)中動(dòng)態(tài)數(shù)據(jù)可用性的重要體現(xiàn).因此,保證動(dòng)態(tài)數(shù)據(jù)的可追溯性具有重大意義.
動(dòng)態(tài)數(shù)據(jù)的可追溯性包括動(dòng)態(tài)數(shù)據(jù)本身及對(duì)動(dòng)態(tài)數(shù)據(jù)的歷史操作的可追溯,其目的是確保動(dòng)態(tài)數(shù)據(jù)的完整性和可靠性,即保證在存儲(chǔ)及轉(zhuǎn)移的過程中未發(fā)生篡改或偽造.近年來,網(wǎng)絡(luò)犯罪已經(jīng)從個(gè)人行為轉(zhuǎn)變?yōu)橛薪M織的行為,攻擊在數(shù)據(jù)篡改、偽造等方面越來越專業(yè)[4].而現(xiàn)有的數(shù)據(jù)基礎(chǔ)設(shè)施最初設(shè)計(jì)為應(yīng)用于合法的數(shù)據(jù)存儲(chǔ)場(chǎng)景,通常采用中心數(shù)據(jù)庫(kù)與訪問控制、接入認(rèn)證、信息加密、數(shù)字水印等傳統(tǒng)密碼學(xué)方法結(jié)合的安全手段,將動(dòng)態(tài)數(shù)據(jù)集中存儲(chǔ)和處理[5-8],或采用以云計(jì)算為基礎(chǔ)的數(shù)據(jù)存儲(chǔ),將各種數(shù)據(jù)資源抽象成資源池[9,10],供用戶使用.上述設(shè)計(jì)方案存在安全隱患,例如,高價(jià)值數(shù)據(jù)集中存儲(chǔ)極易被攻擊、算法復(fù)雜度高等.因此,防止動(dòng)態(tài)數(shù)據(jù)被篡改和被偽造成為具有挑戰(zhàn)性的任務(wù).為了提高動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)的安全性,必須從兩方面對(duì)數(shù)據(jù)進(jìn)行保護(hù):一方面驗(yàn)證動(dòng)態(tài)數(shù)據(jù)的正確性,避免被篡改、偽造;另一方面,實(shí)現(xiàn)對(duì)動(dòng)態(tài)數(shù)據(jù)操作歷史的可追溯,提供數(shù)據(jù)恢復(fù)能力.
本文提出一種動(dòng)態(tài)數(shù)據(jù)溯源機(jī)制:采用區(qū)塊鏈方式記錄網(wǎng)絡(luò)動(dòng)態(tài)數(shù)據(jù)流轉(zhuǎn)的全生命周期,對(duì)動(dòng)態(tài)數(shù)據(jù)進(jìn)行記錄、追溯、確權(quán),以從源頭保證該數(shù)字資產(chǎn)以及所代表信息的真實(shí)性,減少甚至阻止篡改攻擊的可能性.分析共識(shí)終端最大化自身收益的局部行為與保障動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)安全性和有效性整體目標(biāo)的一致性,提出適用于動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)的共識(shí)機(jī)制,減少算力浪費(fèi).采用密鑰分發(fā)機(jī)制,分層傳遞并驗(yàn)證各級(jí)動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)平臺(tái)信息,相鄰層次間通信采用二次散列迭代的方式,利用公鑰加密正反向不對(duì)稱性,增加系統(tǒng)被攻破的難度.
本文的主要工作如下:建立了物聯(lián)網(wǎng)動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)安全問題的數(shù)學(xué)模型,提出了用于實(shí)現(xiàn)操作實(shí)體多維授權(quán)與動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)的雙鏈結(jié)構(gòu);分析群體博弈過程中,單個(gè)節(jié)點(diǎn)進(jìn)行決策的誠(chéng)實(shí)行為動(dòng)機(jī)及特定行業(yè)背景下分布式節(jié)點(diǎn)合作的本質(zhì),提出了一種適用于動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)的共識(shí)機(jī)制,以共識(shí)機(jī)制保障動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)的安全性;提出了一種動(dòng)態(tài)數(shù)據(jù)溯源信息在物聯(lián)網(wǎng)多方實(shí)體間動(dòng)態(tài)流轉(zhuǎn)的分層溯源機(jī)制,通過公鑰機(jī)制構(gòu)建通信通道,完成動(dòng)態(tài)數(shù)據(jù)在通信系統(tǒng)中端到端加密安全傳輸,利用加密運(yùn)算正反向不對(duì)稱性,有效防止動(dòng)態(tài)數(shù)據(jù)被篡改、偽造.
本文第 1節(jié)介紹相關(guān)工作.第 2節(jié)抽象出對(duì)物聯(lián)網(wǎng)動(dòng)態(tài)數(shù)據(jù)操作具有通用性的方式和過程,提出動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)問題模型.第 3節(jié)介紹區(qū)塊鏈相關(guān)概念,分析聯(lián)盟鏈解決物聯(lián)網(wǎng)動(dòng)態(tài)數(shù)據(jù)儲(chǔ)存的適用性,基于博弈論理論分析物聯(lián)網(wǎng)環(huán)境下各節(jié)點(diǎn)達(dá)成共識(shí)的邊界條件,提出基于驗(yàn)證節(jié)點(diǎn)列表的聯(lián)盟鏈共識(shí)算法,進(jìn)一步提出基于上述共識(shí)算法的物聯(lián)網(wǎng)動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)體系結(jié)構(gòu).第 4節(jié)通過理論分析及實(shí)驗(yàn)部署證明本方案對(duì)于抵御常見攻擊,實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)操作溯源的有效性.第5節(jié)總結(jié)全文.
在物聯(lián)網(wǎng)飛速發(fā)展的同時(shí),物聯(lián)網(wǎng)動(dòng)態(tài)數(shù)據(jù)安全面臨嚴(yán)峻的挑戰(zhàn),許多研究人員開展了對(duì)中心數(shù)據(jù)庫(kù)和云存儲(chǔ)服務(wù)安全性的研究[11-18].文獻(xiàn)[12]審查了29個(gè)不同的基于USB對(duì)數(shù)據(jù)庫(kù)的攻擊,并將它們分為4個(gè)主要類別.提出了一種方法來識(shí)別每個(gè)攻擊的相關(guān)和脆弱的 USB外圍設(shè)備和硬件,但這意味著該方法允許攻擊發(fā)生,存在數(shù)據(jù)庫(kù)被破壞的可能性.文獻(xiàn)[13]提出了一種數(shù)據(jù)庫(kù)入侵檢測(cè)機(jī)制,通過在網(wǎng)站上使用SQL注入,記錄入侵者的所有活動(dòng)來增強(qiáng)數(shù)據(jù)庫(kù)的安全性.管理員可以查看詳細(xì)信息,阻止攻擊者向數(shù)據(jù)庫(kù)注入惡意代碼,竊取、銷毀或修改數(shù)據(jù)庫(kù).但單方信任機(jī)制無法控制擁有高級(jí)訪問權(quán)限的工作人員對(duì)動(dòng)態(tài)數(shù)據(jù)進(jìn)行惡意篡改或偽造[14].此外,文獻(xiàn)[15]指出,動(dòng)態(tài)數(shù)據(jù)多由智能處理終端或現(xiàn)場(chǎng)采樣設(shè)備采集、編碼和存儲(chǔ),這些設(shè)備的處理和存儲(chǔ)性能有限,加之動(dòng)態(tài)數(shù)據(jù)的持續(xù)性特征導(dǎo)致其隨時(shí)間增長(zhǎng)的數(shù)據(jù)量較大,因此,復(fù)雜度較高的安全算法不適用解決動(dòng)態(tài)數(shù)據(jù)的防篡改、防偽造問題.文獻(xiàn)[16]指出:由于云端數(shù)據(jù)允許多授權(quán)用戶訪問,無法對(duì)數(shù)據(jù)信息的去向和各級(jí)主體的操作歷史提供充分的證據(jù),因此無法滿足某些特殊領(lǐng)域(如工業(yè)控制系統(tǒng)、溯源系統(tǒng)等)對(duì)系統(tǒng)動(dòng)態(tài)數(shù)據(jù)的整個(gè)訪問過程進(jìn)行審計(jì)的需求,一旦出現(xiàn)問題難以定責(zé).文獻(xiàn)[17]為解決云平臺(tái)下不受控制的惡意修改可能破壞共享數(shù)據(jù)的可用性問題,提出了一種公共審計(jì)解決方案,可以同時(shí)保護(hù)群體成員的身份隱私和身份可追溯性.但在云平臺(tái)下,用戶無法與云服務(wù)提供商建立信任,并確保服務(wù)協(xié)議僅使用 Web前端接口[18].為了避免敏感信息被竊取、篡改和偽造,系統(tǒng)需要一個(gè)可靠的云平臺(tái)服務(wù)提供商.
鑒于傳統(tǒng)數(shù)據(jù)庫(kù)和云存儲(chǔ)服務(wù)存在安全隱患,且不可避免,實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)的可追溯性是保障物聯(lián)網(wǎng)動(dòng)態(tài)數(shù)據(jù)安全應(yīng)用的關(guān)鍵.通過分析近幾年溯源領(lǐng)域的論文,發(fā)現(xiàn)目前許多現(xiàn)代可追溯系統(tǒng)是基于射頻識(shí)別(radio frequency identification devices,簡(jiǎn)稱 RFID)技術(shù)[19-21].文獻(xiàn)[19]提出了一種電子譜系的食品可追溯系統(tǒng),利用射頻識(shí)別技術(shù)跟蹤、定位物品在被無線傳感器網(wǎng)絡(luò)收集儲(chǔ)存和運(yùn)輸過程中的溫度和濕度.但針對(duì)傳感器數(shù)據(jù)損壞或丟失的問題,文中僅采用預(yù)測(cè)的方式,無法從根本上解決.文獻(xiàn)[20]提出一種基于公鑰加密技術(shù)的高級(jí)數(shù)據(jù)保護(hù)方案,該方案能夠?qū)崿F(xiàn)RFID數(shù)據(jù)的可追溯性和鏈性活動(dòng).與傳統(tǒng)的RFID安全方案相比,該方案適用于沒有任何加密功能的標(biāo)準(zhǔn) RFID 標(biāo)簽,并且不需要中心數(shù)據(jù)庫(kù).但操作的復(fù)雜度較高,對(duì)標(biāo)簽性能要求較高.文獻(xiàn)[21]對(duì)RFID標(biāo)簽的加密能力進(jìn)行研究,提出了能夠執(zhí)行加密操作的RFID標(biāo)簽體系結(jié)構(gòu).但是加密功能增加了標(biāo)簽的成本,并且涉及昂貴的身份驗(yàn)證計(jì)算.
根據(jù)物聯(lián)網(wǎng)系統(tǒng)的應(yīng)用特點(diǎn)和要求,需要采取安全措施對(duì)系統(tǒng)產(chǎn)生的動(dòng)態(tài)數(shù)據(jù)進(jìn)行存儲(chǔ)和共享,實(shí)現(xiàn)動(dòng)態(tài)數(shù)據(jù)的可追溯.RFID在溯源系統(tǒng)中應(yīng)用的研究?jī)H適用于對(duì)有形資產(chǎn)的追溯,不適用于對(duì)物聯(lián)網(wǎng)動(dòng)態(tài)數(shù)據(jù)的追溯.而云計(jì)算等中心化數(shù)據(jù)庫(kù)僅僅實(shí)現(xiàn)了動(dòng)態(tài)數(shù)據(jù)的存儲(chǔ),在抵抗惡意用戶(包括具有高級(jí)權(quán)限的內(nèi)部人員)篡改、偽造動(dòng)態(tài)數(shù)據(jù)方面具有天然的缺陷[22,23].區(qū)塊鏈在不引入第三方中介機(jī)構(gòu)的前提下,可以提供去中心化、不可篡改、安全可靠等特性保證[24].目前,已有研究來創(chuàng)建更具可擴(kuò)展性的區(qū)塊鏈,文獻(xiàn)[25]提出 Bitcoin-NG區(qū)塊鏈協(xié)議,它是拜占庭容錯(cuò)的,共享相同的信任模型,具有較強(qiáng)的魯棒性.文獻(xiàn)[26]提出的 GHOST規(guī)則解決了提高塊創(chuàng)建速度的問題,這是對(duì)比特幣節(jié)點(diǎn)構(gòu)建和重新組織區(qū)塊鏈的一種改進(jìn).文獻(xiàn)[27]提出可以重組鏈,構(gòu)建區(qū)塊的有向非循環(huán)圖,并降低允許交易的授權(quán)規(guī)則.雖然這些模型顯著提高了運(yùn)算速度,但它們可擴(kuò)展性較差,并且需要復(fù)雜的數(shù)據(jù)結(jié)構(gòu)或共識(shí)機(jī)制.文獻(xiàn)[28]介紹了一種基于區(qū)塊鏈技術(shù)的去信任物聯(lián)網(wǎng)設(shè)備匿名共享方法,對(duì)于解決物聯(lián)網(wǎng)動(dòng)態(tài)數(shù)據(jù)的溯源問題有一定借鑒.本文通過分析動(dòng)態(tài)數(shù)據(jù)面向多機(jī)構(gòu)的區(qū)塊鏈應(yīng)用場(chǎng)景,在聯(lián)盟鏈的基礎(chǔ)上,提出一種全新的去中心化基礎(chǔ)架構(gòu)與分布式計(jì)算模型,將區(qū)塊的共識(shí)及可見性限制在聯(lián)盟鏈內(nèi)部,有效地降低了參與記賬節(jié)點(diǎn)的數(shù)量,實(shí)現(xiàn)快速共識(shí)驗(yàn)證,可以很好地解決動(dòng)態(tài)數(shù)據(jù)的存儲(chǔ)及溯源問題.
定義1.操作實(shí)體(operation entity,簡(jiǎn)稱OE)是指動(dòng)態(tài)數(shù)據(jù)D生命周期數(shù)據(jù)流動(dòng)過程中的所有參與實(shí)體,用四元組〈ID,FOE,ROE,D〉表示.
·ID是操作實(shí)體的標(biāo)識(shí)符,用以對(duì)操作實(shí)體進(jìn)行唯一標(biāo)識(shí);
定義2.實(shí)體OEi的授權(quán)屬性特征值用集合li表示,H:{0,1}*→{0,1}ω,lij∈{0,1}ω,H是理想化的哈希函數(shù),ω為哈希后得到的特征值長(zhǎng)度,δ是授權(quán)操作DAG圖中節(jié)點(diǎn)最大入度:
由定義 2,若操作實(shí)體的授權(quán)屬性集合li中存在多個(gè)元素,表示存在多個(gè)父節(jié)點(diǎn)對(duì)其授權(quán),SKpj為實(shí)體OEi父節(jié)點(diǎn)的私鑰,從集合li中刪除某個(gè)元素表示某個(gè)父節(jié)點(diǎn)取消授權(quán);反之亦成立.li=ε表示其擁有根權(quán)限,li=?表示該實(shí)體授權(quán)為空.
與圖1對(duì)應(yīng)的動(dòng)態(tài)數(shù)據(jù)操作軌跡用多維DAG圖表示,如圖2所示,節(jié)點(diǎn)表示動(dòng)態(tài)數(shù)據(jù)文件授權(quán),其中,圓形節(jié)點(diǎn)表示對(duì)應(yīng)操作實(shí)體僅持有一項(xiàng)操作授權(quán),將產(chǎn)生一份動(dòng)態(tài)數(shù)據(jù)文件;柱狀節(jié)點(diǎn)表示對(duì)應(yīng)操作實(shí)體持有多項(xiàng)操作授權(quán)即多維授權(quán),將產(chǎn)生多份動(dòng)態(tài)數(shù)據(jù)文件;有向邊表示動(dòng)態(tài)數(shù)據(jù)文件在新操作下的演進(jìn)軌跡.
定義3.對(duì)于DAG圖中節(jié)點(diǎn)i,入度為δi,若δi≤1,保持節(jié)點(diǎn)不變化;δi>1,節(jié)點(diǎn)為每個(gè)入度授權(quán)的集合,其元素個(gè)數(shù)|li|=δi,這樣得到的圖稱為多維DAG圖.δi>1時(shí),存在多個(gè)父節(jié)點(diǎn)對(duì)節(jié)點(diǎn)i的授權(quán),稱為父節(jié)點(diǎn)對(duì)節(jié)點(diǎn)i的多維授權(quán).
定義 5.操作實(shí)體及其后繼節(jié)點(diǎn)執(zhí)行原子操作產(chǎn)生的動(dòng)態(tài)數(shù)據(jù)文件的集合,稱為該操作實(shí)體的域(domain),域中的動(dòng)態(tài)數(shù)據(jù)文件稱為該域的對(duì)象(object);操作實(shí)體的操作授權(quán)范圍覆蓋自身的域;操作實(shí)體的域可以包含其后繼操作實(shí)體的域,被包含的域稱為子域(sub domain,簡(jiǎn)稱 SD);域所包含的子域和對(duì)象統(tǒng)稱為該域的成員(member),子域所包含的成員,稱為間接成員.
定義6.操作實(shí)體受到攻擊導(dǎo)致其授權(quán)操作的動(dòng)態(tài)數(shù)據(jù)均不可靠,則該操作實(shí)體域中的對(duì)象均不可靠,稱為該操作實(shí)體的失效覆蓋集(failure coverage set,簡(jiǎn)稱FCS).除創(chuàng)始節(jié)點(diǎn)外的各節(jié)點(diǎn)均處于操作實(shí)體的多重失效覆蓋集.
實(shí)際情況下,操作實(shí)體均存在由惡意攻擊導(dǎo)致的數(shù)據(jù)篡改或偽造的可能性,本文對(duì)動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)面臨的安全威脅問題進(jìn)行如下假設(shè).
(1) 每個(gè)攻擊者單獨(dú)到來,相互獨(dú)立;
(2) 在時(shí)間[0,t]內(nèi),系統(tǒng)受到的攻擊數(shù)量{N(t),t≥0}滿足參數(shù)為λ的泊松分布;
(3) 操作實(shí)體第i次受到攻擊的損失為L(zhǎng)i,且損失隨時(shí)間按負(fù)指數(shù)衰減,損失可累加;
(4) 每次攻擊到達(dá)的時(shí)間間隔和造成的破壞相互獨(dú)立.
t=0 時(shí),損失為L(zhǎng);t=ti(ti>0)時(shí),損失為L(zhǎng)e-αti.設(shè){Li,i≥1}獨(dú)立同分布,且與{N(t),t≥0}獨(dú)立,那么時(shí)間[0,t]內(nèi)不考慮失效覆蓋的損失表示為
條件期望為
記Y1,…,Yn為[0,t]上獨(dú)立同均勻分布的隨機(jī)變量,有:
所以:
即:
因此:
考慮失效覆蓋的情況,用FCS(i)表示節(jié)點(diǎn)i的失效覆蓋范圍,本文優(yōu)化目標(biāo)為
學(xué)術(shù)界對(duì)區(qū)塊鏈技術(shù)并沒有統(tǒng)一的定義,但一般認(rèn)為,區(qū)塊鏈?zhǔn)且环N按照時(shí)間順序?qū)?shù)據(jù)區(qū)塊以鏈條的方式組合形成的特定數(shù)據(jù)結(jié)構(gòu),并以密碼學(xué)方式保證其不可篡改和不可偽造的去中心化、去信任的分布式共享總賬系統(tǒng)[29].區(qū)塊鏈的提出是計(jì)算機(jī)科學(xué)的一個(gè)突破,它有望降低個(gè)人和組織建立、維護(hù)信任的成本[30],讓沒有信任關(guān)系的人們?cè)跓o中心化信任機(jī)構(gòu)的情況下合作[31].自2008年Nakamoto發(fā)表奠基性論文[32]以來,經(jīng)過近年的快速發(fā)展,區(qū)塊鏈技術(shù)越來越受到政府、銀行及相關(guān)研究人員的重視.世界經(jīng)濟(jì)論壇(world economic forum,簡(jiǎn)稱WEF)于2016年8月發(fā)布了研究報(bào)告[33],區(qū)塊鏈成為當(dāng)前技術(shù)研究的熱點(diǎn),包括對(duì)區(qū)塊鏈協(xié)議的分析[34-36]、區(qū)塊鏈技術(shù)在某些領(lǐng)域的應(yīng)用等[37-39].
區(qū)塊鏈可以分為3類:公共鏈、聯(lián)盟鏈和私有鏈.公共鏈對(duì)外公開,用戶不用注冊(cè)就能匿名自由出入網(wǎng)絡(luò),無需授權(quán)即可訪問網(wǎng)絡(luò)和區(qū)塊鏈,如比特網(wǎng)[32]和以太坊[40];聯(lián)盟鏈僅限于聯(lián)盟成員參與,區(qū)塊鏈上的讀寫權(quán)限、參與記賬權(quán)按聯(lián)盟規(guī)則來制訂,如由多家銀行參與的區(qū)塊鏈聯(lián)盟 R3[41]、Linux基金會(huì)支持的超級(jí)賬本項(xiàng)目[42]都屬于聯(lián)盟鏈架構(gòu);私有鏈僅在私有組織使用,區(qū)塊鏈上的讀寫權(quán)限、參與記賬權(quán)限按私有組織規(guī)則來制訂.
聯(lián)盟鏈可以根據(jù)應(yīng)用場(chǎng)景來決定對(duì)公眾的開放程度,其網(wǎng)絡(luò)由成員機(jī)構(gòu)共同維護(hù),節(jié)點(diǎn)通過成員機(jī)構(gòu)的網(wǎng)關(guān)節(jié)點(diǎn)接入,因此適用于物聯(lián)網(wǎng)行業(yè)背景下多成員機(jī)構(gòu)對(duì)動(dòng)態(tài)數(shù)據(jù)的存儲(chǔ)、管理、授權(quán)、監(jiān)控和審計(jì).在實(shí)際物聯(lián)網(wǎng)應(yīng)用背景下,用戶、資源、服務(wù)、終端存在泛在接入與授權(quán)操作的特點(diǎn),參與的多方實(shí)體存在一定的信任前提和利益約束,實(shí)體間數(shù)據(jù)操作共識(shí)激勵(lì)機(jī)制和分布式賬本記賬權(quán)確定等問題還需要進(jìn)一步研究.
分布式共識(shí)是構(gòu)建基于區(qū)塊鏈技術(shù)零信任動(dòng)態(tài)數(shù)據(jù)溯源機(jī)制必須解決的關(guān)鍵問題,而達(dá)成共識(shí)的條件在公開匿名場(chǎng)景下和帶權(quán)限管理的場(chǎng)景下需求差異較大[43,44].例如,比特幣等金融系統(tǒng)在決策權(quán)高度分散的去中心化系統(tǒng)中采用經(jīng)濟(jì)激勵(lì)機(jī)制,使各節(jié)點(diǎn)高效地針對(duì)區(qū)塊數(shù)據(jù)的有效性達(dá)成共識(shí),該方式面向公有鏈中的任意節(jié)點(diǎn)的自由加入簡(jiǎn)單有效.而動(dòng)態(tài)數(shù)據(jù)常常是與特定工作過程聯(lián)系緊密的行業(yè)內(nèi)部數(shù)據(jù),對(duì)動(dòng)態(tài)數(shù)據(jù)的管理更適合采用聯(lián)盟鏈方式,僅允許核準(zhǔn)的節(jié)點(diǎn)加入,貨幣體系背景下共識(shí)激勵(lì)顯然不適用于聯(lián)盟鏈方式下對(duì)動(dòng)態(tài)數(shù)據(jù)的管理.在聯(lián)盟鏈方式下,參與多方存在一定的信任前提和利益約束,本節(jié)通過分析該群體博弈過程中單個(gè)節(jié)點(diǎn)進(jìn)行決策的誠(chéng)實(shí)行為動(dòng)機(jī),提出特定行業(yè)背景下分布式節(jié)點(diǎn)合作的本質(zhì)——使各節(jié)點(diǎn)在與環(huán)境的交互與分布式計(jì)算過程中獲得最大的累積效用,進(jìn)一步分析動(dòng)態(tài)數(shù)據(jù)可追溯系統(tǒng)中各節(jié)點(diǎn)達(dá)成共識(shí)的邊界條件,優(yōu)化共識(shí)算法設(shè)計(jì).
設(shè)動(dòng)態(tài)數(shù)據(jù)可追溯系統(tǒng)中參與區(qū)塊信息驗(yàn)證的節(jié)點(diǎn)集合為有限集,對(duì)每個(gè)參與區(qū)塊信息驗(yàn)證的節(jié)點(diǎn)i有策略空間及收益函數(shù)Ui,即每個(gè)參與節(jié)點(diǎn)i在策略空間Si=(s1,s2,…,sn)下的馮·諾依曼-摩根斯坦效用為U(Si),本文將策略空間Si下節(jié)點(diǎn)預(yù)期效用U(Si)作為評(píng)價(jià)各動(dòng)作的價(jià)值函數(shù).
每個(gè)參與節(jié)點(diǎn)的目標(biāo)是最大化自己的收益,因此為了簡(jiǎn)化問題,除節(jié)點(diǎn)i以外的所有其他節(jié)點(diǎn)標(biāo)記為“-i”.通過分析節(jié)點(diǎn)i和-i相互作用并達(dá)成具有約束力協(xié)議的共識(shí)過程,得到節(jié)點(diǎn)i和-i收益矩陣見表1.
Table 1 Yield matrix of nodes i and -i表1 節(jié)點(diǎn)i和-i收益矩陣
表1中,C表示某節(jié)點(diǎn)合作(cooperative),B表示背叛(betray),收益函數(shù)表達(dá)式中第1項(xiàng)為對(duì)應(yīng)策略下節(jié)點(diǎn)i的收益(分別為PiCC,PiBC,PiCB,PiBB),第2項(xiàng)為對(duì)應(yīng)策略下節(jié)點(diǎn)-i的收益(分別為P-iCC,P-iBC,P-iCB,P-iBB).溯源系統(tǒng)各節(jié)點(diǎn)共識(shí)模型的構(gòu)建基于以下前提條件.
(1) 對(duì)于節(jié)點(diǎn)i,在各種策略組合下的收益滿足:
式(5)表明,在節(jié)點(diǎn)行為不一致的情況下,采取背叛策略的一方可以從犧牲其余節(jié)點(diǎn)的合作行為中得到比所有節(jié)點(diǎn)均合作時(shí)更高的收益;在所有節(jié)點(diǎn)均合作,即達(dá)成共識(shí)能夠獲得比都背叛更高的收益;一方合作,其余節(jié)點(diǎn)均背叛將會(huì)給合作方帶來很大損失,或者說導(dǎo)致最低收益.
(2) 節(jié)點(diǎn)i估計(jì)節(jié)點(diǎn)-i背叛的概率為λ,即節(jié)點(diǎn)i對(duì)節(jié)點(diǎn)-i的信任度為1-λ.本文采用聯(lián)盟鏈核準(zhǔn)加入的方式,節(jié)點(diǎn)由相關(guān)溯源系統(tǒng)監(jiān)管機(jī)構(gòu)、社會(huì)團(tuán)體及志愿者構(gòu)成,在參與溯源信息驗(yàn)證的n個(gè)節(jié)點(diǎn)中,誠(chéng)實(shí)節(jié)點(diǎn)占多數(shù)(比例相當(dāng)大),節(jié)點(diǎn)-i發(fā)生背叛是指除節(jié)點(diǎn)i以外的其余節(jié)點(diǎn)產(chǎn)生錯(cuò)誤共識(shí)的情況.由上述分析可知,這種可能性非常小,即λ→0+.
(3) 根據(jù)條件(2),節(jié)點(diǎn)-i發(fā)生背叛的可能性很小,在其采取合作的前提下,若節(jié)點(diǎn)i采取合作將獲得收益PiCC;若節(jié)點(diǎn)i基于投機(jī)主義采取不合作策略,其將獲得表1中短期最大自身收益PiBC,但這將導(dǎo)致系統(tǒng)在時(shí)間[t,t+Δt]內(nèi)識(shí)別出節(jié)點(diǎn)i的背叛,并對(duì)其進(jìn)行懲罰,懲罰代價(jià)函數(shù)P(Si)用節(jié)點(diǎn)信譽(yù)ARi表示,將在本文第3.3節(jié)詳細(xì)描述.因此,節(jié)點(diǎn)i發(fā)生背叛的總體收益為
根據(jù)上面的條件進(jìn)一步分析得出如下結(jié)論:節(jié)點(diǎn)i采取合作或背叛策略取決于當(dāng)前時(shí)刻t節(jié)點(diǎn)i與節(jié)點(diǎn)-i合作所帶來的收益期望值E[U(Si)]與節(jié)點(diǎn)i背叛所帶來的收益期望值E[UBC(Si)]的比較,分兩種情況:
其中,若公式(7)成立,節(jié)點(diǎn)i采取合作策略;若公式(8)成立,節(jié)點(diǎn)i將采取背叛策略.
令θ(0<θ<1)為節(jié)點(diǎn)i的折扣因子,用來調(diào)節(jié)當(dāng)前收益對(duì)長(zhǎng)期收益的影響.λ為節(jié)點(diǎn)i估計(jì)節(jié)點(diǎn)-i在一輪驗(yàn)證過程中采取非合作策略的概率,節(jié)點(diǎn)i采取合作策略時(shí)收益的期望值可表示為
由公式(9)得:
推導(dǎo)過程與上文類似,節(jié)點(diǎn)i采取背叛策略時(shí)收益的期望值可表示為
由公式(7)、公式(10)、公式(11)得節(jié)點(diǎn)i采取合作策略的條件為
由公式(12)得:
公式(13)即為動(dòng)態(tài)數(shù)據(jù)可追溯系統(tǒng)中各節(jié)點(diǎn)達(dá)成共識(shí)的邊界條件.上式中,θ是節(jié)點(diǎn)i長(zhǎng)期收益的折扣因子.θ越大,表明相較當(dāng)前收益,長(zhǎng)期收益對(duì)節(jié)點(diǎn)i的影響越大;θ越小,表明長(zhǎng)期收益對(duì)節(jié)點(diǎn)i的影響越小.在給定節(jié)點(diǎn)行為收益的前提下,不等式左邊的值取決于系數(shù)α1=1/(1-λ)和α2=λ/(1-λ)2,只有當(dāng)不等式右邊折扣因子θ超過一定值時(shí),公式(13)才成立.假設(shè)θ為常數(shù),選擇非合作策略將導(dǎo)致公式(13)左邊的值變大;反之亦成立.因此,為了使節(jié)點(diǎn)選擇合作行為,必須降低不等式左邊的值,即降低系數(shù)α1=1/(1-λ)和α2=λ/(1-λ)2.得出如下結(jié)論.
(1) 節(jié)點(diǎn)間相互信任是進(jìn)行合作的必要非充分條件.公式(13)中,若λ→1-,即節(jié)點(diǎn)間幾乎不存在信任,不等式左邊的取值F(λ)→+∞,節(jié)點(diǎn)間不可能產(chǎn)生合作,因此,節(jié)點(diǎn)間相互信任是進(jìn)行合作的必要條件;若λ=0,不等式左邊的值F(λ)=(PiBC-PiCC)/(PiBC-PiBB),?θ∈(0,1),公式(13)為非重言式的可滿足式,因此,節(jié)點(diǎn)間信任不是產(chǎn)生合作的充分條件;
(2) 在本文第3.3節(jié)提出的共識(shí)算法中,機(jī)構(gòu)優(yōu)先選擇估計(jì)節(jié)點(diǎn)-i背叛概率λ較低的節(jié)點(diǎn)i作為驗(yàn)證節(jié)點(diǎn)列表(verification nodes list,簡(jiǎn)稱VNL)中的節(jié)點(diǎn).隨著λ的減少,節(jié)點(diǎn)i對(duì)節(jié)點(diǎn)-i的信任度將增大,公式(13)中系數(shù)α1和α2將減少,進(jìn)而不等式左邊的值F(λ)下降,節(jié)點(diǎn)i選擇合作策略的可能性增大.
通過研究使得共識(shí)終端最大化自身收益的局部行為與保障動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)安全性和有效性整體目標(biāo)的關(guān)系得出:當(dāng)所有終端都持有待提交驗(yàn)證的區(qū)塊,為了讓自己的收益最大,任何一方都不會(huì)(或者無法)改變自己對(duì)其他區(qū)塊的驗(yàn)證結(jié)果.
根據(jù)本文第 3.2節(jié)達(dá)成共識(shí)的邊界條件,提出基于信譽(yù)的共識(shí)激勵(lì)機(jī)制:通過授權(quán)一部分信任節(jié)點(diǎn)組成一個(gè)驗(yàn)證節(jié)點(diǎn)列表VNL,TVNL={T1,T2,…,Tn},?Ti∈TVNL,初始狀態(tài)下,節(jié)點(diǎn)信譽(yù)ARi=1,每個(gè)節(jié)點(diǎn)通過為其他節(jié)點(diǎn)服務(wù)保持信譽(yù),每輪共識(shí)選取最佳區(qū)塊打包驗(yàn)證節(jié)點(diǎn)的同時(shí),以系數(shù)γ降低最壞區(qū)塊打包驗(yàn)證節(jié)點(diǎn)的信譽(yù),即ARi=γARi(0<γ<1).為了阻止自私行為并鼓勵(lì)節(jié)點(diǎn)保持其信譽(yù),當(dāng)VNL列表中驗(yàn)證節(jié)點(diǎn)信譽(yù)低于某一閾值w時(shí),將該節(jié)點(diǎn)移出VNL列表,當(dāng)超過1/3驗(yàn)證節(jié)點(diǎn)被移出,則必須由授權(quán)機(jī)構(gòu)重新授權(quán)組成新的VNL列表.假設(shè)信譽(yù)閾值是全局的,即所有節(jié)點(diǎn)使用相同的值,關(guān)于特殊情況下某些節(jié)點(diǎn)定義局部閾值方面的問題,還有待進(jìn)一步研究.
每個(gè)參與驗(yàn)證的節(jié)點(diǎn)會(huì)獲取在共識(shí)開始之前未被記錄的所有有效操作,并且以候選集的形式公開他們.然后,每個(gè)參與驗(yàn)證的節(jié)點(diǎn)合并VNL中所有其他驗(yàn)證節(jié)點(diǎn)的候選集合,并對(duì)所有操作的真實(shí)性進(jìn)行比對(duì)投票.對(duì)動(dòng)態(tài)數(shù)據(jù)的有效操作分為兩種情況:一是新數(shù)據(jù)的發(fā)布;二是動(dòng)態(tài)數(shù)據(jù)在不同實(shí)體間的流轉(zhuǎn).上述兩種操作都必須由通過機(jī)構(gòu)授權(quán)的節(jié)點(diǎn)來實(shí)現(xiàn),且均看做一次交易:新數(shù)據(jù)的發(fā)布可以沒有輸入,但必須有輸出,擁有與輸出地址公鑰對(duì)應(yīng)私鑰的節(jié)點(diǎn)即為可對(duì)該地址數(shù)據(jù)進(jìn)行有效操作的授權(quán)節(jié)點(diǎn);動(dòng)態(tài)數(shù)據(jù)在不同實(shí)體間的流轉(zhuǎn)既要有輸入,又要有輸出,其輸入需要通過上一筆輸出地址所對(duì)應(yīng)的私鑰進(jìn)行簽名,驗(yàn)證當(dāng)前節(jié)點(diǎn)是否為授權(quán)節(jié)點(diǎn).通過行業(yè)頂層管理機(jī)構(gòu)預(yù)先頒發(fā)根CA證書(certificate authority),構(gòu)建基于根CA及中間層CA到最底層實(shí)體CA的完整的證書信任鏈來實(shí)現(xiàn)上述信任基礎(chǔ).系統(tǒng)中全節(jié)點(diǎn)服務(wù)器負(fù)責(zé)維護(hù)VNL列表,驗(yàn)證節(jié)點(diǎn)在達(dá)成共識(shí)時(shí)只考慮VNL中成員的驗(yàn)證結(jié)果完成區(qū)塊生成,這種共識(shí)算法在保證安全性的同時(shí),大幅提高了系統(tǒng)達(dá)成共識(shí)的效率.同時(shí),由于驗(yàn)證節(jié)點(diǎn)是機(jī)構(gòu)授權(quán)的節(jié)點(diǎn),一旦其中出現(xiàn)背叛節(jié)點(diǎn)便于系統(tǒng)核實(shí)身份并追究責(zé)任.
區(qū)塊共識(shí)過程的數(shù)學(xué)形式描述如下.
在動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)系統(tǒng)中,TVNL={T1,T2,…,Tn}為系統(tǒng)中驗(yàn)證節(jié)點(diǎn)集合.驗(yàn)證節(jié)點(diǎn)Ti獲取的待驗(yàn)證有效操作候選集記為χ(Ti),合并后的待驗(yàn)證候選集為
某終端Ti∈TVNL提交的打包區(qū)塊Bnewi={tx1,…,txm},txj∈χ(TVNL),獲得其他終端驗(yàn)證組合及其收益用集合Gi={ηi1,…,ηin:ui}表示.由某個(gè)終端Ti進(jìn)行打包的區(qū)塊Bnewi組成的各終端驗(yàn)證組合(ηi1,…,ηin)中,任意參與驗(yàn)證方Tk對(duì)Ti提交區(qū)塊Bnewi的驗(yàn)證結(jié)果表示為ηik,且滿足:
根據(jù)物聯(lián)網(wǎng)系統(tǒng)的規(guī)模及對(duì)吞吐率的要求,為共識(shí)過程設(shè)置合適的等時(shí)間間隔輪,用r表示.在一輪時(shí)間內(nèi),達(dá)成共識(shí)的步驟為:
步驟1.VNL列表驗(yàn)證節(jié)點(diǎn)數(shù)大于2n/3,則執(zhí)行步驟2;否則,等待授權(quán)機(jī)構(gòu)授權(quán)新列表;
步驟2. 本輪時(shí)間未結(jié)束,對(duì)于最早出現(xiàn)的Ti∈TVNL,且使ui(ηi1,…,ηij,…,ηin)=n,則選取Ti打包區(qū)塊為本輪最佳區(qū)塊,即選取最早通過驗(yàn)證節(jié)點(diǎn)列表終端驗(yàn)證的區(qū)塊,轉(zhuǎn)步驟5;否則,執(zhí)行步驟3;
步驟 3. 本輪時(shí)間結(jié)束,?Ti,?Tj∈TVNL,使得n>ui(ηi1,…,ηij,…,ηin)>uj(ηj1,…,ηji,…,ηjn),則選取Ti打包區(qū)塊為本輪最佳區(qū)塊,即選取經(jīng)驗(yàn)證節(jié)點(diǎn)列表終端驗(yàn)證獲得最大收益的區(qū)塊,轉(zhuǎn)步驟 5;否則,執(zhí)行步驟4;
步驟 4. 本輪時(shí)間結(jié)束,?Ti,Tj,?Tk∈TVNL,若n>ui(ηi1,…,ηij,…,ηin)=uj(ηj1,…,ηji,…,ηjn)>uk(Sk1,…,Skj,…,Skn),則從Ti,Tj中選取最早達(dá)到ui當(dāng)前值的驗(yàn)證節(jié)點(diǎn)打包區(qū)塊為最佳區(qū)塊,即選取最早經(jīng)驗(yàn)證節(jié)點(diǎn)列表終端驗(yàn)證獲得最大收益的區(qū)塊;
步驟 5. 本輪時(shí)間結(jié)束,?Ti,?Tj∈TVNL(j≠i),若ui(ηi1,…,ηij,…,ηin) 動(dòng)態(tài)數(shù)據(jù)操作與存儲(chǔ)體系采用靜態(tài)多維授權(quán)關(guān)系鏈和動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)鏈雙聯(lián)盟鏈模式,實(shí)現(xiàn)數(shù)據(jù)操作授權(quán)關(guān)系和動(dòng)態(tài)數(shù)據(jù)本身的防篡改.對(duì)應(yīng)的所有權(quán)的轉(zhuǎn)移過程可看做文獻(xiàn)[45]描述的所有權(quán)轉(zhuǎn)移. 依據(jù)本文第2節(jié)提出的操作實(shí)體間授權(quán)方式將各實(shí)體對(duì)動(dòng)態(tài)數(shù)據(jù)的授權(quán)及操作類型作為交易發(fā)布到授權(quán)關(guān)系聯(lián)盟鏈網(wǎng)絡(luò)上,不同的應(yīng)用場(chǎng)景下可以選擇以明文或密文方式發(fā)送.根據(jù)整個(gè)行業(yè)物聯(lián)網(wǎng)操作實(shí)體間的合作關(guān)系,操作授權(quán)往往只需限定在較小的子系統(tǒng)內(nèi),涉及的操作實(shí)體節(jié)點(diǎn)數(shù)目較少;此外,由于物聯(lián)網(wǎng)系統(tǒng)具有可靠性高和生存期長(zhǎng)的特點(diǎn),操作實(shí)體間授權(quán)關(guān)系相對(duì)穩(wěn)定,變更較少.鑒于上述調(diào)研現(xiàn)狀,本文采取靜態(tài)方式為各子系統(tǒng)生成實(shí)體授權(quán)關(guān)系,由定義 2描述的方法創(chuàng)建實(shí)體間多維授權(quán)鏈,并作為一筆交易發(fā)布到授權(quán)關(guān)系聯(lián)盟鏈網(wǎng)絡(luò)上.各操作實(shí)體數(shù)據(jù)交付過程如圖3所示,若存儲(chǔ)一個(gè)實(shí)體節(jié)點(diǎn)的編碼需nc位,存儲(chǔ)用于溯源路徑鏈接的實(shí)體節(jié)點(diǎn)特征值需ω位,實(shí)體間授權(quán)邊的總數(shù)為E,實(shí)體總數(shù)為N,每筆交易的數(shù)據(jù)量上限為E·ω+N·nc.當(dāng)發(fā)生操作實(shí)體間授權(quán)關(guān)系變更時(shí),需將授權(quán)鏈作為新的交易在網(wǎng)絡(luò)上重新發(fā)布并記入?yún)^(qū)塊,以便授權(quán)追溯. 由密鑰分發(fā)機(jī)構(gòu)為實(shí)例系統(tǒng)中各操作實(shí)體IDi生成密鑰對(duì)(PKi,SKi),用于操作實(shí)體對(duì)動(dòng)態(tài)數(shù)據(jù)的授權(quán)驗(yàn)證.授權(quán)節(jié)點(diǎn)申請(qǐng)發(fā)布新的動(dòng)態(tài)數(shù)據(jù)或?qū)δ硞€(gè)動(dòng)態(tài)數(shù)據(jù)進(jìn)行操作時(shí)需包含自己的實(shí)體證書,經(jīng)過驗(yàn)證并獲得共識(shí)的動(dòng)態(tài)數(shù)據(jù)及相關(guān)信息(包括發(fā)布方及接收方的地址,動(dòng)態(tài)數(shù)據(jù)文件的哈希值等)形成發(fā)布摘要信息存儲(chǔ)到動(dòng)態(tài)數(shù)據(jù)聯(lián)盟鏈網(wǎng)絡(luò)上.每一輪共識(shí)結(jié)束后,驗(yàn)證節(jié)點(diǎn)會(huì)將滿足條件的所有交易進(jìn)行分組哈希運(yùn)算,將哈希值存儲(chǔ)于Merkle樹狀數(shù)據(jù)結(jié)構(gòu)中,方便實(shí)現(xiàn)區(qū)塊的快速歸納和完整性校驗(yàn).再利用區(qū)塊鏈中的區(qū)塊生成機(jī)制生成數(shù)據(jù)區(qū)塊.區(qū)塊之間利用區(qū)塊頭的哈希指針連接形成鏈狀數(shù)據(jù)結(jié)構(gòu).接收方收到動(dòng)態(tài)數(shù)據(jù)后,在本地計(jì)算其哈希值并采用Merkle樹支持的簡(jiǎn)化支付驗(yàn)證協(xié)議與區(qū)塊鏈上的對(duì)應(yīng)數(shù)據(jù)進(jìn)行比較,如果不一致,說明文件遭到篡改并向監(jiān)控中心報(bào)警.下面分析圖3中操作實(shí)體對(duì)動(dòng)態(tài)數(shù)據(jù)的授權(quán)操作過程. 對(duì)于任意操作實(shí)體OEi,可用IDi唯一標(biāo)識(shí),為敘述方便,后面也用IDi表示操作實(shí)體,簡(jiǎn)稱實(shí)體.假設(shè)操作實(shí)體IDi,IDi+1需要進(jìn)行的操作Xt為:IDi采用加密方式發(fā)送數(shù)據(jù)STi,IDi+1接收數(shù)據(jù)并對(duì)其完整性進(jìn)行驗(yàn)證.若對(duì)完整的動(dòng)態(tài)數(shù)據(jù)進(jìn)行簽名將導(dǎo)致兩方面的缺陷:一方面,存儲(chǔ)完整消息對(duì)應(yīng)的數(shù)字簽名往往需要大量的空間;另一方面,采用非對(duì)稱加密技術(shù)對(duì)完整消息進(jìn)行加密計(jì)算開銷較大,處理速度較慢.因此,本文在實(shí)例系統(tǒng)中相鄰層次實(shí)體間通信時(shí),采用二次散列迭代的方式,將發(fā)送方公鑰及消息STi同時(shí)作為哈希函數(shù)的輸入,得到可作為特征值的哈希運(yùn)算消息認(rèn)證碼.用發(fā)送方的私鑰對(duì)消息認(rèn)證碼進(jìn)行簽名,由于數(shù)據(jù)量較少,可保證此運(yùn)算過程較快.動(dòng)態(tài)數(shù)據(jù)在授權(quán)實(shí)體間流轉(zhuǎn)的步驟為: 步驟1. 判斷(IDi,Xt)∈FOEi,若為True,證明其為授權(quán)節(jié)點(diǎn),執(zhí)行步驟2;否則,報(bào)錯(cuò)未授權(quán); 步驟2. 計(jì)算STi和PKi的哈希值Hi,減少實(shí)體IDi簽名信息量; 步驟3. 用實(shí)體IDi的私鑰SKi對(duì)Hi進(jìn)行簽名,得到Mi; 步驟4. 實(shí)體IDi用實(shí)體IDi+1的公鑰對(duì)Mi,STi進(jìn)行加密并發(fā)送; 采用與比特幣系統(tǒng)類似的方法,將操作實(shí)體對(duì)動(dòng)態(tài)數(shù)據(jù)的一次處理過程看做一筆交易,操作實(shí)例系統(tǒng)的區(qū)塊形成過程可描述為:各個(gè)操作實(shí)體的帳戶名為其公鑰的哈希值,使用自己的私鑰對(duì)驗(yàn)證過的信息進(jìn)行簽名.新交易TX創(chuàng)建過程由文獻(xiàn)[45]定義,TX通過P2P網(wǎng)絡(luò)進(jìn)行廣播,區(qū)塊鏈中各節(jié)點(diǎn)都不斷地監(jiān)聽網(wǎng)絡(luò)并收集尚未進(jìn)入塊鏈的交易TX的列表,生成待驗(yàn)證區(qū)塊,各節(jié)點(diǎn)對(duì)接收到的區(qū)塊進(jìn)行驗(yàn)證,判斷區(qū)塊中是否存在無效交易,即沒有正確簽名或重復(fù)交易.將驗(yàn)證結(jié)果再次通過P2P網(wǎng)絡(luò)進(jìn)行廣播,并按照本文第3.3節(jié)提出的共識(shí)機(jī)制選出本輪獲得共識(shí)的區(qū)塊作為新生區(qū)塊,通過與前一區(qū)塊頭部鏈接寫入賬本.此時(shí),新賬本為系統(tǒng)中最長(zhǎng)區(qū)塊鏈,獲得記賬權(quán)的節(jié)點(diǎn)將新創(chuàng)建的區(qū)塊鏈向全網(wǎng)廣播,其他節(jié)點(diǎn)收到后,將其與本地區(qū)塊鏈進(jìn)行比較:若長(zhǎng)度大于本地區(qū)塊鏈,則將本地區(qū)塊鏈更新. 假設(shè)創(chuàng)世區(qū)塊存在且新生區(qū)塊B非空,區(qū)塊有效性驗(yàn)證算法見算法1. 算法1.區(qū)塊有效性驗(yàn)證算法. 輸入:區(qū)塊鏈C,新生成區(qū)塊B; 輸出:若創(chuàng)世區(qū)塊不存在或新區(qū)塊B不存在,返回錯(cuò)誤提示Error;若新區(qū)塊B合法,返回加入新區(qū)塊后的區(qū)塊鏈C;若B非法,返回B. 其中,函數(shù)v(x)收容當(dāng)前交易并將其打包成區(qū)塊B,若創(chuàng)世區(qū)塊不存在(C=False)或新區(qū)塊B不存在(B=ε),返回錯(cuò)誤提示Error;若B非空且存在創(chuàng)世區(qū)塊,則依據(jù)五元組?Num,Type,Code,Len,S?定義的方法對(duì)區(qū)塊B中交易進(jìn)行驗(yàn)證,在區(qū)塊鏈誠(chéng)實(shí)節(jié)點(diǎn)為多數(shù)的前提下,若區(qū)塊B中所有交易TX均通過驗(yàn)證且獲得本輪共識(shí),則將B作為新生區(qū)塊鏈接到區(qū)塊鏈C的末尾,返回新生成的當(dāng)前最長(zhǎng)區(qū)塊鏈C;否則,將B標(biāo)記為False并返回. 本文提出動(dòng)態(tài)數(shù)據(jù)授權(quán)操作機(jī)制和基于信任節(jié)點(diǎn)列表的區(qū)塊鏈共識(shí)算法,通過機(jī)構(gòu)授權(quán)決定記賬節(jié)點(diǎn),提供不可篡改且能夠在任何時(shí)間點(diǎn)恢復(fù)的數(shù)據(jù)庫(kù)服務(wù),是一種高效的共識(shí)機(jī)制.下面對(duì)其性能進(jìn)行分析. 假設(shè)操作實(shí)體總數(shù)為N,其每個(gè)實(shí)體編碼占用nc個(gè)比特,根據(jù)定義2,得到各實(shí)體的操作授權(quán)集合 {li}i∈{0,1}≤ω,對(duì)來自誠(chéng)實(shí)或惡意用戶的操作請(qǐng)求均需在多維DAG圖中至少回溯查詢q次才能獲得確認(rèn),用τ表示從當(dāng)前提出操作請(qǐng)求的實(shí)體向根實(shí)體回溯路徑上的節(jié)點(diǎn)集合,即: 例如,某用戶提供自己的授權(quán)類型l申請(qǐng)對(duì)圖1中v7進(jìn)行操作(為了簡(jiǎn)化問題,操作的類型暫不討論),存在多條回溯路徑:τ={v7,v6,v3,v2,v1},q=5;或τ={v7,v6,v2,v1},q=4;或τ={v7,v4,v2,v1},q=4.由此可見,回溯路徑τ不唯一,下面證明其具備性質(zhì)1. 性質(zhì) 1.理想化哈希函數(shù)表示為H:{0,1}*→{0,1}ω,ω為哈希后得到的特征值長(zhǎng)度,操作實(shí)體至少在多維DAG 圖中查詢q次才能獲得確認(rèn)(q≤N),攻擊者將動(dòng)態(tài)數(shù)據(jù)操作權(quán)限l偽造成l′,并獲得攻擊成功,即l≠l′,H(l,ID)=H(l′,ID)的概率上限為q2/2ω+1. 證明:第i次查詢輸出時(shí),前i?1次查詢輸出相同的概率至多為(i?1)/2ω,因此,q次查詢輸出均相同的概率為 在多維DAG圖中,由公式(18)計(jì)算τ,并回溯至τ中根節(jié)點(diǎn)r(即該節(jié)點(diǎn)無父節(jié)點(diǎn)),按照定義2重新計(jì)算授權(quán)路徑上各實(shí)體授權(quán)特征值li′,與聯(lián)盟鏈上經(jīng)過VNL驗(yàn)證的實(shí)體授權(quán)特征值的保存值li進(jìn)行比較,若滿足: 則該請(qǐng)求合法;否則,拒絕請(qǐng)求.公式(19)中,qi表示為滿足安全系數(shù),實(shí)體OEi設(shè)定的查詢次數(shù),qi′表示實(shí)際執(zhí)行的查詢系數(shù).若某中間層實(shí)體撤銷對(duì)其子節(jié)點(diǎn)的授權(quán)會(huì)造成qi′ 由性質(zhì) 1,參考比特網(wǎng),給定取值ω=256,q=6時(shí),攻擊者篡改動(dòng)態(tài)數(shù)據(jù)操作權(quán)限并獲取成功的概率非常小,理論上存在,但實(shí)際很難做到.圖4對(duì)不同物聯(lián)網(wǎng)規(guī)模下本文方案的系統(tǒng)可靠性進(jìn)行分析. 當(dāng)物聯(lián)網(wǎng)子系統(tǒng)規(guī)模較小,操作實(shí)體授權(quán)鏈深度較小,回溯查詢的次數(shù)q在較小范圍內(nèi)變動(dòng)(如取值4,8,16),授權(quán)特征值位數(shù)|ω|=16b時(shí),攻擊者成功篡改授權(quán)關(guān)系的概率P趨近0,如圖4(a)所示;當(dāng)物聯(lián)網(wǎng)規(guī)模較大,需要更多的比特位對(duì)授權(quán)特征值ω進(jìn)行編碼,當(dāng)|ω|=64b,物聯(lián)網(wǎng)規(guī)模N=106時(shí),攻擊者成功篡改授權(quán)關(guān)系的概率P<10-6,如圖4(b)所示. 鑒于比特幣網(wǎng)絡(luò)中經(jīng)常出現(xiàn)雙重輸出攻擊、重放攻擊和隱藏攻擊,下面對(duì)本文提出的方案在上述3種常見攻擊類型下的性能進(jìn)行分析. (1) 雙重輸出攻擊 雙重輸出攻擊是指操作實(shí)體隱藏對(duì)其他操作實(shí)體授權(quán)的動(dòng)態(tài)數(shù)據(jù)文件及授權(quán)關(guān)系.與比特幣類似,可以通過創(chuàng)建兩個(gè)不同的交易分支來分割自己的區(qū)塊鏈.本文提出的動(dòng)態(tài)數(shù)據(jù)溯源架構(gòu)對(duì)雙重輸出攻擊具有防御能力,違規(guī)者會(huì)被發(fā)現(xiàn)并失去他人的信任. 圖5說明了本方案對(duì)這種攻擊的防御機(jī)制,描述了溯源架構(gòu)中某操作實(shí)體執(zhí)行雙重輸出攻擊的過程(注:符號(hào)C本段局部定義為操作實(shí)體). 在這種情況下,操作實(shí)體A希望隱藏虛線塊,即:對(duì)操作實(shí)體C授權(quán)的動(dòng)態(tài)數(shù)據(jù)文件及授權(quán)關(guān)系,只傳播關(guān)于他對(duì)操作實(shí)體D授權(quán)的動(dòng)態(tài)數(shù)據(jù)文件及授權(quán)關(guān)系.雖然這種攻擊看起來似乎成功,但是當(dāng)操作實(shí)體C除A以外的授權(quán)實(shí)體,比如B,查看操作實(shí)體C的歷史記錄時(shí),會(huì)發(fā)現(xiàn)在C鏈的驗(yàn)證期間A隱藏了一筆對(duì)C授權(quán)的交易.這與B關(guān)于操作實(shí)體A所涉及的交易的知識(shí)相矛盾.這樣,操作實(shí)體A創(chuàng)建的兩個(gè)區(qū)塊形成了一個(gè)欺詐證據(jù),并被其他節(jié)點(diǎn)在網(wǎng)絡(luò)中進(jìn)行廣播.其他操作實(shí)體可以使用上述方法以較小計(jì)算量來驗(yàn)證雙重輸出攻擊行為,將其列入黑名單或拒絕服務(wù). (2) 重放攻擊 重放攻擊試圖重復(fù)使用由某個(gè)操作實(shí)體創(chuàng)建的動(dòng)態(tài)數(shù)據(jù)文件及授權(quán)關(guān)系簽名重放已經(jīng)發(fā)生的交易.惡意操作實(shí)體將指針重用到另一操作實(shí)體的先前塊.圖6說明了本方案對(duì)重放攻擊的抵御機(jī)制.操作實(shí)體A使用兩次相同的事務(wù)增長(zhǎng)其塊鏈,這種攻擊背后的動(dòng)機(jī)是:惡意操作實(shí)體隱藏動(dòng)態(tài)數(shù)據(jù)的時(shí)間屬性,達(dá)到對(duì)物聯(lián)網(wǎng)控制系統(tǒng)的某種破壞.這種攻擊相對(duì)容易發(fā)現(xiàn):當(dāng)由另一個(gè)操作實(shí)體驗(yàn)證操作實(shí)體A的事務(wù)鏈正確性時(shí),將檢測(cè)出有兩個(gè)塊具有相同的輸出指針.惡意操作實(shí)體在重放攻擊期間創(chuàng)建的塊組成欺詐證據(jù),網(wǎng)絡(luò)中的任何操作實(shí)體都可以通過觀察塊的輸出指針來驗(yàn)證欺詐. (3) 隱藏攻擊 一旦操作實(shí)體對(duì)動(dòng)態(tài)數(shù)據(jù)進(jìn)行操作,就會(huì)在網(wǎng)絡(luò)中創(chuàng)建記錄.一個(gè)操作實(shí)體可能只想公開對(duì)其聲譽(yù)有正面影響的操作或授權(quán),同時(shí)隱藏對(duì)其聲譽(yù)有負(fù)面影響的操作或授權(quán).本文提出的溯源鏈架構(gòu)能夠抵御這種攻擊:由于每條記錄都包含一個(gè)序列號(hào),網(wǎng)絡(luò)中的任何人都可以請(qǐng)求其他人的特定記錄,如果某操作實(shí)體無法提供自身的歷史記錄,則在該實(shí)體所要求的記錄被提供并被驗(yàn)證之前,其他實(shí)體可以選擇不與這個(gè)操作實(shí)體發(fā)生交易.值得注意的是,操作實(shí)體不能防止其授權(quán)對(duì)象授權(quán)給其他操作實(shí)體. 本文進(jìn)行了一項(xiàng)公開實(shí)驗(yàn),對(duì)物聯(lián)網(wǎng)動(dòng)態(tài)數(shù)據(jù)溯源機(jī)制性能進(jìn)行評(píng)估,從互聯(lián)網(wǎng)招募的1210名志愿者參加了為期一個(gè)月的開放式研究.這些志愿者在Ubuntu 16.04下安裝并使用了ChainSQL平臺(tái).該平臺(tái)是在瑞波幣的基礎(chǔ)上改進(jìn)的,是我們和眾享比特公司長(zhǎng)期合作進(jìn)行的基于區(qū)塊鏈的物聯(lián)網(wǎng)應(yīng)用安全研究的一部分.修改配置文件,使用不同的配置文件啟動(dòng)應(yīng)用程序,得到普通節(jié)點(diǎn)和驗(yàn)證節(jié)點(diǎn).隨機(jī)生成初始化測(cè)試數(shù)據(jù)集合,不同輪次的測(cè)評(píng)實(shí)施需基于相同的測(cè)試數(shù)據(jù)以確保測(cè)試結(jié)果的有效性.測(cè)試數(shù)據(jù)作為新交易相繼提交到ChainSQL測(cè)試網(wǎng)絡(luò),采用多組交易并發(fā)激勵(lì)的方式,以測(cè)試較高并發(fā)交易場(chǎng)景下系統(tǒng)的性能. 圖7給出了操作實(shí)體總數(shù)N,驗(yàn)證節(jié)點(diǎn)列表中節(jié)點(diǎn)數(shù)目為VNL,ω=256,nc=16,達(dá)成共識(shí)的每輪時(shí)間r取不同值時(shí)ChainSQL平臺(tái)溯源數(shù)據(jù)增長(zhǎng)情況. 圖 7(a)中取N=500,VNL=100,r=5s時(shí),數(shù)據(jù)量高于r=10s,但其數(shù)據(jù)量的增幅不到r=10s時(shí)數(shù)據(jù)量的兩倍,說明相比r=5s的情況,r=10s時(shí)部分輪次在本文第3.3節(jié)提出的共識(shí)機(jī)制的步驟2完成;同理,r=1s與r=5s,r=10s時(shí)相比數(shù)據(jù)量有顯著增加,但增幅低于相應(yīng)的時(shí)間倍值. 圖7(b)中取N=1000,VNL=100,相比圖7(a),操作實(shí)體數(shù)目多了1倍,但r取3種不同值時(shí)數(shù)據(jù)量同比均有所下降,r=5s和r=10s時(shí)下降程度較r=1s時(shí)大.這說明隨著系統(tǒng)規(guī)模的增大,達(dá)成共識(shí)的速度減慢,且在共識(shí)機(jī)制步驟2完成的輪次受影響較大,在共識(shí)機(jī)制步驟3和步驟4完成的輪次受影響較小. 圖7(d)中取N=1000,VNL=200,相比圖7(b),機(jī)構(gòu)授權(quán)的驗(yàn)證列表節(jié)點(diǎn)數(shù)目多了1倍,r取3種不同值時(shí)達(dá)成共識(shí)的速度均有所減慢,因此數(shù)據(jù)量同比均有所下降;相比圖7(c),操作實(shí)體數(shù)目多了1倍,數(shù)據(jù)量增長(zhǎng)同比變化差異不大,這說明機(jī)構(gòu)授權(quán)的驗(yàn)證列表節(jié)點(diǎn)數(shù)目增多將導(dǎo)致共識(shí)時(shí)間增加,使得大部分輪次均在共識(shí)機(jī)制步驟3或步驟4完成,此時(shí),系統(tǒng)溯源鏈中數(shù)據(jù)量的增幅對(duì)操作實(shí)體數(shù)目的增多呈現(xiàn)一定程度的魯棒性. 圖8顯示了N=1000,VNL=100,r取不同值時(shí),在聯(lián)想T480S和Y450A-TSI(W)型號(hào)移動(dòng)終端上,3000s時(shí)間區(qū)間內(nèi),系統(tǒng)吞吐量隨時(shí)間的變化情況.從總體上看,r取值越小,系統(tǒng)吞吐量越大.r=1s時(shí),在性能較高的移動(dòng)設(shè)備聯(lián)想T480S上,3000s內(nèi)吞吐量均值為182tps;在性能較低的移動(dòng)設(shè)備Y450A-TSI(W)上,3000s內(nèi)吞吐量均值為115tps.通過觀察圖8(a)和圖8(b)在不同性能的移動(dòng)設(shè)備上同一時(shí)間區(qū)間和網(wǎng)絡(luò)環(huán)境下的吞吐量數(shù)據(jù)對(duì)比,可以看出系統(tǒng)吞吐量受硬件性能的影響.結(jié)果表明:即使在性能較差的移動(dòng)終端上,也可以實(shí)現(xiàn)對(duì)大量輕型交易的創(chuàng)建和處理,這些測(cè)試數(shù)據(jù)為我們進(jìn)一步開發(fā)嵌入式系統(tǒng)ChainSQL接口提供了參考.假定不論r取何值,均在每輪時(shí)間用完后形成共識(shí)并產(chǎn)生新區(qū)塊,顯然,r=5s和r=10s時(shí),在3000s時(shí)間內(nèi)產(chǎn)生新區(qū)塊的數(shù)目將分別是r=1s時(shí)的1/5和1/10.圖8(a)和圖8(b)的數(shù)據(jù)表明:r=5s和r=10s時(shí),對(duì)應(yīng)的吞吐量均值均大于r=1s時(shí)相應(yīng)的倍值.這是因?yàn)閞=1s時(shí),各節(jié)點(diǎn)將接收到并存儲(chǔ)在本地的交易廣播出去,大部分在接近或等于r時(shí)形成共識(shí);r=5s和r=10s時(shí),會(huì)有一部分節(jié)點(diǎn)提交的區(qū)塊在該輪時(shí)間尚未用完就獲得共識(shí).通過分析圖 8測(cè)試數(shù)據(jù)發(fā)現(xiàn),幾種情況下系統(tǒng)吞吐量的變化存在共同點(diǎn):測(cè)試初始階段,吞吐量較大;隨著測(cè)試時(shí)間增加,吞吐量變小.對(duì)于這一現(xiàn)象的合理解釋是:測(cè)試初始階段,節(jié)點(diǎn)本地存儲(chǔ)器為空,生成的新交易區(qū)塊獲得共識(shí)后,在ChainSQL數(shù)據(jù)庫(kù)中快速插入;隨著數(shù)據(jù)庫(kù)的增長(zhǎng),每次插入新的區(qū)塊都需要查詢和同步數(shù)據(jù)庫(kù)來獲取最新聯(lián)盟鏈區(qū)塊的信息,插入開銷有所增加,系統(tǒng)吞吐量隨著數(shù)據(jù)庫(kù)大小的增加而減少. 通過為期一個(gè)月的由志愿者參與的實(shí)驗(yàn),證明了本文提出的溯源機(jī)制的實(shí)際適用性和成熟度水平.結(jié)果表明:本文提出的物聯(lián)網(wǎng)動(dòng)態(tài)數(shù)據(jù)溯源機(jī)制在沒有任何中心數(shù)據(jù)庫(kù)的情況下,能夠在網(wǎng)絡(luò)上以共識(shí)方式保證各操作實(shí)體數(shù)據(jù)的完整性和可靠性;且隨著系統(tǒng)中機(jī)構(gòu)授權(quán)的驗(yàn)證列表節(jié)點(diǎn)數(shù)目和操作實(shí)體數(shù)目增多,系統(tǒng)達(dá)成共識(shí)的速度對(duì)這兩項(xiàng)參數(shù)呈現(xiàn)魯棒性,而主要受預(yù)先設(shè)置的每輪時(shí)間影響. 本文針對(duì)動(dòng)態(tài)數(shù)據(jù)安全問題,設(shè)計(jì)了動(dòng)態(tài)數(shù)據(jù)安全問題模型,分析達(dá)成共識(shí)的邊界條件,提出了聯(lián)盟鏈方式下基于節(jié)點(diǎn)信譽(yù)的共識(shí)激勵(lì)機(jī)制和基于驗(yàn)證節(jié)點(diǎn)列表的共識(shí)算法,實(shí)現(xiàn)了對(duì)動(dòng)態(tài)數(shù)據(jù)授權(quán)操作和安全管理.分析了該機(jī)制下授權(quán)機(jī)制的可靠性及系統(tǒng)抵抗雙重輸出攻擊、重放攻擊及隱藏攻擊的能力等安全性能,通過在ChainSQL平臺(tái)下的公開實(shí)驗(yàn),分析了系統(tǒng)規(guī)模、驗(yàn)證節(jié)點(diǎn)列表規(guī)模、每輪時(shí)間與實(shí)際達(dá)成共識(shí)的速度、系統(tǒng)吞吐量的關(guān)系,得出隨著系統(tǒng)中機(jī)構(gòu)授權(quán)的操作實(shí)體數(shù)目和驗(yàn)證節(jié)點(diǎn)列表節(jié)點(diǎn)數(shù)目增多,系統(tǒng)達(dá)成共識(shí)的速度對(duì)這兩項(xiàng)參數(shù)呈現(xiàn)魯棒性,而主要受預(yù)先設(shè)置的每輪時(shí)間影響的結(jié)論,證明了核準(zhǔn)加入方式下該方案能夠有效防御攻擊者對(duì)動(dòng)態(tài)數(shù)據(jù)的篡改、偽造等潛在安全威脅,在保證動(dòng)態(tài)數(shù)據(jù)安全存儲(chǔ)的同時(shí),提高了系統(tǒng)達(dá)成共識(shí)的效率.目前的研究已經(jīng)取得了階段性的成果,但仍存在一定的局限性:首先,本文所討論的節(jié)點(diǎn)信譽(yù)閾值是全局的,所有節(jié)點(diǎn)被賦予相同的初始閾值,關(guān)于特殊情況下某些節(jié)點(diǎn)定義局部閾值方面的問題,還有待進(jìn)一步研究;其次,目前,改進(jìn)后共識(shí)機(jī)制的部署和調(diào)用都需要專業(yè)區(qū)塊鏈研發(fā)人員進(jìn)行,在易用性和對(duì)應(yīng)用的支持上還需要進(jìn)一步驗(yàn)證. 結(jié)合物聯(lián)網(wǎng)行業(yè)應(yīng)用需求和安全技術(shù)發(fā)展熱點(diǎn),課題組擬進(jìn)一步開展以下幾方面的研究工作. (1) 智能合約形式化證明與部署.與傳統(tǒng)授權(quán)協(xié)議相比,如基于角色的訪問管理協(xié)議OAuth 2.0,OpenID等,智能合約能夠?yàn)槲锫?lián)網(wǎng)設(shè)備提供基于單方或多方身份驗(yàn)證和業(yè)務(wù)邏輯的高效授權(quán)訪問規(guī)則.但智能合約一經(jīng)部署就不能修改,其漏洞將給物聯(lián)網(wǎng)系統(tǒng)應(yīng)用帶來巨大損失.因此,部署智能合約前必須對(duì)其正確性進(jìn)行完備的形式化證明; (2) 輕量級(jí)安全通信協(xié)議.常見的物聯(lián)網(wǎng)通信協(xié)議 MQTT,CoAP,RPL,6LoWPAN等,無法提供通信安全性.此類協(xié)議必須嵌入在其他安全協(xié)議中,如DTLS,TLS,IPSec等,以提供安全通信.然而,DTLS,TLS,IPSec甚至輕量級(jí)TinyTLS協(xié)議對(duì)計(jì)算和存儲(chǔ)資源的性能要求都超出物聯(lián)網(wǎng)設(shè)備的承受能力,因此,迫切需要開發(fā)適用于物聯(lián)網(wǎng)設(shè)備的輕量級(jí)安全協(xié)議,用以保障鏈下動(dòng)態(tài)數(shù)據(jù)安全.3.4 動(dòng)態(tài)數(shù)據(jù)操作與存儲(chǔ)
4 分析及實(shí)驗(yàn)
4.1 可靠性分析
4.2 安全性分析
4.3 部署和實(shí)驗(yàn)
5 總 結(jié)