任彥冰 李興華 劉 海 程慶豐 馬建峰
1(西安電子科技大學網絡與信息安全學院 西安 710071) 2 (數(shù)學工程與先進計算國家重點實驗室(解放軍信息工程大學) 鄭州 450001) (yanbing_ren@foxmail.com)
隨著物聯(lián)網(Internet of things, IoT)技術的發(fā)展,在不同的物聯(lián)網之間逐漸形成了大規(guī)模、異構化、動態(tài)化的分布式物聯(lián)網環(huán)境.其中每個物聯(lián)網作為一個獨立的管理域都擁有大量的物聯(lián)網設備,獨立的域內通信協(xié)議與管理方式.物聯(lián)網中的設備存在著合作、交互與資源調度的需求(后文將此過程統(tǒng)稱為合作),設備間的合作可能在管理域內進行,也可能在管理域間進行;另一方面,物聯(lián)網管理機構間也存在著業(yè)務往來、信息共享等各種形式的合作.由于物聯(lián)網內設備眾多,異構物聯(lián)網之間在域內組織與管理機制等方面存在較大差異,分布式物聯(lián)網中的合作問題尚未得到有效解決.
解決合作問題的前提是在物聯(lián)網設備間以及機構間建立信任機制,然而物聯(lián)網應用種類眾多,不同機構的業(yè)務屬性與信任特征各異,各種物聯(lián)網設備在計算與存儲能力上存在較大差異,使得現(xiàn)有的抽象信任機制研究無法直接應用在分布式物聯(lián)網環(huán)境中.另一方面,現(xiàn)有的物聯(lián)網信任研究大部分屬于對管理域內信任問題的研究,對于管理域間信任問題的研究依然較少且無法應用于不依賴可信第三方與額外信任假設的完全分布式物聯(lián)網環(huán)境中.
對此本文借助區(qū)塊鏈與風險理論,提出了一種適用于分布式物聯(lián)網的信任管理方法,具體地,我們將“信任”這一主觀抽象的概念[1]具體化為對期望信用(expected credit)與風險(risk)的考察,并借助區(qū)塊鏈實現(xiàn)信任數(shù)據(jù)的有效共享、不可篡改、公開可查.本文的主要貢獻有3個方面:
1) 針對分布式物聯(lián)網內管理機構業(yè)務屬性與信任特征各異,難以建立通用的信任管理方法,提出了機構間信任建立與管理,信任數(shù)據(jù)共享的方法.所提方法不依賴任何可信第三方與先驗域間信任假設,信任建立與管理完全依賴各機構自行實施與維護.
2) 針對物聯(lián)網設備的域間信任需求,提出了分布式物聯(lián)網內的設備間信任管理方法;根據(jù)物聯(lián)網設備計算與存儲能力差異較大的特點,為具有不同計算與存儲能力的設備提供了差異化的信任管理選項.
3) 實驗模擬與分析表明,所提方案能夠有效量化與衡量系統(tǒng)內實體的信任程度,且能夠在保護歷史信任數(shù)據(jù)不被惡意篡改的同時以較低的存儲開銷維護系統(tǒng)正常運行.
信任作為一個主觀抽象的概念[1],其定義涉及到不同研究領域的主體、客體、上下文環(huán)境等各種因素[2],沒有一種模型能夠將不同領域與不同上下文環(huán)境的信任概念有效完備地表達.目前存在著兩種不同的信任機制研究:基于策略制定的機制與基于信譽的機制.基于策略制定的機制[3]采用類似于公鑰基礎設施的方式進行嚴格的授權管理,結點是否可信由數(shù)字證書嚴格定義,并通過邏輯程序設計限定結點權限,通常要求系統(tǒng)中存在可信的權威機構,不適用于分布式環(huán)境;基于信譽的機制[4-6]通過結點間的直接交互與其他結點對目標實體的建議與評價來計算與更新信任,理論上可以不依賴權威機構,但會產生大量的結點間通信.無論是基于策略制定的機制還是基于信譽的機制都是在抽象的網絡層面對信任問題的研究,物聯(lián)網設備的計算,存儲與通信能力差異化程度高,異構物聯(lián)網的域內通信與管理方式存在差異,使得以抽象網絡環(huán)境為背景的信任研究無法直接應用在分布式物聯(lián)網中.
現(xiàn)有的物聯(lián)網信任研究大部分關注于解決單個物聯(lián)網中的信任問題[7-12].Chen等人[7]借助模糊理論對物聯(lián)網環(huán)境下的信任進行了建模,在提高物聯(lián)網中路由效率的同時對其中的節(jié)點行為進行檢測.Lize等人[8]將物聯(lián)網信任分為傳感器層、網絡層與應用層,利用模糊集理論將多層的信息進行融合,計算出一個對象的全局聲譽.Saied等人[9]嘗試用多個函數(shù)對不同設備服務進行信任評價,提出了一種基于環(huán)境感知的信任管理系統(tǒng).該方案從節(jié)點在過去的不同合作類型中的表現(xiàn)導出面對新任務時獲得的信任值,這一過程依賴可信的信任管理機構完成.由于分布式物聯(lián)網中的設備隸屬與不同的所有者且不同所有者之間存在不完全可信的關系,而單個物聯(lián)網只有一個所有者且是完全可信的,因此為單個物聯(lián)網設計的信任管理方法不能直接應用于分布式物聯(lián)網中,否則會造成信任數(shù)據(jù)不收斂導致方案失效的情況.
部分學者對多物聯(lián)網環(huán)境下的信任問題進行了研究.Liu等人[13]提出了一種可驗證的緩存前次交互摘要方法,構建了“現(xiàn)象可信-行為可信-節(jié)點可信-機構可信-授權可信”的環(huán)流,目的是解決物聯(lián)網系統(tǒng)層次化的信任問題.但是,該方案主要研究機構與閱讀器之間的信任問題,對閱讀器之間的信任問題未做詳細討論;另外,文章令不同的機構隸屬于同一個信任管理機構,實際是在不同的域外建立了額外的可信第三方,這在現(xiàn)實中是難以實現(xiàn)的.Chen等人[14]設計了一種自適應的社交物聯(lián)網信任管理協(xié)議,一個具有社交屬性的物聯(lián)網設備可以自適應地選擇最佳參數(shù)設置以適應設備所有者社交關系的變化.然而,該方案對設備所有者之間的信任關系假設依然是獨立于方案設計,先驗進行的.這實際是對域間的信任關系做了前提假設,忽略了跨域信任管理中的域間信任問題.Benkerrou等人[15]提出了一種基于信用與誠實的物聯(lián)網信任評估方法,文章將合作的雙方稱為服務請求者與合作者,服務請求者向域內的主節(jié)點發(fā)送服務請求,域內主節(jié)點選擇潛在的合作者提供服務.其中使用信用值描述合作者的受信任程度,誠實值描述請求者的受信任程度,通過將信用值與誠實值演算為統(tǒng)一的信任值,實現(xiàn)對物聯(lián)網中對象信任的管理.但是該方案重點關注了域內的信任問題,雖然提到了域間信任,但是卻假設所有的域內主節(jié)點都是完全可信的,然而事實上很難在現(xiàn)實中找到符合這一假設的情況.另外,該方案只給出了信任評價的邏輯表達式,卻沒有討論具體的實現(xiàn)機制.Rafey等人[16]提出了一種基于上下文的物聯(lián)網社交信任模型,在信任計算過程中考慮到物聯(lián)網節(jié)點之間的社會關系與交互的上下文環(huán)境.每個節(jié)點基于直接交互和其他節(jié)點的推薦來計算目標節(jié)點的可信度.然而,該方案依然假設域管理者之間的信任關系是方案開始前便存在的,并沒有對這一信任關系進行深入研究;且方案中的每個節(jié)點維護一個對其他節(jié)點的認識,容易導致節(jié)點內存儲的信任值隨節(jié)點數(shù)量呈指數(shù)增長,使得節(jié)點信任不能有效傳播,一個惡意節(jié)點可能依次對其他節(jié)點進行欺詐而不被察覺.
可見,現(xiàn)有的物聯(lián)網信任問題研究部分因為只適用于單個物聯(lián)網而無法應用于分布式物聯(lián)網中,部分在解決分布式物聯(lián)網信任問題時引入了權威第三方或域間信任假設,這實際上依然使得分布式物聯(lián)網位于同一個邏輯域內,屬于抽象意義上的域內信任問題.然而,目前尚沒有既不引入額外的可信第三方也不引入先驗域間信任假設的分布式物聯(lián)網信任管理機制研究,本文便為解決這一問題而展開.
考慮一個去中心化的分布式物聯(lián)網架構,在網絡中,存在著許多的物聯(lián)網設備(或稱結點),結點之間通過覆蓋網絡協(xié)議(overlay network protocols)或底層網絡協(xié)議(underlying network protocols)進行通信[14].每一個結點隸屬于一個唯一的物聯(lián)網管理者,每一個物聯(lián)網管理者擁有許多不同的物聯(lián)網設備.物聯(lián)網管理者與其所有的下屬設備構成一個管理域.設備可以在管理域內或管理域間進行合作以實現(xiàn)特定需求,域管理者可以在彼此之間進行合作.為此,域管理者需要建立、評估與更新彼此間的信任關系;網絡中的設備也需要動態(tài)地調整和更新與其他設備間的信任關系.分布式物聯(lián)網體系架構如圖1所示.
Fig. 1 Architecture of distributed Internet of things圖1 分布式物聯(lián)網系統(tǒng)架構
圖1中,H(x)表示域管理者服務器,D(x,y)表示H(x)管理下的設備,A(x)表示管理域,ε(x)表示A(x)內設備數(shù)量的最大編號.形式化地,我們有x∈{μ∈N*|1≤μ≤α,α∈N*},y∈{ω∈N*|1≤ω≤ε(x),ε(x)∈N*},其中α表示網絡中管理域的個數(shù).圖1中,1≤c1≤α,1≤c2≤α,1≤c3≤α;并省略了除A(c1),A(c2),A(c3)以外的其他管理域.
在系統(tǒng)架構中,我們假設域管理者與其下屬的物聯(lián)網設備間存在安全穩(wěn)定的通信鏈路,由管理域各自選擇協(xié)議與通信機制實現(xiàn).對于不同管理者的可信性及它們之間的信任關系,本文不作先驗假設.
信任作為一個抽象的概念,不同研究對于這一概念有不同的體現(xiàn)方式.本文采用期望信用(expected credit)與風險(risk)對一個實體的可信程度進行描述.其中期望信用反映特定實體在某時間點被其他實體期望擁有的履行信用的能力,風險反映特定實體在過去的一段時間內信用表現(xiàn)的穩(wěn)定性.具體定義如下.
定義1.A(x)的期望信用.在不考慮歷史信用數(shù)據(jù)的情況下,能夠唯一標識A(x)在某個特定時間點受其他實體A(x′)期望的能提供有效服務與合作的程度或概率,記為Ca(x,k);其中x,x′∈{μ∈N*|1≤μ≤α,α∈N*},k∈N*,且有x≠x′.
定義2.Ca(x,k)的信用秤值Sa(x,k).由一常數(shù)值Ia(x)初始確定,并受到A(x′)的輸出參數(shù)δ(x,i)調節(jié)的變量值,且滿足:
(1)
Ca(x,k)=f(Sa(x,k)),
(2)
其中,f為從{Sa(x,k)}到{Ca(x,k)}的映射函數(shù);x,x′∈{μ∈N*|1≤μ≤α,α∈N*},k∈N*,且有x≠x′;δ(x,i)∈{-1,0,1},表示對Sa(x,k)的調節(jié)因子;i∈N*.
定義3.D(x,y)的信用值.在不考慮歷史信用數(shù)據(jù)的情況下,能夠唯一標識D(x,y)在某個特定時間點上的受D(x′,y′)信任程度的值,記為Cd(x,y,k).其中,x,x′∈{μ∈N*|1≤μ≤α,α∈N*},y∈{ω∈N*|1≤ω≤ε(x),ε(x)∈N*},y′∈{ω∈N*|1≤ω≤ε(x′),ε(x′)∈N*},k∈N*,且有{x,y}≠{x′,y′}.
定義4.Cd(x,y,k)的信用秤值Sd(x,y,k).由一常數(shù)值Id(x,y)初始確定,并受到D(x′,y′)的輸出參數(shù)δ(x,y,i)調節(jié)的變量值,且滿足:
(3)
Cd(x,y,k)=f(Sd(x,y,k)),
(4)
其中,f為從{Sd(x,y,k)}到{Cd(x,y,k)}的映射函數(shù);τ(λ)為在某特定時間段內,一個特定的區(qū)域A(xλ)內所存在的D(xλ,yλ)向其管理者服務器H(xλ)提交的對D(x,y)的信用評價調節(jié)因子δ(x,y,i)的個數(shù).此處“特定時間段與特定區(qū)域”在第3節(jié)記賬權選擇問題中進行更詳細的介紹;x,xλ∈{μ∈N*|1≤μ≤α,α∈N*},y∈{ω∈N*|1≤ω≤ε(x),ε(x)∈N*},yλ∈{ω∈N*|1≤ω≤ε(xλ),ε(xλ)∈N*},k∈N*,且有{x,y}≠{xλ,yλ};δ(x,y,i)∈{-1,0,1},表示對Sd(x,y,k)的調節(jié)因子,i∈N*,τ∈N*,λ∈N*.
(5)
(6)
(7)
(8)
定義5與定義6將風險值看做是每個納入風險考察的期望信用C與其均值的偏差的算數(shù)平均數(shù),它反映了A(x′)在與A(x)的合作過程中因為A(x)的違約而導致?lián)p失的可能性.風險值越高,表示在過去一段時間中該實體的信用表現(xiàn)越不穩(wěn)定,意味著在將來的合作中該實體可能出現(xiàn)與其當前的期望信用C所呈現(xiàn)的信用水平相悖離的行為.
為了在跨管理域的參與者之間進行信任管理,采用區(qū)塊鏈來實現(xiàn)分布式物聯(lián)網中信任數(shù)據(jù)的共享與同步.區(qū)塊鏈技術是由Nakamoto[17]提出的能夠在純分布式環(huán)境中實現(xiàn)可信地數(shù)據(jù)共享與狀態(tài)共識的分布式存儲機制.按照部署與應用場景的不同,區(qū)塊鏈可分為3種:公有鏈、聯(lián)盟鏈和私有鏈.
1) 公有鏈指區(qū)塊鏈部署與運行在公網上,所有互聯(lián)網用戶只要下載軟件或配置本地環(huán)境就能夠接入的區(qū)塊鏈系統(tǒng);
2) 聯(lián)盟鏈指區(qū)塊鏈部署與運行在幾個或多個不同機構或管理域之間,為不同機構或管理域的跨平臺數(shù)據(jù)共享提供信任,屬于受限準入型區(qū)塊鏈;
3) 私有鏈指區(qū)塊鏈部署與運行在單個機構或企業(yè)的內網中,只能由該機構內特定的服務器產生與維護,其他用戶可以存儲與查詢的區(qū)塊鏈.私有鏈中的“單個機構或企業(yè)”可以是地理上的,也可以是邏輯上的.
本文采用聯(lián)盟鏈實現(xiàn)分布式物聯(lián)網中信任數(shù)據(jù)的共享與維護,主要利用區(qū)塊鏈的分布式信任,不可篡改與公開透明特性.其中分布式信任確保A(x)之間對區(qū)塊鏈副本唯一性與正確性的共識,不可篡改性確保已經寫入區(qū)塊鏈的數(shù)據(jù)不能被惡意偽造或修改,公開透明性確保區(qū)塊鏈上的信息是開放的,所有參與者隨時可查.聯(lián)盟鏈的優(yōu)勢在于能夠在不同的A(x)間進行信任管理并共享數(shù)據(jù),而不需要可信第三方進行仲裁.
一個區(qū)塊鏈可以表示為{Bi|i∈N*},且對任何t∈{σ∈N*|1≤σ≤i},有Bt?{Hash(Bt-1),A(x1),A(x2),Sa(x2,k-1),δ(x2,k-1),k,MR,TrI,σ(x2),PK(x1),σ(x1),Cd{·}},其中Hash(Bt-1)表示對Bt在區(qū)塊鏈中的上一個區(qū)塊求Hash的值;A(x1)表示區(qū)塊生成者的唯一標識;A(x2)表示受評域管理者的唯一標識;Sa(x2,k-1)=Sa(x2,k-2)+δ(x2,k-2);δ(x2,k-1)為A(x1)對A(x2)給出的信用評價調節(jié)因子;k為本次評價的Sa序號,在每次對A(x2)的評價中遞進增長;MR為Merkle樹根;TrI為一次商業(yè)交易行為中的交易信息,包含價格、交易時間等市場因素;σ(x2)=SigA(x2)(Hash(TrI)),SigA(x2)(·)表示A(x2)的簽名;PK(x1)表示A(x1)的公鑰;σ(x1)=SigA(x1)(Hash(Hash(Bt-1),A(x1),Ca(x2,k),k,MR,TrI,PK(x1)));Cd{·}表示D(x1,yi)對與其合作的D(x′,y′)進行信用評價調節(jié)之后的Cd(x′,y′,k′)構成的集合,其中D(x1,yi)∈{D(x1,yi)|x1,yi,i∈N*,1≤x1≤α,1≤yi≤ε(x1)},D(x′,y′)∈{D(x′,y′)|x′,y′∈N*,1≤x′≤α,1≤y′≤ε(x′)};k′∈N*.
定義Head(Bt)?Bt,Bt-Head(Bt)={Cd{·}},稱Head(Bt)為區(qū)塊頭,{Cd{·}}為區(qū)塊體.將Cd{·}組織成Merkle樹[18-19]的方式,Merkle樹根在區(qū)塊頭中.舉例來說,假設Cd{·}={A,B,C,D,E},其Merkle樹上的Hash配對關系可表示為圖2所示:
Fig. 2 Structure of Merkle Tree圖2 Merkle樹構造
圖2中,A=Cd{l1,m1,k1},B=Cd{l2,m2,k2},C=Cd{l3,m3,k3},D=Cd{l4,m4,k4},E=Cd{l5,m5,k5}.li∈{l∈N*|1≤l≤α},mi∈{m∈N*|1≤m≤ε(l)},ki∈N*,{li,mi}≠{lj,mj},i,j∈{ν∈N*|1≤ν≤5}且i≠j.
應當指出,上述對Bt的描述只給出了其上與本文主旨有關的重要字段,為了在不影響關鍵信息描述的情況下簡化表達,對于如Bt在區(qū)塊鏈中的高度t值、時間戳等字段則不作贅述.
在區(qū)塊鏈技術中,共識機制問題指如何在系統(tǒng)中不同節(jié)點上維護其歷史數(shù)據(jù)與狀態(tài)一致性;記賬權選擇問題要求提供一種機制,確定區(qū)塊的發(fā)布權,即確定哪個節(jié)點可以打包并發(fā)布現(xiàn)有區(qū)塊鏈中的下一區(qū)塊.公有鏈中,由于總是通過記賬權選擇的競爭實現(xiàn)共識機制,二者之間存在很強的關聯(lián)性,甚至在很大程度上可以被視為同一個問題,故現(xiàn)有成熟的公有鏈共識機制常依賴于記賬權選擇策略的設計[17,20].聯(lián)盟鏈與私有鏈中,由于參與節(jié)點較公有鏈中少很多,一些在區(qū)塊鏈這一概念提出前便已存在的共識機制研究[21-27]可直接應用,因此將記賬權選擇與共識機制分別討論.聯(lián)盟鏈中記賬權的選擇具有較大的自主性,一般可根據(jù)應用場景與實際需求設計與選擇合適的方法來確定記賬權.
本文中對管理域在語義層面的屬性與功能不作特定的假設.事實上,管理域可能是擁有大量傳感器與智能設備,需要在戰(zhàn)場上彼此合作的軍事單位;或是供應鏈中擁有大量智能工業(yè)與物流設備,期望提高合作效率,維護商業(yè)信譽的企業(yè).在第4節(jié)實驗模擬與分析部分,我們將采用供應鏈作為場景去考察本文所提信任管理方法的效果.此處對記賬權選擇機制給出抽象的,一般性的設計描述.
情形1. 定義函數(shù)
規(guī)定當且僅當f(A(xi),A(xj))=1時,H(xi)獲得且僅獲得一次產生一個新區(qū)塊Bc并將其添加到區(qū)塊鏈末尾的權利,其中現(xiàn)有區(qū)塊鏈為{B1,B2,…,Bc-1}.Γi,j表示H(xi)與H(xj)之間的某一合作過程且滿足Γi,j≠Γj,i.
情形2. 在特定的場景與環(huán)境下,系統(tǒng)中任何H(xi)與H(xj)之間較長時間沒有合作Γi,j出現(xiàn)時,就會導致D(xi,ym)提交的信用數(shù)據(jù)在H(xi)中大量積存,無法共享到H(xj),使存在信用請求需求的D(xj,yn)無法獲得最新的信用評價,同時造成H(xi)內存資源的消耗,對服務器的可用性造成潛在的影響.
假設H(xi)在特定時間滿足3.3節(jié)中指出的條件,需要打包并發(fā)布區(qū)塊Bt,此時,對于3.3節(jié)中情形1與情形2,Head(Bt)的填寫將有差異.此節(jié)中情形1與情形2分別對應3.3節(jié)中情形1與情形2.
情形1.f(A(xi),A(xj))=1時,A(xi)需要對A(xj)在合作Γi,j中的信用表現(xiàn)作出評價,即給出δ(xj,k-1),并通過查詢區(qū)塊鏈計算Sa(xj,k-1),其中Sa(xj,k-1)=Sa(xj,k-2)+δ(xj,k-2).然后將與這一過程有關的字段,具體包括A(xj),Sa(xj,k-1),δ(xj,k-1),k,TrI,σ(xj),填入Head(Bt)中.其中σ(xj)由A(xj)提供,本文不對這一過程作出假設.
由于H(xi)與H(xj)之間通過因特網通信,因此在區(qū)塊數(shù)據(jù)的發(fā)布過程中,可能會遇到網絡環(huán)境不穩(wěn)定導致的數(shù)據(jù)包丟失等問題,這被稱作區(qū)塊鏈中的節(jié)點發(fā)生了拜占庭故障.拜占庭故障可以理解為試圖達成特定共識的網絡節(jié)點當中存在的個別節(jié)點因為任意原因篡改或隱藏真實信息的行為,發(fā)生拜占庭故障的節(jié)點也被稱為拜占庭節(jié)點.自從Lamport提出拜占庭將軍問題以來[21],對于這一問題的研究不斷深入[28],已經產生了一些被廣泛接受與應用的分布式一致性算法[22-27].基于此,本文對于區(qū)塊鏈上新區(qū)塊的發(fā)布過程采用模塊化的設計,允許采用Paxos[22-24],PBFT[25],Raft[27]等算法實現(xiàn).這種模塊化的方式使得對于節(jié)點間共識機制與算法的研究與在區(qū)塊鏈上進行頂層設計的研究相互獨立,也是當前聯(lián)盟鏈中常見的設計模式[29].
一旦H(xi)通過模塊化的共識機制成功發(fā)布了區(qū)塊Bt,網絡上的其他所有H(xk)接收Bt并將其添加進{B1,B2,…,Bt-1},隨后{B1,B2,…,Bt-1,Bt}便成為系統(tǒng)中受非拜占庭節(jié)點認可的區(qū)塊鏈.
3.5.1 域管理者間評價
A(xi)與A(xj)之間通過區(qū)塊鏈進行信用評價,假設過程Γi,j發(fā)生,則H(xi)在區(qū)塊鏈上查詢并獲取Sa(xj,k-2),δ(xj,k-2)與k-1值,計算Sa(xj,k-1)=Sa(xj,k-2)+δ(xj,k-2).隨后H(xi)接收由域管理者給出的信用評價調節(jié)因子δ(xj,k-1),并將Sa(xj,k-1)與δ(xj,k-1)一起寫進Head(Bt)完成信用評價.
在Head(Bt)中包括了TrI與σ(xj)字段以對歷史進行背書并提供審查需求.TrI描述了Γi,j過程中的必要語義信息以及為什么對本次過程給出δ(xj,k-1)的評價因子的描述信息等;σ(xj)=SigA(xj)(Hash(TrI)),是由A(xi)向A(xj)出示并展示TrI后,經A(xj)確認并提供的對TrI的數(shù)字簽名.提供σ(xj)后,A(xj)將無法否認Γi,j及其中的必要信息.
假設過程Γi,j發(fā)生,A(xi)對A(xj)進行評價,評價過程中H(xi)上的操作可表為算法1所示.
算法1. 域管理者間評價.
執(zhí)行者:H(xi);
輸入:TrI,δ(xj,k-1);
輸出:Bt.
① 接收到Γi,j發(fā)生的信息;
② 接收到與Γi,j有關,Head(Bt)中要求的信息;
③ 在{Bc|c∈N*,t∈N*,1≤c≤t-1}上查詢并獲取Sa(xj,k-2),δ(xj,k-2),與k-1值;
④Sa(xj,k-1)←Sa(xj,k-2)+δ(xj,k-2);
⑤ 接收δ(xj,k-1);
⑥ 將Sa(xj,k-1)與δ(xj,k-1)寫進Head(Bt);
⑦ 獲取或計算Head(Bt)中其他字段值,寫進Head(Bt);
⑧ 將{Head(Bt),Cd{·}}作為新區(qū)塊Bt,借助模塊化的共識算法發(fā)布Bt,算法結束.
算法1的時間復雜度為O(t),空間復雜度為O(1),按照既定步驟執(zhí)行后產生唯一輸出Bt,作為最新的區(qū)塊添加到區(qū)塊鏈上.
3.5.2 設備間評價
算法2.D(xi,ym)進行信任評價(D(xi,ym)方面).
執(zhí)行者:D(xi,ym);
輸入:無;
輸出:δ(xj,yn,i).
① 向D(xj,yn)發(fā)出合作請求;
② 若未得到響應或請求被拒絕,轉③;否則,轉⑥;
④ 生成δ(xj,yn,i);
⑤ 將δ(xj,yn,i)發(fā)送到H(xi),轉;
⑥ 與D(xj,yn)進行合作;
⑦ 合作過程;
⑧ 合作結束;
⑩ 生成δ(xj,yn,i);
算法2的時間復雜度為O(1),空間復雜度為O(1),按照既定步驟執(zhí)行后產生唯一輸出δ(xj,yn,i).通過將δ(xj,yn,i)發(fā)送到H(xi)完成信任評價.
服務器H(xi)在此過程中所做的工作可由算法3描述.
算法3.D(xi,ym)進行信任評價(H(xi)方面).
執(zhí)行者:H(xi);
輸入:δ(xj,yn,j);
① 在存儲空間中維護Pool(xi)與{Bc|c∈N*,t∈N*,1≤c≤t-1};
② 收到D(xi,ym)發(fā)送的δ(xj,yn,j);
⑦Sd(xj,yn,1)←Id(x,y)+δ(xj,yn,j);
⑩ 算法結束.
需要指出的是,D(xi,ym)與D(xj,yn)進行合作時,D(xi,ym)屬于A(xi)而與H(xi)通信,D(xj,yn)屬于A(xj)而與H(xj)通信,且{xi,ym}≠{xj,yn}是可能的.即屬于不同管理域的設備有可能在地理上接近而產生合作,同一管理域的設備也有可能在地理上遠離而無法合作;設備之間的合作可能在管理域之間進行.
設有服務器H(xi),它所參與到的域間信任評價、設備間信任評價以及區(qū)塊的生成與打包過程可以綜合表示為算法4所示.
算法4.H(xi)的工作流程.
執(zhí)行者:H(xi);
輸入:TrI,δ(xj,k-1),δ(xj,yn,j);
輸出:Bt.
① 在存儲空間中維護Pool(xi)與{Bc|c∈N*,t∈N*,1≤c≤t-1};
② 等待并接收D(xi,ym)發(fā)送的δ(xj,yn,j);
④ 檢查是否收到Γi,j發(fā)生指令,若是,轉⑤;若否,轉⑥;
⑤ 使用算法1的過程輸出Bt,轉⑩;
⑥ 檢查Pool(xi)是否滿足
若是,轉⑦;若否,轉②;
⑦ 選擇是否打包并發(fā)布Bt,若是,轉⑧;若否,轉②;
⑨ 按第3.4節(jié)所述發(fā)布Bt;
⑩ 算法結束.
算法4的時間復雜度為O(t×Max(Pool(xi))),空間復雜度為O(1),按照既定步驟執(zhí)行后產生唯一輸出Bt,作為新區(qū)塊發(fā)布到區(qū)塊鏈上.
3.6.1 域管理者間評估
假設A(xi)試圖尋找合作伙伴,Φ1={A(xj)|1≤xj≤α,xj∈N*,j∈N*}為候選集合.A(xi)將在Φ1中選擇期望信用最高,合作風險最低的域作為合作伙伴.
此時A(xi)查詢{Bc|c∈N*,t∈N*,1≤c≤t-1},獲取到Φ2={Sa(xj,μ),δ(xj,μ)|A(xj)∈Φ1,t-r-1≤μ≤t-2,μ∈N*}并計算:
(11)
求出每一個合作伙伴當前最新的信用值Ca.
(13)
3.6.2 設備間評估
由于物聯(lián)網設備種類廣泛,我們對不同的設備按照其自身特點與任務屬性設計不同的查詢方式,分別列為選項1與選項2.
(14)
選項2. 大部分物聯(lián)網設備能夠完成一定規(guī)模的數(shù)學運算,具有較強的計算與存儲能力.此時應當以選項2作為信任值Ed的產生方式.
假設D(xi,ym)試圖尋找合作伙伴,Φ3為候選集合,D(xi,ym)在Φ3中選擇期望信用最高,合作風險最低的設備作為合作設備.
隨后計算:
(15)
(16)
需要指出的是D(xi,ym)查詢{Bc|c∈N*,t∈N*,1≤c≤t-1}的過程可以通過詢問服務器直接獲得Φ4,也可以先將{Bc|c∈N*,t∈N*,1≤c≤t-1}存儲在本地,然后查詢獲得Φ4.前者適用于設備存儲空間較小的情況,后者適用于設備的存儲空間較大的情況.
為了檢驗所提方案的有效性與實用性,本文從期望信用-風險表現(xiàn)、共識機制安全性、存儲開銷、信任評估效果4個方面進行了實驗與分析.本文實驗均采用MATLAB編程模擬,實驗平臺為3.4 GHz Intel Core i7-6700 CPU,8 GB RAM,操作系統(tǒng)為Windows 7-64位.
H(x1)與H(x2)的信用秤值、信用評價調節(jié)因子值、期望信用值以及風險值如圖3、圖4所示:
Fig. 3 Performance of participant with Low-Risk圖3 低風險參與者期望信用-風險表現(xiàn)
Fig. 4 Performance of participant with High-Risk圖4 高風險參與者期望信用-風險表現(xiàn)
另外,H(x1)的期望信用變化趨勢較為穩(wěn)定,其風險值在r的不同取值下的均值很低;而H(x2)的期望信用變化趨勢則波動較大,其風險值的均值也較大.低風險與高風險參與者期望信用變化趨勢與風險均值的對比圖如圖5所示:
Fig. 5 Comparison between participants with high and low risk圖5 高低風險參與者對比
以上是對H(x1)與H(x2)所作的討論,對于設備之間的信用風險表現(xiàn),情形是類似的.
我們在3.3節(jié)中描述了本方案的記賬權選擇策略,與當前區(qū)塊鏈中最常用的PoW共識機制采用的記賬權選擇方式(競爭破解Hash值[17])相比,我們的方案在分布式物聯(lián)網中更加安全也更加高效.眾所周知,PoW機制面臨51%攻擊[31]問題,這一缺陷使得PoW機制只適用于公有鏈的場景.因為PoW的安全性基于網絡中沒有節(jié)點或組織能夠獲得超過全網50%的總算力.在公有鏈中,由于節(jié)點眾多,全網總算力十分龐大,這一假設是合理的;而在聯(lián)盟鏈中,參與記賬的服務器數(shù)量相比公有鏈中節(jié)點數(shù)量少很多,且分布式物聯(lián)網中的不同機構完全可能在所部署服務器的算力上存在較大差異.因此當聯(lián)盟鏈中有機構部署的服務器算力遠超其他機構服務器,或是少數(shù)機構間形成Cartel組織時,將可能出現(xiàn)個別幾臺,甚至單臺服務器的計算能力超過網絡算力50%的情況,這會造成PoW區(qū)塊鏈的信任基礎遭到破壞.圖6中我們模擬了如果在分布式物聯(lián)網的聯(lián)盟鏈中使用PoW機制,系統(tǒng)內的惡意域管理者為了篡改信任歷史數(shù)據(jù)所發(fā)起的51%攻擊的大致過程.
Fig. 6 Example of 51% attack圖6 51%攻擊示例
圖6中,我們采用了比特幣區(qū)塊鏈所遵循的大約每10 min產生一個新區(qū)塊的策略,并為攻擊者分配了全網60%的算力,誠實的用戶則占據(jù)了剩下40%的算力.從圖6中可以看出,當誠實的用戶具有初始50個區(qū)塊的優(yōu)勢時,占據(jù)全網60%算力的攻擊者可以在大約60 h內追趕上誠實用戶,并在隨后產生比誠實用戶所維護的更長的鏈以欺騙其他用戶.因此,在聯(lián)盟鏈中,PoW機制是不應該被采用的.
本文采用的記賬權選擇方式是當某一特定過程發(fā)生或符合某一特定條件時由指定的域管理者服務器借助模塊化的共識機制產生新區(qū)塊,區(qū)塊鏈的不可篡改性由模塊化共識機制維護.事實上,由于PoW采用長鏈共識,而PBFT,RAFT等可替換模塊化共識機制采用最終共識,即服務器在區(qū)塊鏈初次寫入后不會因外部條件改變而修改原有數(shù)據(jù),因此保證了區(qū)塊鏈的不可偽造與篡改.
與傳統(tǒng)的比特幣區(qū)塊鏈相比,本文提出的記賬權選擇策略具有更小的存儲開銷,使得系統(tǒng)中的服務器能夠以更低的成本在更長一段時間內維護系統(tǒng)的正常運行.根據(jù)3.2節(jié)區(qū)塊結構,可為Head(Bt)分配字段長度如表1所示:
Table 1 The Length of Fields in a Block表1 區(qū)塊字段長度
令每個Cd占4 B,則區(qū)塊中的Cd{·}最多可占4×Max(Pool(x))字節(jié).假設Max(Pool(x))=100且θ=1,則Cd{·}最多可占存儲空間為400 B.區(qū)塊Bt所占存儲空間最大為1 057 B,只比1 KB稍微多一點.本文方案中區(qū)塊最大存儲開銷與Max(Pool(x))之間的對應關系如表2所示:
Table 2 Maximum Storage Overhead of a Block表2 區(qū)塊最大存儲開銷
從表2中可以看出,當Max(Pool(x))=100 000時,區(qū)塊Bt的最大存儲開銷是0.38 MB.而比特幣系統(tǒng)中每個區(qū)塊最大為1 MB,遠大于我們方案中單個區(qū)塊的存儲開銷.
此時,令實驗中所有A(x)∈Φ1且|Φ1|=10,Max(Pool(x))=1 000且θ=1,模擬結果如圖7所示:
Fig. 7 Trend of Blockchain Growing圖7 區(qū)塊鏈增長趨勢
從圖7中趨勢可以看出,當Max(Pool(x))=1 000且θ=1時,本文方案的出塊速率顯著慢于比特幣出塊速率.又因為本文方案中單個區(qū)塊比比特幣區(qū)塊要小,因此在實驗語境中,本文方案比比特幣區(qū)塊鏈更加節(jié)省存儲空間.
實驗模擬中涉及到的Γi,j次數(shù)與設備間合作次數(shù)的頻數(shù)分布直方圖如圖8所示.
Fig. 8 The external environment related to the generation of blocks in the experiment圖8 實驗中與新區(qū)塊產生有關的外部環(huán)境
此外,出塊速率與區(qū)塊鏈存儲開銷與Max(Pool(x))是密不可分的,本文考察了當Max(Pool(x))的取值不斷變大時的區(qū)塊產生情況,如圖9所示.
Fig. 9 Relationship between size of pool and block generation rate圖9 Pool大小與區(qū)塊產生速率的關系
Fig. 10 The external environment related to the Fig. 9圖10 與圖9實驗關聯(lián)的外部環(huán)境
從圖9中可以看出,Pool值越大,區(qū)塊產生速率越小.在相同的供應鏈經濟表現(xiàn)(Γi,j次數(shù),設備間合作次數(shù))下,Pool值增大的過程中區(qū)塊產生速率下降的幅度會越來越小,這是因為當Pool值較小時,3.3節(jié)所述情形2是區(qū)塊產生速率的主要影響因素,此時新區(qū)塊的產生主要由設備間評價影響;而當Pool值不斷增大到能夠使服務器較為輕易地容納設備在較長時間內產生的期望信用評價數(shù)據(jù)時,影響區(qū)塊產生速率的主要因素就變換為3.3節(jié)所述情形1,此時企業(yè)間合作與評價占據(jù)新區(qū)塊產生的主要方面,區(qū)塊產生速率對Pool值的依賴性降低.
圖9所示實驗中的其他因素為,A(x)∈Φ1,|Φ1|=10且θ=1.代表實驗中外部環(huán)境的數(shù)據(jù)如下直方圖所示.
在3.6節(jié)中,我們介紹了使用Ea與Ed作為域管理者與域內設備信任綜合評價的結果.并說明了在本文方案中,Ea與Ed的設計原則是使C受到比R相對較高的重視,這樣當C與R同時很高或同時很低的情況時,能夠對綜合值給出更傾向于C值的結果.由于參與者試圖選出期望信用最高,風險最低的實體作為合作伙伴,且信用值C與風險值R的取值都處于[0,1]區(qū)間內,選取簡單歸一化方法E1=C(C+R)與E2=C作為基準方法用來參照,并考察我們的計算方法與基準方法在評價性能上的差異.如圖11與圖12所示:
Fig. 11 Integrated evaluation with C changes圖11 綜合評價值隨C的變化
Fig. 12 Integrated evaluation with R changes圖12 綜合評價值隨R的變化
從圖11與圖12中可以看出,當C逐漸變大時,E1,E2與E都有逐漸變大的趨勢,但是E1與E2更易受到單個變量變化的影響.具體地,E1與E2更易受到一個極低的風險或是極高的期望信用的影響,而忽略對另一個值的合理考慮,而E則在打分中顯得更加得謹慎與保守.
圖13示出了當C=R時E1,E2,E的評價方式.
可以看出,當C與R相等時,E1,E2都沒有能夠對C與R的數(shù)值變化做出反應,這使得信用與風險都十分低的實體與二者都十分高的實體分數(shù)完全一樣;而E則對不同的期望信用-風險取值做出了不同的信任評價,使得當期望信用與風險同時很低或很高時,重點考慮期望信用的影響.
E1,E2與E在C與R同時變化時的取值情況如圖14所示.
Fig. 13 Integrated evaluation with the case of C=R圖13 C=R時綜合評價值變化情況
可見,相比E1與E2,E的取值曲面更加地平滑,意味著不會因單個變量的小范圍變化造成信任值的劇烈波動.
Fig. 14 Integrated evaluation with C and R changes圖14 E1,E2與E隨C和R變化的取值圖
本文提出了一種分布式物聯(lián)網的信任管理方法,針對不依賴可信第三方與額外信任假設難以在純分布式物聯(lián)網中進行信任管理與后續(xù)合作的問題,借助區(qū)塊鏈與風險理論設計了適用于域管理者與域內設備進行信任評價與評估的方法,以實現(xiàn)對分布式物聯(lián)網內實體的信任管理.實驗模擬與分析表明本方案在信任管理與度量上的有效性,采用基于區(qū)塊鏈的聯(lián)盟鏈的最終共識防止信任數(shù)據(jù)被偽造與篡改,同時具有較低的存儲開銷.
隨著物聯(lián)網設備的成本下降與智能化程度的提升,分布式物聯(lián)網的現(xiàn)實場景將更加廣泛與多樣化,
使得這一環(huán)境下的信任管理問題面臨著日益嚴峻的挑戰(zhàn).未來對這一問題的研究可從3個方面進行:
1) 本文對設備之間的合作形式與交互方式未做假設,因為設備間的合作可能是復雜多樣的,包括數(shù)據(jù)共享、資源調度等各種形式.后續(xù)的研究可以關注于特定設備間對特定合作過程的交互協(xié)議設計.
2) 本文引入對風險的考察,但只用到了較為基礎的風險理論.我們使用了風險度量理論的創(chuàng)始人Markowitz在文獻[33]中所提出的風險度量思想.后續(xù)的研究可以關注于風險量化模型的比較,探索更加適合分布式物聯(lián)網的風險量化模型.
3) 在分布式物聯(lián)網中域管理者與設備都需要在合作中表現(xiàn)良好,才不會被合作伙伴給予負向信任評價;同樣地,它們也需要為自己的評價負責,以避免存在參與者不負責任地對其他合作者作出大量正向或負向評價.對于域管理者間信用評價,本文方案提供了可追溯性;但對于設備,本文尚未對這一問題作詳細討論.簡單的解決辦法是使設備在向管理者服務器提交調節(jié)因子時攜帶數(shù)字簽名,或者由服務器負責記錄每次評價發(fā)起的設備并與評價結果一并記錄在區(qū)塊鏈上,并通過審計途徑使得系統(tǒng)內參與者為其評價負責.后續(xù)研究可以關注于分布式物聯(lián)網信任管理系統(tǒng)中的審計方法.如何實現(xiàn)自動化審計、審計主體的粒度、發(fā)現(xiàn)不負責任的評價者后的懲罰措施等問題都值得未來進一步研究.