面向车联网异构节点的区块链高效一致性共识算法研究

2022-02-24 08:55陈友荣刘半藤任条娟
电子与信息学报 2022年1期
关键词:信用等级列表共识

陈友荣 章 阳 陈 浩 韩 蒙 刘半藤 任条娟*

①(浙江树人大学信息科技学院 杭州 310015)

②(常州大学计算机与人工智能学院 常州 213164)

③(浙江大学计算机科学与技术学院 杭州 310013)

④(浙江大学滨江研究院 杭州 310053)

1 引言

随着自动驾驶产业和车联网的发展,车联网节点产生大量且类型不同的数据。为了提高行车安全性和智能交通系统的服务质量,车联网节点需要进行数据共享,但是在数据共享方面车联网面临巨大的安全挑战。若车联网采用集中式架构,则基站存在被恶意入侵的风险,导致车联网节点数据被窃取,因此部分车联网节点选择不进行数据共享。车联网也可选择分散式架构来降低基站被入侵所带来的风险,但是其节点仍存在安全威胁,无法从根本上解决数据被窃取等问题。总之,上述挑战会对车联网的数据共享产生不利影响,甚至形成数据“孤岛”的困境,阻碍车联网的发展[1,2]。由于区块链技术中节点遵循同一记账交易规则并在一致性共识算法下达成一致意见,具有去中心化和匿名性等特点,因此可将区块链技术应用到车联网中,建立安全、可信赖和去中心化的智能交通生态系统,以解决车辆数据共享问题。区块链的核心要素是一致性共识算法,可直接决定其在应用领域上的交易吞吐量、交易时延等特性。目前主流一致性共识算法存在以下2个问题,较难直接应用到车联网环境:(1)车联网节点存在异构性,即节点性能异构和移动异构等,从而影响区块共识的安全和效率。但是目前主流一致性共识算法主要针对静态节点的区块共识,没有考虑节点的异构性。(2)由于车联网具有时效性需求,因此应在短时间完成区块一致性共识,要求具有较高的交易吞吐量和较低的交易时延。但目前主流一致性共识算法的效率较低,无法有效激发节点参与区块共识的积极性。

因此针对上述问题,本文提出面向车联网异构节点的区块链高效一致性共识算法(Efficient Consistency Consensus Algorithm, ECCA)。本论文的具体贡献如下:(1)ECCA算法结合节点的当前累积信用值、离线次数、离线时间、加入可信任列表次数和提供无效区块次数等信息,采用模糊C均值(Fuzzy C-Means, FCM)聚类实现异构节点的信用等级划分,可初步划分3类异构节点,从而快速检测恶意车联网节点;(2)针对由于车联网节点移动导致的当前区域内验证节点过少或过多问题,提出一种跨区下的节点身份变更机制,及时调整当前区域内节点的身份,从而保证移动环境下的区块共识;(3)提出改进的一致性共识算法。本算法通过节点身份与可通信列表,确定可信任节点列表。同时在完成交易集共识时,针对可信任列表里不同信用等级的节点赋予不同的投票权重,并选择信用等级较高的节点来完成区块的生成与验证,从而有效提高节点参与区块共识的积极性,提高交易吞吐量,降低交易时延。

2 相关工作

