文献标识码: A
DOI:10.16157/j.issn.0258-7998.190079
中文引用格式: 乔静炜,肖红,李穗生,等. 智能制造CPS中基于节点有效度的共识算法[J].电子技术应用,2019,45(4):118-121,126.
英文引用格式: Qiao Jingwei,Xiao Hong,Li Suisheng,et al. Consensus algorithm based on node validity in CPS[J]. Application of Electronic Technique,2019,45(4):118-121,126.
0 引言
智能制造CPS系统是计算机和物理进程的统一体,是集计算、通信和控制于一体的智能系统。CPS与物联网、工业控制系统、工业互联网等有着集成、融合的关系[1]。智能制造CPS系统中存在着大量的节点设备,这些设备之间需要进行相互通信来完成资源的配置、协调企业内部资源[2],如此大量的节点设备以及节点间的通信需求使得系统中的数据量极为庞大。
数据安全是智能制造系统可靠性、可用性的核心问题[3-4],也是智能制造CPS系统能够应用在实际生产环境中的首要前提。系统中庞大的数据量给传统第三方数据存储系统造成了巨大的压力。
区块链是比特币底层的核心技术,本质上是一个去中心化的分布式账本,节点间基于一套共识机制共同维护整个区块链系统;任意节点失效或退出,整个系统的运行不受影响,解决了传统中心化模式容易遭受攻击、篡改的问题。共识算法是区块链技术的核心,现有共识算法应用于智能制造CPS系统,还存在节点资源受限以及如何在满足系统可扩展性的同时保证安全性等问题。本文针对上述问题,提出改进的共识算法。
1 相关研究
目前,学术界对共识机制做了较为广泛的研究,其优缺点总结[5]如表1所示。
关于区块链在智能制造CPS系统中的应用研究较少,但是物联网在许多方面与智能制造CPS系统是相似的。许多专家学者对于区块链在物联网中的应用研究做出了相关的探索。
针对物联网节点设备众多且设备资源受限的特点,提出了两种应对方法,一是构建多层物联网安全模型[6],将较低层中的所有节点视为较高层中的一个节点,区块链部署在边缘层(edge layer)以外的各个层级,在各节点间执行共识;二是采用消除消耗较大的工作量证明(POW)机制的方法[7],由矿工为每个事务使用唯一的键,所有交易都要由矿工进行检查,并对采矿者进行授权,该文重点关注了通信过程中相关事务的公钥加密。
另外,物联网中众多的智能设备带来庞大的数据量[8],使得集中式数据中心(如云存储)无法负担相应的管理任务。为此,提出基于区块链的分布式云架构,在网络的边缘使用软件定义网络,对边缘节点进行控制,针对此架构提出了Proof-of-Service机制,在该机制中,对服务提供商使用区块链技术进行管理,服务请求者根据得到的服务对服务提供商进行支付和奖励,从而维持区块链网络中的共识,但是没有对该算法的性能进行分析和评价。
对于区块链在物联网系统中用户数据隐私保护方面[9],区块链技术虽然可以实现较为安全的数据存储,防止恶意节点篡改数据或伪造区块而获取利益[10],但是保证数据安全的共识机制对资源消耗较大,物联网系统中资源受限的设备并不能满足其要求。文献[11]针对区块链中的工作量证明机制的可靠性、安全性及其自身存在的潜在的威胁做了详细的分析。
使用区块链对个人信息进行分散管理的平台设计[12]中,采用了改进的共识算法——信誉评分证明算法。该算法根据节点所签署的合约数量进行动态可信评价。与POW算法不同,该算法不再关注节点所做的工作量,而是关注节点的可信评分。但该算法需要考虑节点所签署合约的真实性和有效性。
以上研究主要针对物联网节点资源受限的特点,从体系架构和共识算法两个方面,通过减少节点资源消耗或直接将资源受限节点排除在共识流程之外来解决相关问题。区块链系统本质上通过节点共同管理来维持系统的安全性。但已有方法在考虑节点资源受限时牺牲了一部分安全性、削弱了系统的去中心化特性。本文提出一种基于节点动态有效度的共识机制,兼顾系统的去中心化特性与减少资源消耗。
2 算法改进
2.1 现有共识算法分析
工作量证明机制POW通过节点计算难题来获得数据记录权限,这种机制会消耗节点大量的计算资源,造成资源浪费。
权益证明机制POS根据各节点拥有的币龄进行计算难题的难度分配:币龄越大,节点所需要解决难题的难度越低。这使得币龄越大的节点越容易得到数据记录权限,继而得到越多的奖励。该算法导致系统中节点间的贫富差距越来越大,最终,系统中可以得到数据记录权限的节点只集中在小部分拥有大量币龄的节点中。该算法使系统的去中心化特性遭到了破坏,与存储在第三方数据库中一样,一旦遭到恶意节点的攻击,系统的安全性将大大降低。
2.2 本文所提出的共识算法
针对现有共识算法存在的问题,提出基于节点有效度的共识算法。首先对算法中的说法做如下约定:
约定1 将获得数据记录权限节点在系统中的分布情况称为节点的分散性,分散性越好,越能维护系统的去中心化特性。
约定2 节点通信的有效性:一个节点在执行给定目标任务时,其行为如同预期,则称该节点的本次通信是有效的。
Input: data_for_deal、expect_value
Output:True or False
得到输出结果的伪代码如下:
def func_comm_valid(data_for_deal,expect_value):
result = data_deal_function(data_for_deal)
IF result == expect_value:
return True
ELSE:
return False
其中,data_for_deal表示该设备接收到的待处理数据,expect_value表示与待处理数据一同传入的预期结果。当该设备通过data_deal_function函数对data_for_deal处理后得到结果result,判断处理结果与预期结果是否相同,如果相同,则本次通信是有效的,返回True,否则返回False。
约定3 节点有效度:指系统中某一节点可以有效通信的性能。描述为:一段时间内某一节点有效通信次数与该节点在这段时间内总共的通信次数之比。有效度越高,节点越可信。
def func_valid_percent (times_total, times_valid):
valid_percent = times_valid / times_total
其中,valid_percent表示节点的有效度,times_valid表示有效通信的次数,times_total表示该节点总的通信次数。
在单位时间(约定的一段时间)内,节点之间进行信息通信,根据各节点在这段时间内的行为计算出这段时间内各节点的有效度并广播至整个系统网络。系统根据节点在近几个单位时间内的有效度评价节点的可信性:有效度合格,则节点可信,记为Trusted;有效度不合格,则节点定为可疑节点;对于可疑节点,调用func_wait()函数根据接下来的行为对其进行可信评估;对于可信节点,可信度越高的节点获得数据记录权限的机会越大。这样,选取具有数据记录权限节点的这一过程就是动态变化的,降低了因节点的某些固有特性而独占数据记录权限所带来的安全问题。算法伪代码如下:
WHILE
IF valid_percent >= valid_qualified:
node = Trusted
ELSE
IF func_wait(node) >= valid_qualified_value
node = Trusted
ELSE
node = Trobled
其中,valid_qualified表示有效度的合格值。
在该算法中,各节点的有效度成为影响节点获取数据记录权限的重要因素。因此,需要将系统中各节点的有效度排序列表进行记录,节点有效度排序成为节点是否能够被选为具有数据记录权限节点的有效凭证;同时,为保证节点有效度排序列表不被篡改,提出将节点有效度排序列表的哈希值记录在区块头的方法。改进后的区块头字段如表2所示,列表中的最后一个字段为新增加的字段。
在区块链与智能制造CPS系统相结合的过程中,节点之间的信息交互以节点的可信性为基础。当诚实节点变为恶意节点后,直接影响该节点的有效度。为了更直观地看到节点有效度的变化,及时发现恶意节点,提出将单位时间内的通信有效度作为研究对象的方法,每个单位时间内都重新记录相关数据。同时,保证节点的通信对象不能够局限在某个或某几个单一节点内,且不能是在某个单位时间内高频次数据通信的节点,最大限度防止恶意节点的攻击。
3 实验
本文以智能制造CPS系统中各节点有效度排序作为分配数据记录权限的指标。实验模拟了拥有4个节点的典型CPS场景,通过统计各节点获得数据记录权限的次数对典型共识算法进行验证,并与本文提出的共识算法作对比,以此来分析本文所提出的共识算法在数据记录权限分布的分散性方面的优势。
本文通过Python语言编写程序,模拟系统设备交互情况;另外,为模拟节点设备计算能力不同的情况,设置了4个数据处理能力不同的节点,从节点1到节点4依次减弱。
实验条件如下:
(1)各个节点之间进行随机不间断的UDP通信;
(2)进行4次时长为1小时模拟实验,在这1小时内,系统多次执行共识算法来选择具有数据记录权限的节点,统计各节点获得数据记录权限的次数;
(3)实验结果使用nodei和Hi分别表示4个节点和为期一个小时的实验周期,i为变量。将节点的有效度valid_percent缩写为vp,将节点在相应有效度下获得数据记录权限的次数记为vt。
3.1 传统共识算法的实验结果及分析
3.1.1 POW共识算法实验结果及分析
实验结果如表3所示。图1是该算法的实验结果可视化展示。
结果分析:数据处理能力强的节点1获取数据记录权限的次数最多,系统去中心化特性较差。
3.1.2 POS共识算法实验结果及分析
(1)设各节点的币龄初始值为0,实验结果如表4所示。图2是该算法的实验结果可视化展示。
结果分析:各节点初始币龄相同时,数据记录权限的分配受节点数据处理能力影响较大,依然集中在节点1,去中心化特性较差。
(2)各节点币龄初始值不同:设节点4币龄初始值为10,其他节点币龄初始值为0,实验结果如表5所示。图3是该算法的实验结果可视化展示。
结果分析:币龄初始值不同时,获得数据记录权限次数较多的是数据处理能力较强的节点1和币龄初始值较大的节点4。该算法中拥有币龄较多的节点占据了较大的优势,去中心化特性差。
3.2 本文所提共识算法的实验结果及分析
统计每个实验周期中各节点通信的有效度均值,以此进行数据记录权限的分配。表6是在节点有效度变化的情况下得到的各节点获取数据记录权限次数。
图4是该算法的实验结果可视化展示,其中,图4(a)展示了4个节点获得数据记录权限次数的变化,图4(b)展示了4次模拟实验中,节点有效度与节点获得数据记录权限次数的变化趋势之间的关系。
结果分析:从图4(a)中可以看出,获得数据记录权限的节点具有较好的分散性;从图4(b)可以看出,节点获得数据记录权限次数与节点有效度变化趋势基本一致,即节点是否可以获得数据权限主要与节点的有效度相关。
综上可得,本文所提出的共识算法使获得数据记录权限的节点随节点有效度变化呈动态分布,具有较好的分散性,较好的维护系统的去中心化特性。
通过节点有效度的不同分配节点的数据记录权限,可以使得系统中活跃且可信的节点获得更多的数据记录权限。这样,数据记录权限将不再集中分布于系统中小部分节点,提高了系统的安全性。
3.3 算法时间复杂度等特性分析
已有共识算法与本文提出的共识算法的复杂度与可扩展性对比如表7所示。
各共识算法的执行时间复杂度[13]如表7所示。本文所提出的算法主要时间消耗用来处理节点有效度的排序操作。由表7可以看出,本文的算法在时间复杂度方面占有一定的优势,此外,扩展性较好,且维护了系统的去中心化特性,保障了系统的安全。
4 结论
本文针对现有的共识算法在执行过程中消耗较大的计算资源、破坏了系统的去中心化特性的问题,提出基于节点有效度的共识机制。实验结果表明,改进后的共识算法使得活跃且可信的节点有更大的概率获得数据记录权限,且兼顾系统的去中心化特性与减少资源消耗问题。未来需进一步考虑节点行为评价方法及降低算法复杂性。
参考文献
[1] Cyber-Physical Systems.信息物理系统白皮书(2017)[R].中国信息物理系统发展论坛,2017.
[2] 李馥娟,王群,钱焕延.信息物理融合系统研究[J].电子技术应用,2018,44(9):24-28.
[3] LIU B,YU X L,CHEN S,et al.Blockchain based data integrity service framework for IoT data[C].2017 IEEE International Conference on Web Services(ICWS),Honolulu,HI,2017:468-475.
[4] 崔丽珍,徐锦涛,丁福星,等.基于物联网的农业大棚气象数据监测系统设计[J].电子技术应用,2018,44(12):73-76,80.
[5] Du Mingxiao,Ma Xiaofeng,Zhang Zhe,et al.A review on consensus algorithm of blockchain[C].2017 IEEE International Conference on Systems,Man,and Cybernetics(SMC),Banff,AB,2017:2567-2572.
[6] LI C,ZHANG L J.A blockchain based new secure multilayer network model for Internet of Things[C].2017 IEEE International Congress on Internet of Things(ICIOT),Honolulu,HI,2017:33-41.
[7] DORRI A,KANHERE S S,JURDAK R,et al.Blockchain for IoT security and privacy: the case study of a smart home[C].2017 IEEE International Conference on Pervasive Computing and Communications Workshops(PerCom Workshops),Kona,HI,2017:618-623.
[8] SHARMA P K,CHEN M Y,PARK J H.A software defined fog node based distributed blockchain cloud architecture for IoT[J].IEEE Access,2017,6:115-124.
[9] POLYZOS G C,FOTIOU N.Blockchain-assisted information distribution for the Internet of Things[C].2017 IEEE International Conference on Information Reuse and Integration(IRI),San Diego,CA,2017:75-78.
[10] HUH S,CHO S,KIM S.Managing IoT devices using blockchain platform[C].2017 19th International Conference on Advanced Communication Technology(ICACT),Bongpyeong,2017:464-467.
[11] CHRISTIDIS K,DEVETSIKIOTIS M.Blockchains and smart contracts for the Internet of Things[J].IEEE Access,2016,4:2292-2303.
[12] Fu Dongqi,Fang Liri.Blockchain-based trusted computing in social network[C].2016 2nd IEEE International Conference on Computer and Communications(ICCC),Chengdu,2016:19-22.
[13] 黄宇翔,梁志宏,黄苾,等.基于区块链的供应链可信数据管理[J].计算机系统应用,2018,27(12):9-17.
作者信息:
乔静炜,肖 红,李穗生,柳少峰,周玉彬,张 骋
(广东工业大学 计算机学院,广东 广州510006)