任彦冰 李兴华 刘 海 程庆丰 马建峰
1(西安电子科技大学网络与信息安全学院 西安 710071) 2 (数学工程与先进计算国家重点实验室(解放军信息工程大学) 郑州 450001) (yanbing_ren@foxmail.com)
随着物联网(Internet of things, IoT)技术的发展,在不同的物联网之间逐渐形成了大规模、异构化、动态化的分布式物联网环境.其中每个物联网作为一个独立的管理域都拥有大量的物联网设备,独立的域内通信协议与管理方式.物联网中的设备存在着合作、交互与资源调度的需求(后文将此过程统称为合作),设备间的合作可能在管理域内进行,也可能在管理域间进行;另一方面,物联网管理机构间也存在着业务往来、信息共享等各种形式的合作.由于物联网内设备众多,异构物联网之间在域内组织与管理机制等方面存在较大差异,分布式物联网中的合作问题尚未得到有效解决.
解决合作问题的前提是在物联网设备间以及机构间建立信任机制,然而物联网应用种类众多,不同机构的业务属性与信任特征各异,各种物联网设备在计算与存储能力上存在较大差异,使得现有的抽象信任机制研究无法直接应用在分布式物联网环境中.另一方面,现有的物联网信任研究大部分属于对管理域内信任问题的研究,对于管理域间信任问题的研究依然较少且无法应用于不依赖可信第三方与额外信任假设的完全分布式物联网环境中.
对此本文借助区块链与风险理论,提出了一种适用于分布式物联网的信任管理方法,具体地,我们将“信任”这一主观抽象的概念[1]具体化为对期望信用(expected credit)与风险(risk)的考察,并借助区块链实现信任数据的有效共享、不可篡改、公开可查.本文的主要贡献有3个方面:
1) 针对分布式物联网内管理机构业务属性与信任特征各异,难以建立通用的信任管理方法,提出了机构间信任建立与管理,信任数据共享的方法.所提方法不依赖任何可信第三方与先验域间信任假设,信任建立与管理完全依赖各机构自行实施与维护.
2) 针对物联网设备的域间信任需求,提出了分布式物联网内的设备间信任管理方法;根据物联网设备计算与存储能力差异较大的特点,为具有不同计算与存储能力的设备提供了差异化的信任管理选项.
3) 实验模拟与分析表明,所提方案能够有效量化与衡量系统内实体的信任程度,且能够在保护历史信任数据不被恶意篡改的同时以较低的存储开销维护系统正常运行.
信任作为一个主观抽象的概念[1],其定义涉及到不同研究领域的主体、客体、上下文环境等各种因素[2],没有一种模型能够将不同领域与不同上下文环境的信任概念有效完备地表达.目前存在着两种不同的信任机制研究:基于策略制定的机制与基于信誉的机制.基于策略制定的机制[3]采用类似于公钥基础设施的方式进行严格的授权管理,结点是否可信由数字证书严格定义,并通过逻辑程序设计限定结点权限,通常要求系统中存在可信的权威机构,不适用于分布式环境;基于信誉的机制[4-6]通过结点间的直接交互与其他结点对目标实体的建议与评价来计算与更新信任,理论上可以不依赖权威机构,但会产生大量的结点间通信.无论是基于策略制定的机制还是基于信誉的机制都是在抽象的网络层面对信任问题的研究,物联网设备的计算,存储与通信能力差异化程度高,异构物联网的域内通信与管理方式存在差异,使得以抽象网络环境为背景的信任研究无法直接应用在分布式物联网中.
现有的物联网信任研究大部分关注于解决单个物联网中的信任问题[7-12].Chen等人[7]借助模糊理论对物联网环境下的信任进行了建模,在提高物联网中路由效率的同时对其中的节点行为进行检测.Lize等人[8]将物联网信任分为传感器层、网络层与应用层,利用模糊集理论将多层的信息进行融合,计算出一个对象的全局声誉.Saied等人[9]尝试用多个函数对不同设备服务进行信任评价,提出了一种基于环境感知的信任管理系统.该方案从节点在过去的不同合作类型中的表现导出面对新任务时获得的信任值,这一过程依赖可信的信任管理机构完成.由于分布式物联网中的设备隶属与不同的所有者且不同所有者之间存在不完全可信的关系,而单个物联网只有一个所有者且是完全可信的,因此为单个物联网设计的信任管理方法不能直接应用于分布式物联网中,否则会造成信任数据不收敛导致方案失效的情况.
部分学者对多物联网环境下的信任问题进行了研究.Liu等人[13]提出了一种可验证的缓存前次交互摘要方法,构建了“现象可信-行为可信-节点可信-机构可信-授权可信”的环流,目的是解决物联网系统层次化的信任问题.但是,该方案主要研究机构与阅读器之间的信任问题,对阅读器之间的信任问题未做详细讨论;另外,文章令不同的机构隶属于同一个信任管理机构,实际是在不同的域外建立了额外的可信第三方,这在现实中是难以实现的.Chen等人[14]设计了一种自适应的社交物联网信任管理协议,一个具有社交属性的物联网设备可以自适应地选择最佳参数设置以适应设备所有者社交关系的变化.然而,该方案对设备所有者之间的信任关系假设依然是独立于方案设计,先验进行的.这实际是对域间的信任关系做了前提假设,忽略了跨域信任管理中的域间信任问题.Benkerrou等人[15]提出了一种基于信用与诚实的物联网信任评估方法,文章将合作的双方称为服务请求者与合作者,服务请求者向域内的主节点发送服务请求,域内主节点选择潜在的合作者提供服务.其中使用信用值描述合作者的受信任程度,诚实值描述请求者的受信任程度,通过将信用值与诚实值演算为统一的信任值,实现对物联网中对象信任的管理.但是该方案重点关注了域内的信任问题,虽然提到了域间信任,但是却假设所有的域内主节点都是完全可信的,然而事实上很难在现实中找到符合这一假设的情况.另外,该方案只给出了信任评价的逻辑表达式,却没有讨论具体的实现机制.Rafey等人[16]提出了一种基于上下文的物联网社交信任模型,在信任计算过程中考虑到物联网节点之间的社会关系与交互的上下文环境.每个节点基于直接交互和其他节点的推荐来计算目标节点的可信度.然而,该方案依然假设域管理者之间的信任关系是方案开始前便存在的,并没有对这一信任关系进行深入研究;且方案中的每个节点维护一个对其他节点的认识,容易导致节点内存储的信任值随节点数量呈指数增长,使得节点信任不能有效传播,一个恶意节点可能依次对其他节点进行欺诈而不被察觉.
可见,现有的物联网信任问题研究部分因为只适用于单个物联网而无法应用于分布式物联网中,部分在解决分布式物联网信任问题时引入了权威第三方或域间信任假设,这实际上依然使得分布式物联网位于同一个逻辑域内,属于抽象意义上的域内信任问题.然而,目前尚没有既不引入额外的可信第三方也不引入先验域间信任假设的分布式物联网信任管理机制研究,本文便为解决这一问题而展开.
考虑一个去中心化的分布式物联网架构,在网络中,存在着许多的物联网设备(或称结点),结点之间通过覆盖网络协议(overlay network protocols)或底层网络协议(underlying network protocols)进行通信[14].每一个结点隶属于一个唯一的物联网管理者,每一个物联网管理者拥有许多不同的物联网设备.物联网管理者与其所有的下属设备构成一个管理域.设备可以在管理域内或管理域间进行合作以实现特定需求,域管理者可以在彼此之间进行合作.为此,域管理者需要建立、评估与更新彼此间的信任关系;网络中的设备也需要动态地调整和更新与其他设备间的信任关系.分布式物联网体系架构如图1所示.
Fig. 1 Architecture of distributed Internet of things图1 分布式物联网系统架构
图1中,H(x)表示域管理者服务器,D(x,y)表示H(x)管理下的设备,A(x)表示管理域,ε(x)表示A(x)内设备数量的最大编号.形式化地,我们有x∈{μ∈N*|1≤μ≤α,α∈N*},y∈{ω∈N*|1≤ω≤ε(x),ε(x)∈N*},其中α表示网络中管理域的个数.图1中,1≤c1≤α,1≤c2≤α,1≤c3≤α;并省略了除A(c1),A(c2),A(c3)以外的其他管理域.
在系统架构中,我们假设域管理者与其下属的物联网设备间存在安全稳定的通信链路,由管理域各自选择协议与通信机制实现.对于不同管理者的可信性及它们之间的信任关系,本文不作先验假设.
信任作为一个抽象的概念,不同研究对于这一概念有不同的体现方式.本文采用期望信用(expected credit)与风险(risk)对一个实体的可信程度进行描述.其中期望信用反映特定实体在某时间点被其他实体期望拥有的履行信用的能力,风险反映特定实体在过去的一段时间内信用表现的稳定性.具体定义如下.
定义1.A(x)的期望信用.在不考虑历史信用数据的情况下,能够唯一标识A(x)在某个特定时间点受其他实体A(x′)期望的能提供有效服务与合作的程度或概率,记为Ca(x,k);其中x,x′∈{μ∈N*|1≤μ≤α,α∈N*},k∈N*,且有x≠x′.
定义2.Ca(x,k)的信用秤值Sa(x,k).由一常数值Ia(x)初始确定,并受到A(x′)的输出参数δ(x,i)调节的变量值,且满足:
(1)
Ca(x,k)=f(Sa(x,k)),
(2)
其中,f为从{Sa(x,k)}到{Ca(x,k)}的映射函数;x,x′∈{μ∈N*|1≤μ≤α,α∈N*},k∈N*,且有x≠x′;δ(x,i)∈{-1,0,1},表示对Sa(x,k)的调节因子;i∈N*.
定义3.D(x,y)的信用值.在不考虑历史信用数据的情况下,能够唯一标识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).由一常数值Id(x,y)初始确定,并受到D(x′,y′)的输出参数δ(x,y,i)调节的变量值,且满足:
(3)
Cd(x,y,k)=f(Sd(x,y,k)),
(4)
其中,f为从{Sd(x,y,k)}到{Cd(x,y,k)}的映射函数;τ(λ)为在某特定时间段内,一个特定的区域A(xλ)内所存在的D(xλ,yλ)向其管理者服务器H(xλ)提交的对D(x,y)的信用评价调节因子δ(x,y,i)的个数.此处“特定时间段与特定区域”在第3节记账权选择问题中进行更详细的介绍;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)的调节因子,i∈N*,τ∈N*,λ∈N*.
(5)
(6)
(7)
(8)
定义5与定义6将风险值看做是每个纳入风险考察的期望信用C与其均值的偏差的算数平均数,它反映了A(x′)在与A(x)的合作过程中因为A(x)的违约而导致损失的可能性.风险值越高,表示在过去一段时间中该实体的信用表现越不稳定,意味着在将来的合作中该实体可能出现与其当前的期望信用C所呈现的信用水平相悖离的行为.
为了在跨管理域的参与者之间进行信任管理,采用区块链来实现分布式物联网中信任数据的共享与同步.区块链技术是由Nakamoto[17]提出的能够在纯分布式环境中实现可信地数据共享与状态共识的分布式存储机制.按照部署与应用场景的不同,区块链可分为3种:公有链、联盟链和私有链.
1) 公有链指区块链部署与运行在公网上,所有互联网用户只要下载软件或配置本地环境就能够接入的区块链系统;
2) 联盟链指区块链部署与运行在几个或多个不同机构或管理域之间,为不同机构或管理域的跨平台数据共享提供信任,属于受限准入型区块链;
3) 私有链指区块链部署与运行在单个机构或企业的内网中,只能由该机构内特定的服务器产生与维护,其他用户可以存储与查询的区块链.私有链中的“单个机构或企业”可以是地理上的,也可以是逻辑上的.
本文采用联盟链实现分布式物联网中信任数据的共享与维护,主要利用区块链的分布式信任,不可篡改与公开透明特性.其中分布式信任确保A(x)之间对区块链副本唯一性与正确性的共识,不可篡改性确保已经写入区块链的数据不能被恶意伪造或修改,公开透明性确保区块链上的信息是开放的,所有参与者随时可查.联盟链的优势在于能够在不同的A(x)间进行信任管理并共享数据,而不需要可信第三方进行仲裁.
一个区块链可以表示为{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在区块链中的上一个区块求Hash的值;A(x1)表示区块生成者的唯一标识;A(x2)表示受评域管理者的唯一标识;Sa(x2,k-1)=Sa(x2,k-2)+δ(x2,k-2);δ(x2,k-1)为A(x1)对A(x2)给出的信用评价调节因子;k为本次评价的Sa序号,在每次对A(x2)的评价中递进增长;MR为Merkle树根;TrI为一次商业交易行为中的交易信息,包含价格、交易时间等市场因素;σ(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′)进行信用评价调节之后的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)为区块头,{Cd{·}}为区块体.将Cd{·}组织成Merkle树[18-19]的方式,Merkle树根在区块头中.举例来说,假设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在区块链中的高度t值、时间戳等字段则不作赘述.
在区块链技术中,共识机制问题指如何在系统中不同节点上维护其历史数据与状态一致性;记账权选择问题要求提供一种机制,确定区块的发布权,即确定哪个节点可以打包并发布现有区块链中的下一区块.公有链中,由于总是通过记账权选择的竞争实现共识机制,二者之间存在很强的关联性,甚至在很大程度上可以被视为同一个问题,故现有成熟的公有链共识机制常依赖于记账权选择策略的设计[17,20].联盟链与私有链中,由于参与节点较公有链中少很多,一些在区块链这一概念提出前便已存在的共识机制研究[21-27]可直接应用,因此将记账权选择与共识机制分别讨论.联盟链中记账权的选择具有较大的自主性,一般可根据应用场景与实际需求设计与选择合适的方法来确定记账权.
本文中对管理域在语义层面的属性与功能不作特定的假设.事实上,管理域可能是拥有大量传感器与智能设备,需要在战场上彼此合作的军事单位;或是供应链中拥有大量智能工业与物流设备,期望提高合作效率,维护商业信誉的企业.在第4节实验模拟与分析部分,我们将采用供应链作为场景去考察本文所提信任管理方法的效果.此处对记账权选择机制给出抽象的,一般性的设计描述.
情形1. 定义函数
规定当且仅当f(A(xi),A(xj))=1时,H(xi)获得且仅获得一次产生一个新区块Bc并将其添加到区块链末尾的权利,其中现有区块链为{B1,B2,…,Bc-1}.Γi,j表示H(xi)与H(xj)之间的某一合作过程且满足Γi,j≠Γj,i.
情形2. 在特定的场景与环境下,系统中任何H(xi)与H(xj)之间较长时间没有合作Γi,j出现时,就会导致D(xi,ym)提交的信用数据在H(xi)中大量积存,无法共享到H(xj),使存在信用请求需求的D(xj,yn)无法获得最新的信用评价,同时造成H(xi)内存资源的消耗,对服务器的可用性造成潜在的影响.
假设H(xi)在特定时间满足3.3节中指出的条件,需要打包并发布区块Bt,此时,对于3.3节中情形1与情形2,Head(Bt)的填写将有差异.此节中情形1与情形2分别对应3.3节中情形1与情形2.
情形1.f(A(xi),A(xj))=1时,A(xi)需要对A(xj)在合作Γi,j中的信用表现作出评价,即给出δ(xj,k-1),并通过查询区块链计算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)之间通过因特网通信,因此在区块数据的发布过程中,可能会遇到网络环境不稳定导致的数据包丢失等问题,这被称作区块链中的节点发生了拜占庭故障.拜占庭故障可以理解为试图达成特定共识的网络节点当中存在的个别节点因为任意原因篡改或隐藏真实信息的行为,发生拜占庭故障的节点也被称为拜占庭节点.自从Lamport提出拜占庭将军问题以来[21],对于这一问题的研究不断深入[28],已经产生了一些被广泛接受与应用的分布式一致性算法[22-27].基于此,本文对于区块链上新区块的发布过程采用模块化的设计,允许采用Paxos[22-24],PBFT[25],Raft[27]等算法实现.这种模块化的方式使得对于节点间共识机制与算法的研究与在区块链上进行顶层设计的研究相互独立,也是当前联盟链中常见的设计模式[29].
一旦H(xi)通过模块化的共识机制成功发布了区块Bt,网络上的其他所有H(xk)接收Bt并将其添加进{B1,B2,…,Bt-1},随后{B1,B2,…,Bt-1,Bt}便成为系统中受非拜占庭节点认可的区块链.
3.5.1 域管理者间评价
A(xi)与A(xj)之间通过区块链进行信用评价,假设过程Γi,j发生,则H(xi)在区块链上查询并获取Sa(xj,k-2),δ(xj,k-2)与k-1值,计算Sa(xj,k-1)=Sa(xj,k-2)+δ(xj,k-2).随后H(xi)接收由域管理者给出的信用评价调节因子δ(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的数字签名.提供σ(xj)后,A(xj)将无法否认Γi,j及其中的必要信息.
假设过程Γi,j发生,A(xi)对A(xj)进行评价,评价过程中H(xi)上的操作可表为算法1所示.
算法1. 域管理者间评价.
执行者:H(xi);
输入:TrI,δ(xj,k-1);
输出:Bt.
① 接收到Γi,j发生的信息;
② 接收到与Γ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{·}}作为新区块Bt,借助模块化的共识算法发布Bt,算法结束.
算法1的时间复杂度为O(t),空间复杂度为O(1),按照既定步骤执行后产生唯一输出Bt,作为最新的区块添加到区块链上.
3.5.2 设备间评价
算法2.D(xi,ym)进行信任评价(D(xi,ym)方面).
执行者:D(xi,ym);
输入:无;
输出:δ(xj,yn,i).
① 向D(xj,yn)发出合作请求;
② 若未得到响应或请求被拒绝,转③;否则,转⑥;
④ 生成δ(xj,yn,i);
⑤ 将δ(xj,yn,i)发送到H(xi),转;
⑥ 与D(xj,yn)进行合作;
⑦ 合作过程;
⑧ 合作结束;
⑩ 生成δ(xj,yn,i);
算法2的时间复杂度为O(1),空间复杂度为O(1),按照既定步骤执行后产生唯一输出δ(xj,yn,i).通过将δ(xj,yn,i)发送到H(xi)完成信任评价.
服务器H(xi)在此过程中所做的工作可由算法3描述.
算法3.D(xi,ym)进行信任评价(H(xi)方面).
执行者:H(xi);
输入:δ(xj,yn,j);
① 在存储空间中维护Pool(xi)与{Bc|c∈N*,t∈N*,1≤c≤t-1};
② 收到D(xi,ym)发送的δ(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),它所参与到的域间信任评价、设备间信任评价以及区块的生成与打包过程可以综合表示为算法4所示.
算法4.H(xi)的工作流程.
执行者:H(xi);
输入:TrI,δ(xj,k-1),δ(xj,yn,j);
输出:Bt.
① 在存储空间中维护Pool(xi)与{Bc|c∈N*,t∈N*,1≤c≤t-1};
② 等待并接收D(xi,ym)发送的δ(xj,yn,j);
④ 检查是否收到Γi,j发生指令,若是,转⑤;若否,转⑥;
⑤ 使用算法1的过程输出Bt,转⑩;
⑥ 检查Pool(xi)是否满足
若是,转⑦;若否,转②;
⑦ 选择是否打包并发布Bt,若是,转⑧;若否,转②;
⑨ 按第3.4节所述发布Bt;
⑩ 算法结束.
算法4的时间复杂度为O(t×Max(Pool(xi))),空间复杂度为O(1),按照既定步骤执行后产生唯一输出Bt,作为新区块发布到区块链上.
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 设备间评估
由于物联网设备种类广泛,我们对不同的设备按照其自身特点与任务属性设计不同的查询方式,分别列为选项1与选项2.
(14)
选项2. 大部分物联网设备能够完成一定规模的数学运算,具有较强的计算与存储能力.此时应当以选项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.前者适用于设备存储空间较小的情况,后者适用于设备的存储空间较大的情况.
为了检验所提方案的有效性与实用性,本文从期望信用-风险表现、共识机制安全性、存储开销、信任评估效果4个方面进行了实验与分析.本文实验均采用MATLAB编程模拟,实验平台为3.4 GHz Intel Core i7-6700 CPU,8 GB RAM,操作系统为Windows 7-64位.
H(x1)与H(x2)的信用秤值、信用评价调节因子值、期望信用值以及风险值如图3、图4所示:
Fig. 3 Performance of participant with Low-Risk图3 低风险参与者期望信用-风险表现
Fig. 4 Performance of participant with High-Risk图4 高风险参与者期望信用-风险表现
另外,H(x1)的期望信用变化趋势较为稳定,其风险值在r的不同取值下的均值很低;而H(x2)的期望信用变化趋势则波动较大,其风险值的均值也较大.低风险与高风险参与者期望信用变化趋势与风险均值的对比图如图5所示:
Fig. 5 Comparison between participants with high and low risk图5 高低风险参与者对比
以上是对H(x1)与H(x2)所作的讨论,对于设备之间的信用风险表现,情形是类似的.
我们在3.3节中描述了本方案的记账权选择策略,与当前区块链中最常用的PoW共识机制采用的记账权选择方式(竞争破解Hash值[17])相比,我们的方案在分布式物联网中更加安全也更加高效.众所周知,PoW机制面临51%攻击[31]问题,这一缺陷使得PoW机制只适用于公有链的场景.因为PoW的安全性基于网络中没有节点或组织能够获得超过全网50%的总算力.在公有链中,由于节点众多,全网总算力十分庞大,这一假设是合理的;而在联盟链中,参与记账的服务器数量相比公有链中节点数量少很多,且分布式物联网中的不同机构完全可能在所部署服务器的算力上存在较大差异.因此当联盟链中有机构部署的服务器算力远超其他机构服务器,或是少数机构间形成Cartel组织时,将可能出现个别几台,甚至单台服务器的计算能力超过网络算力50%的情况,这会造成PoW区块链的信任基础遭到破坏.图6中我们模拟了如果在分布式物联网的联盟链中使用PoW机制,系统内的恶意域管理者为了篡改信任历史数据所发起的51%攻击的大致过程.
Fig. 6 Example of 51% attack图6 51%攻击示例
图6中,我们采用了比特币区块链所遵循的大约每10 min产生一个新区块的策略,并为攻击者分配了全网60%的算力,诚实的用户则占据了剩下40%的算力.从图6中可以看出,当诚实的用户具有初始50个区块的优势时,占据全网60%算力的攻击者可以在大约60 h内追赶上诚实用户,并在随后产生比诚实用户所维护的更长的链以欺骗其他用户.因此,在联盟链中,PoW机制是不应该被采用的.
本文采用的记账权选择方式是当某一特定过程发生或符合某一特定条件时由指定的域管理者服务器借助模块化的共识机制产生新区块,区块链的不可篡改性由模块化共识机制维护.事实上,由于PoW采用长链共识,而PBFT,RAFT等可替换模块化共识机制采用最终共识,即服务器在区块链初次写入后不会因外部条件改变而修改原有数据,因此保证了区块链的不可伪造与篡改.
与传统的比特币区块链相比,本文提出的记账权选择策略具有更小的存储开销,使得系统中的服务器能够以更低的成本在更长一段时间内维护系统的正常运行.根据3.2节区块结构,可为Head(Bt)分配字段长度如表1所示:
Table 1 The Length of Fields in a Block表1 区块字段长度
令每个Cd占4 B,则区块中的Cd{·}最多可占4×Max(Pool(x))字节.假设Max(Pool(x))=100且θ=1,则Cd{·}最多可占存储空间为400 B.区块Bt所占存储空间最大为1 057 B,只比1 KB稍微多一点.本文方案中区块最大存储开销与Max(Pool(x))之间的对应关系如表2所示:
Table 2 Maximum Storage Overhead of a Block表2 区块最大存储开销
从表2中可以看出,当Max(Pool(x))=100 000时,区块Bt的最大存储开销是0.38 MB.而比特币系统中每个区块最大为1 MB,远大于我们方案中单个区块的存储开销.
此时,令实验中所有A(x)∈Φ1且|Φ1|=10,Max(Pool(x))=1 000且θ=1,模拟结果如图7所示:
Fig. 7 Trend of Blockchain Growing图7 区块链增长趋势
从图7中趋势可以看出,当Max(Pool(x))=1 000且θ=1时,本文方案的出块速率显著慢于比特币出块速率.又因为本文方案中单个区块比比特币区块要小,因此在实验语境中,本文方案比比特币区块链更加节省存储空间.
实验模拟中涉及到的Γi,j次数与设备间合作次数的频数分布直方图如图8所示.
Fig. 8 The external environment related to the generation of blocks in the experiment图8 实验中与新区块产生有关的外部环境
此外,出块速率与区块链存储开销与Max(Pool(x))是密不可分的,本文考察了当Max(Pool(x))的取值不断变大时的区块产生情况,如图9所示.
Fig. 9 Relationship between size of pool and block generation rate图9 Pool大小与区块产生速率的关系
Fig. 10 The external environment related to the Fig. 9图10 与图9实验关联的外部环境
从图9中可以看出,Pool值越大,区块产生速率越小.在相同的供应链经济表现(Γi,j次数,设备间合作次数)下,Pool值增大的过程中区块产生速率下降的幅度会越来越小,这是因为当Pool值较小时,3.3节所述情形2是区块产生速率的主要影响因素,此时新区块的产生主要由设备间评价影响;而当Pool值不断增大到能够使服务器较为轻易地容纳设备在较长时间内产生的期望信用评价数据时,影响区块产生速率的主要因素就变换为3.3节所述情形1,此时企业间合作与评价占据新区块产生的主要方面,区块产生速率对Pool值的依赖性降低.
图9所示实验中的其他因素为,A(x)∈Φ1,|Φ1|=10且θ=1.代表实验中外部环境的数据如下直方图所示.
在3.6节中,我们介绍了使用Ea与Ed作为域管理者与域内设备信任综合评价的结果.并说明了在本文方案中,Ea与Ed的设计原则是使C受到比R相对较高的重视,这样当C与R同时很高或同时很低的情况时,能够对综合值给出更倾向于C值的结果.由于参与者试图选出期望信用最高,风险最低的实体作为合作伙伴,且信用值C与风险值R的取值都处于[0,1]区间内,选取简单归一化方法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的数值变化做出反应,这使得信用与风险都十分低的实体与二者都十分高的实体分数完全一样;而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变化的取值图
本文提出了一种分布式物联网的信任管理方法,针对不依赖可信第三方与额外信任假设难以在纯分布式物联网中进行信任管理与后续合作的问题,借助区块链与风险理论设计了适用于域管理者与域内设备进行信任评价与评估的方法,以实现对分布式物联网内实体的信任管理.实验模拟与分析表明本方案在信任管理与度量上的有效性,采用基于区块链的联盟链的最终共识防止信任数据被伪造与篡改,同时具有较低的存储开销.
随着物联网设备的成本下降与智能化程度的提升,分布式物联网的现实场景将更加广泛与多样化,
使得这一环境下的信任管理问题面临着日益严峻的挑战.未来对这一问题的研究可从3个方面进行:
1) 本文对设备之间的合作形式与交互方式未做假设,因为设备间的合作可能是复杂多样的,包括数据共享、资源调度等各种形式.后续的研究可以关注于特定设备间对特定合作过程的交互协议设计.
2) 本文引入对风险的考察,但只用到了较为基础的风险理论.我们使用了风险度量理论的创始人Markowitz在文献[33]中所提出的风险度量思想.后续的研究可以关注于风险量化模型的比较,探索更加适合分布式物联网的风险量化模型.
3) 在分布式物联网中域管理者与设备都需要在合作中表现良好,才不会被合作伙伴给予负向信任评价;同样地,它们也需要为自己的评价负责,以避免存在参与者不负责任地对其他合作者作出大量正向或负向评价.对于域管理者间信用评价,本文方案提供了可追溯性;但对于设备,本文尚未对这一问题作详细讨论.简单的解决办法是使设备在向管理者服务器提交调节因子时携带数字签名,或者由服务器负责记录每次评价发起的设备并与评价结果一并记录在区块链上,并通过审计途径使得系统内参与者为其评价负责.后续研究可以关注于分布式物联网信任管理系统中的审计方法.如何实现自动化审计、审计主体的粒度、发现不负责任的评价者后的惩罚措施等问题都值得未来进一步研究.