在区块链技术中,共识算法是决定区块链能否有效应用的关键。部分学者为应对垃圾邮件等问题,研究工作量证明(Proof Of Work, POW)共识算法,如文献[3]提出了基本POW算法。但POW算法的区块生成速度过于缓慢,同时计算任务不仅需要节点耗费大量的计算资源,而且除了预防入侵者外,没有更多实际或科学价值。因此文献[4]引入信用模型和反向传播(Back Propagation, BP)神经网络计算信任度,根据节点的信任度划分不同的搜索空间和产生区块。文献[5]设计代币和合作费,鼓励节点间相互合作,并且根据节点的协助程度给予一定的权利。但是文献[4,5]的改进范围主要局限于在区块生成时给予一定的权利来降低其解决计算问题的难度,没有考虑节点运动等异构特性所带来的通信时延等问题。针对POW算法的不足,部分学者研究权益证明(Proof Of Stake, POS)共识算法[6]。虽然POS算法在一定程度上避免了计算资源浪费问题并提高共识效率,但存在首富节点权力较大,甚至可直接影响共识结果等问题。同时,文献[7]提出了通过代表节点完成区块共识的委托权益证明(Delegated Proof Of Stake, DPOS)共识算法。文献[8]采用代币奖励激励节点参与投票,并加入包含节点行为状态和惩罚机制的检查点协议,实现恶意节点的排除。文献[9]采用投出反对票加快排除恶意节点,将节点信用分数与等级作为选举依据。但是文献[7—9]仍存在“富者更富”等问题,且存在无法调动节点投票积极性和及时剔除恶意节点等问题。针对“拜占庭将军问题”,部分学者研究实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识算法,如文献[10]提出通过节点的多阶段广播实现区块共识的PBFT算法。文献[11]采用分区策略划分多个主体子区域,并设置代理节点,提出局部与全局一致性验证算法。但是文献[10,11]没有考虑到网络中大量移动节点而导致代表节点设置不合理、身份存在被盗用等问题。为解决异步网络节点通讯时的高时延问题,部分学者研究瑞波协议共识算法(Ripple Protocol Consensus Algorithm,RPCA),如文献[12]简单分析了通过可信任节点列表达成区块共识的RPCA算法。文献[13]在建立可信任节点列表时,提出节点间连接状态的评价机制,从而应对节点间通信质量的变化对区块共识效率的影响。由于RPCA算法通过可信任节点列表完成区块共识,因此其效率远远高于POW等算法,可满足短时间内的交易响应需求,提高交易吞吐率,但是该算法主要针对静态节点的一致性共识,较少考虑到车联网异构节点,仍不适用于车联网环境。

3 算法原理

如图1所示,车联网主要由车联网节点(车载智能终端)、基站和云服务平台组成。根据基站的蜂窝部署规则,将车联网网络划分为若干个蜂窝区域,且每个蜂窝区域中含有固定数量的基站。其中,车联网节点可在区域内和区域间移动。由于节点通信范围存在一定限制,无法与其他所有车联网节点进行通信,因此通过基站☆进行车联网节点间的通信中继。根据车联网节点的区块共识行为,将其划分为以下3种类型:(1)□为验证节点,其表示信用等级为A和B的车联网节点;(2)×为一般节点,其表示信用等级为C和新加入的车联网节点;(3)△为恶意节点,其表示信用等级为D的车联网节点。ECCA算法的原理如图2所示。首先区域内的节点结合奖惩机制与信用值模型计算其累积信用值,并根据其具体行为,进行信用等级划分。其次,采用跨区下的节点身份变更机制,及时调整车联网节点身份。最后,车联网节点通过一致性共识算法确定信任列表,完成交易集共识和区块验证共识,从而达成区块共识。但是ECCA算法仍需要解决以下3个问题:一是如何结合节点的信用值和具体情况等信息,实现信用等级的划分与共识权限给予;二是如何考虑跨区下的节点身份变更问题,保证区块共识效率;三是如何改进RPCA算法的相关协议,提高共识效率。这3个问题的具体解决如下。

图1 网络整体结构示意图

图2 ECCA算法原理

3.1 信用等级机制

3.1.1 奖惩机制

3.1.2 信用值模型

在完成节点累积得分的统计后,需要一种信用值模型来调动验证节点参与区块共识的积极性和作为节点等级划分与权限给予的依据,即

3.1.3 信用等级划分

考虑到需要结合节点的具体行为来实现节点信用等级划分,因此由信用等级为A和B的车联网节点所组成的验证节点在各自区域内采集具体包括当前累积信用值、离线次数、离线时间、加入可信任列表次数和提供无效区块次数等评估要素[14—16],并及时广播各自所采集的信息。如果区域内的验证节点成功采集到当前区域内所有节点的评估要素,则通过基站将自身区域内的评估要素广播给自身区域内的验证节点与周围区域的验证节点。若区域内验证节点接收到周围b个区域的评估要素信息与自身区域内的评估要素,则该验证节点执行节点信用等级划分,并将自身区域内的节点信用等级划分结果通过基站广播给区域内的其他节点。定义节点的4个信用等级,即

其中,CR 表示信用等级集合,且根据文献[17,18]的取值规则,选择各等级对应的数值,即为A=80,B=70,C=60,D=50。相较于K-means聚类算法[19]的硬性划分,FCM聚类算法[20]通过计算每个样本点对所有簇中心的隶属度,实现样本点的柔性划分,因此验证节点通过该方法进行合理的信用等级划分,其具体实现步骤如下:

步骤1 当前迭代次数NI=0,验证节点随机

在完成节点的等级划分后,验证节点给予其相应的权利。若节点的信用等级为A,则验证节点给予其投票权,区块生成权和区块验证权。若节点的信用等级为B,则验证节点给予其投票权和区块验证权。若节点信用等级为C,则验证节点给予其投票权。若节点信用等级为D,则验证节点不给予其任何权利。当完成上述权利给予后,验证节点将清除节点累积得分与累积信用值,重新开始累积得分的计算。

3.2 跨区下的节点身份变更机制

由于车联网节点的移动会导致部分验证节点从一个区域移动到另一个区域,发生跨区现象,可能导致当前时刻某些区域内验证节点数量出现过少或过多,从而影响区块共识效率。信用等级划分需要经过一定时间周期后,才能实现节点身份转换,无法在短时间内有效解决验证节点跨区所带来的问题,因此提出跨区下一般节点和验证节点之间的身份变更机制,根据节点在区块共识过程中的具体行为,及时调整当前区域内的节点身份,从而保证车联网环境下的区块共识效率。具体变更机制如下:

(1) 如果当前区域验证节点的数量过少,即满足φ <ϑ1时,φ表示当前区域的验证节点数量,ϑ1表示当前区域内的验证节点数量下限阈值,则会导致共识流程无法顺利完成,干扰区块正常上链,因此需要将一般节点转换为验证节点。即首先当前区域内每个节点尝试与周围节点建立通信测试。若成功建立通信过程,则将成功通信的节点添加到可通信列表中,并可根据实时通信情况及时更新该列表。若一般节点位于该节点的可通信列表且两者通信次数大于阈值ε,则一般节点成功获得该节点的认可。根据上述操作,区域内随机选择的一个验证节点能够获知当前区域内所有节点认可的一般节点信息,计算每个一般节点的被认可数量。其次,该验证节点根据该区域内一般节点的被认可数量进行降序排序,将前p个一般节点加入到预备验证节点集合。计算预备验证节点集合中的节点停留时间,即该区域内成功上链的区块数量与单个区块成功上链时间的乘积,并进行降序排序,将排序结果的前ϑ1-φ个一般节点转化为验证节点。最后,该验证节点将一般节点的身份变更结果及时广播,从而增加区域内验证节点的数量。

(2) 如果当前区域验证节点的数量过多,即满足φ >ϑ2时,ϑ2表示当前区域内的验证节点数量上限阈值,则会导致共识流程复杂,直接影响区块共识效率,因此需要将验证节点转换为一般节点。当验证节点在当前区域内的停留时间短时,可体现其行为特点的评估要素数据量较少,导致网络无法有效区分其是否为冒充验证节点进行攻击的恶意节点。如果当前区域验证节点的数量过多,可转换一部分该类验证节点为一般节点,从而降低验证节点中存在恶意节点的风险,因此选择验证节点在区域内的停留时间作为其转换为一般节点的转换条件。即首先区域内随机选择一个验证节点,计算该区域内所有验证节点的停留时间(该区域内成功上链的区块数量与单个区块成功上链时间的乘积)。然后,该验证节点根据区域内验证节点的停留时间进行降序排序,并将排序结果的第ϑ2个验证节点之后的验证节点转换为一般节点。最后,该验证节点将节点身份变更结果及时广播,从而减少区域内验证节点数量。

3.3 改进的一致性共识算法

考虑到车联网的时效性需求和节点异构,在RPCA算法的基础上,改进可信任节点列表、交易集共识和区块验证共识等方法,从而提出一种改进的一致性共识算法。该算法由区域自身共识算法与多区域共识算法两部分组成。当该区域内车联网节点发现交易信息只关系到单个区域内部时,则采用区域自身共识算法达成共识,并及时将共识结果上传至自身区域的从链,实现数据的快速共识。当车联网节点发现交通事故、拥堵状态等交易信息关系到多个区域时,则采用多区域共识算法达成共识,并上链至全局主链。同时主链与从链之间通过验证节点的多重签名实现双向锚定,保证区块的不可篡改性。上述两种共识算法的选择条件由交易事务所涉及的范围来决定,且仅是参与区块共识的节点数量不同,可信任节点列表,交易集共识、区块共识等方法均相同。

3.3.1 可信任节点列表改进

在前面的节点信用等级机制和身份变更机制的基础上,改进RPCA算法中的可信任节点列表,即验证节点首先在其可通信列表中排除一般节点和恶意节点,然后计算其可通信列表中剩余节点分数,最后根据分数从高到低选取剩余节点加入可信任节点列表。具体公式为

其中,sci,j表示第i个验证节点的可通信列表中第j个节点的得分情况,CRi,j和Ti,j分别表示第i个验证节点的可通信列表中第j个节点的信用等级和节点剩余时间,且节点剩余时间采用倒计时制,ωi,j表示第i个验证节点的可通信列表完成第j个节点的添加时所经历过的中间传递损失因子。如果出现多个节点的得分情况相同,则在其中随机选择一个加入可信任列表。为了全面应对节点异构特性带来的共识干扰问题,将可通信列表中未能成功加入可信任列表的其他验证节点,组成备用可信任节点群。当可信任列表中的节点出现意外情况时,从中随机选择节点来实现节点的切换。

3.3.2 交易集共识改进

在RPCA算法的交易集共识不仅需要经过验证节点的多轮投票,而且在最终达成共识的交易集中每笔交易都至少获得β1比例的验证节点认可。因此需要在保证共识安全性的前提下,改进验证节点的投票权,允许其在投出赞同票时同样也可以投出反对票,从而提高共识效果。同时考虑不同信任等级节点所代表的重要性不同,通过式(10),采用不同的权重统计票数,获得投票结果。最后验证节点根据每笔交易按投票结果从高到低进行排序,并选择前ϖ个交易作为交易集共识的最终结果

3.3.3 区块验证共识改进

ECCA算法改进区块验证共识,即随机选择一个信用等级为A的验证节点负责区块的生成。该方法不仅避免存在一般节点和恶意节点构建区块而导致高交易时延的风险,而且在构建区块的效率上满足车联网需求。具体内容为:

(1) 从满足信任等级CR=A的验证节点中随机选择节点负责区块的生成。

(2) 负责区块生成的验证节点发送其计算所得的哈希值到其他的验证节点,统一收集反馈信息。一旦反馈信息中认可比例达到一定阈值β2,则表明该区块验证共识达成,将区块写入到链中。

4 算法设计

ECCA算法将区块链技术有效运用在车联网环境中,其具体实现流程如表1所示。

表1 面向车联网异构节点的区块链高效一致性共识算法(ECCA)算法流程

5 实验分析

5.1 实验场景和参数设置

为了综合评价ECCA算法的性能,在intel i5-4210H CPU 2.90 GHz, 8 G内存和GTX 960 M显卡的试验环境上,使用Golang语言实现一个由车联网节点和基站组成的车联网数据共享原型系统。在该原型系统中,假设车联网节点可通过基站中继的方式与其他节点进行数据交换,并令每个车联网节点的运动速度为 sp,在固定时间间隔Vlas后,每个车联网节点按式(11)更新当前的位置

5.2 实验结果分析

5.2.1 节点运动与信用值模型分析

考虑9×9 km的车联网覆盖区域,均匀划分为9个区域大小均为3 km×3 km的网格,并以车联网中恶意节点的比例为10%为例,说明算法的有效性。其中,在每个区域内随机设置1个基站和多个信用等级为A或B的运动节点作为验证节点,随机设置信用等级为C的运动节点和新生的运动节点作为一般节点,随机设置信用等级为D的运动节点作为恶意节点。如图3所示,由9个基站,135个验证节点,38个一般节点和18个恶意节点组成的200个节点随机分布在9个网格中。根据上述仿真场景,在仿真过程中,DPOS算法中的恶意节点通过离线方式累积币龄,在后期重新上线对当前区块共识进行攻击。RPCA算法中的恶意节点通过加入验证节点的可信任列表的方式干扰交易集共识,从而实现对区块共识的攻击。在CDBFT和ECCA算法中的恶意节点选择在前期累积信用值,获得更多的权利,并在后期对共识过程发动攻击。

图3 200个节点的初始分布图

在原型系统的基础上,分析正常节点与恶意节点的信用值趋势图。如图4所示,ECCA算法提出在共识成功情况下的奖励机制,随着共识轮次的增加,正常节点的累积得分逐渐增加,最终导致累积信用值的上升。由于ECCA算法需要保证节点多次参与区块共识的积极性和防止因信用值过大而导致节点权力过于中心化,因此在前期逐渐提高正常节点信用值的上升速度,且在后期逐渐放缓正常节点信用值的上升速度。同时ECCA算法结合恶意节点的行为,提出在共识失败情况下的惩罚机制,恶意节点随着共识轮次的增加,累积得分逐渐减少,最终导致累积信用值的下降。由于ECCA算法为了快速区分恶意节点与正常节点和考虑到正常节点随机选择等因素,因此在前期逐渐提高恶意节点信用值的下降速度,且在后期逐渐放缓恶意节点信用值的下降速度。

图4 节点信用值趋势图

5.2.2 参数选择分析

选择信用值模型参数t1为200, 400, 600, 800,1000, 1200,参数t2为100, 200, 300, 400, 500,节点数量为250和其他参数,分析信用值模型参数对交易吞吐量的影响。如图5所示,模型参数t2影响信用值模型中数值的变化速率。当模型参数t2在100~300范围内不断增加时,该模型在应对恶意节点攻击时,能以合理的变化速率完成节点的累积信用值,因此交易吞吐量出现上升趋势。而当模型参数t2在300~500范围内不断增加时,累积信用值的变化速率下降,降低了正常节点参与多轮区块的积极性,因此交易吞吐量出现下降趋势。而模型参数t1影响信用值模型中数值的最大值与最小值。当模型参数t1在200~600范围内不断增加时,信用值模型的最大值与最小值差距过小,正常节点与恶意节点的信用值区别程度不明显,导致信任等级划分时耗时偏高,因此交易吞吐量出现下降趋势。而当模型参数t1在600~1000范围内不断增加时,信用值模型的上下限逐渐扩大,正常节点与恶意节点的信用值区别程度不断变大,提高了信任等级划分效率,因此交易吞吐量出现上升趋势。但当模型参数t1达到1200时,信用值模型的区间过大,从而影响节点参与区块共识的积极性,其交易吞吐量出现下降。总之,通过参数分析,ECCA算法选择t1为1000和t2为300,可较好的区分正常节点和恶意节点。

图5 信用值模型参数对交易吞吐量的影响

考虑ζ1+ζ2+ζ3=1,选择节点投票权重ζ1为0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8,节点投票权重ζ2为0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8,节点数量为250和其他参数,分析节点投票权重对交易吞吐量的影响。如图6所示,当节点投票权重ζ1取较高值,其他两个权重取较低值时,交易吞吐量较大。这是因为:节点投票权重ζ1主要是影响信用等级为A的节点对交易集共识的投票结果。当节点投票权重ζ1在0.1~0.7范围内不断增加时,信用等级为A的节点对当前交易集共识投票拥有更高的权重,使得可靠性较高的节点能够影响投票结果,保证交易集的共识效率,因此交易吞吐量出现上升趋势。当节点投票权重ζ1为0.8时,交易集共识容易被信用等级为A的节点所控制,降低其他信用等级节点参与投票的积极性,因此交易吞吐量出现下降趋势。当节点投票参数ζ2在0.8~0.1范围内不断下降时,信用等级为B的节点投票权重逐渐下降,导致其他信用等级的节点投票权重上升,同时信用等级为C的节点中的恶意节点容易干扰交易集共识的顺利执行,其交易吞吐量出现下降趋势。因此在后续实验中,选择节点投票权重ζ1为0.7,ζ2为0.2和ζ3为0.1。

图6 节点投票权重对交易吞吐量的影响

5.2.3 算法性能分析

选择节点数量为200, 300, 400, 500, 600, 700,800和其他参数,分析节点数量增加对交易吞吐量的影响。如图7所示,随着节点数量的上升,增加了部分区块共识的时间,导致POS, DPOS, CDBFT和ECCA算法的交易吞吐量均呈下降趋势。但ECCA算法的交易吞吐量明显高于其他共识算法。这是因为:ECCA算法提出跨区下的节点身份变更机制与备用可信任节点群,及时调整节点的身份,避免因节点离线或跨区行为对区块的共识效率产生影响。且在应对恶意节点的攻击方面,ECCA算法采用信用等级机制限制其共识权利,并随机选择高信用等级验证节点完成区块验证共识,进一步降低恶意节点影响共识的可能性。DPOS和CDBFT算法虽然通过选择代表节点的方式完成区块共识,但是没有考虑到车联网中节点离线问题,一旦代表节点在网络中离线,则需要重新发起投票。RPCA算法在共识过程中需要通过可信任列表来完成交易集共识与区块验证共识,且恶意节点的攻击容易影响其共识。因此ECCA算法的交易吞吐量要始终优于DPOS,CDBFT和RPCA算法的交易吞吐量。

图7 节点数量对交易吞吐量的影响

选择节点数量为200, 300, 400, 500, 600, 700,800和其他参数,分析节点数量对平均交易时延的影响。如图8所示,随着节点数量的上升,共识算法被攻击的次数增加,导致POS, DPOS, CDBFT和ECCA算法的平均交易时延均呈上升趋势。这是因为:ECCA算法首先通过信用等级机制,综合考虑节点的性能,实现权利的动态分配,并在验证节点生成可信列表时考虑节点在通信过程中传递损失因子、信用等级等关键参数,从而将性能良好且信用等级可靠的节点加入到可信任列表中,最终将平均交易时延维持在较低水平。CDBFT与DPOS算法仅仅通过币龄或信誉值来选择构建区块节点,无法综合评价节点的性能。而RPCA算法的验证节点选择主要通过提前设置的方式,没有考虑到外界环境问题,一旦验证节点的性能受到影响,无法自动进行调整。因此ECCA算法的平均交易时延优于DPOS, CDBFT和RPCA算法的平均交易时延。

图8 节点数量对平均交易时延的影响

选择节点数量为200, 300, 400, 500, 600, 700,800,和其他参数,分析节点数量对平均节点通信开销的影响。如图9所示,随着节点数量的上升,在交易广播和区块验证等阶段增加了节点间的通信数次,导致DPOS, CDBFT和ECCA算法的平均通信开销均呈上升趋势,但ECCA算法的平均节点通信开销低于其他共识算法。这是因为:ECCA算法不仅根据车联网事务所涉及范围选择不同的区域共识机制,减少参与区块共识的节点数量,从而保证区块的共识效率,而且在交易集共识过程中设置反对票与投票系数,避免恶意节点所提交的交易集干扰共识,最终保证区块共识效率。CDBFT与DPOS算法虽然通过代表节点来完成区块共识,在一定程度上保证区块共识安全性,但在代表节点的共识上需要经过多个阶段。RPCA算法每个验证节点需要广播自身交易集信息。因此ECCA算法的平均节点通信开销远优于DPOS, CDBFT和RPCA算法的平均节点通信开销。

图9 节点数量对平均节点通信开销的影响

选择节点数量为200, 300, 400, 500, 600, 700,800,恶意节点比例为10%, 20%, 30%, 40%和其他参数,分析恶意节点数量对ECCA算法查准率的影响。如图10所示,ECCA算法的查准率均维持在一个较高值,且随着节点数量与恶意节点比例的增加,ECCA算法的查准率略微增加。这是因为:ECCA算法根据节点的共识行为信息,采用FCM聚类算法进行等级划分,可有效检测出恶意节点。随着共识节点数量的增加,导致ECCA算法可获得更多正常节点的加入可信任列表次数、活跃时间、离线次数、离线时间和延时时间等共识行为信息,正常节点和恶意节点的行为特征数据更明显,因此其查准率略微增加。同样随着恶意节点比例的增加,更多的恶意节点表现出共识攻击行为特征,使得ECCA算法在进行信用等级划分能有效发现恶意节点,使其查准率略微增加。

图10 恶意节点比例对查准率的影响

选择节点数量为200, 300, 400, 500, 600, 700,800,恶意节点比例为10%, 20%, 30%, 40%和其他参数,分析恶意节点数量对ECCA算法查全率的影响。如图11所示,随着共识节点数量的增加,ECCA算法的查全率上升,随着恶意节点比例的增加,ECCA算法的查全率略微下降,但是ECCA算法的查全率均维持在一个较高的值。这是因为:随着共识节点数量的增加,ECCA算法的行为奖惩机制与信用值模型能够全面衡量节点的共识行为,突出网络内正常节点与恶意节点的差异性,使得验证节点在进行节点的信用等级划分时更容易区分出恶意节点,导致查全率随之上升。随着恶意节点比例的逐渐增加,由于ECCA算法通过随机选择高信用等级的验证节点完成区块验证共识,导致部分恶意节点未获得进行攻击的机会,使得在共识过程中其表现与正常节点无明显差异,且只能将其划分为一般节点,因此算法的查全率会略微下降。

6 结束语

本文提出一种面向车联网异构节点的区块链高效一致性共识算法(ECCA)。首先,该算法将城市车联网划分为多个区域,并将车联网节点分为验证节点、一般节点和恶意节点。根据节点的参与区块共识情况与行为信息,提出信用等级机制,包括奖惩机制与信用值模型和信用等级划分的聚类方法。其次,提出跨区下的节点身份变更机制,并提出一种改进的一致性共识算法,包括可信任列表改进、交易集共识改进和区块验证共识改进。最后分析信用值模型,参数选择,查全率和查准率,比较DPOS, CDBFT, RPCA和ECCA算法的交易吞吐量、平均交易时延和平均节点通信开销。仿真结果表明:ECCA算法能提高车联网节点参与区块共识的积极性、降低一般节点和恶意节点对区块共识的影响,从而提高交易吞吐量、平均交易时延和平均节点通信开销,比DPOS, RPCA和CDBFT算法更优。但是ECCA算法没有考虑到车联网节点间的区块共识收益问题,因此下一阶段目标研究适用于车联网的区块收益分配和积分兑换方案,进一步提高节点参与区块共识的积极性。

猜你喜欢
信用等级列表共识
共识 共进 共情 共学:让“沟通之花”绽放
学习运用列表法
论思想共识凝聚的文化向度
扩列吧
商量出共识
武器装备科研生产单位信用评价工作取得阶段性成果
我国企业信用政策存在的问题及对策研究
列表画树状图各有所长
“慢养孩子”应成社会普遍共识
2011年《小说月刊》转载列表