APP下载

基于改进投票证明共识协议的车联网系统

2021-01-21陈锦宇刘兆伟

计算机应用 2021年1期
关键词:制造者生产者管家

陈锦宇,刘兆伟

(烟台大学计算机与控制工程学院,山东烟台 264005)

0 引言

物联网(Internet of Things,IoT)是一个能够将各类信息传感设备与互联网结合起来的巨大网络,其借助互联网将现实世界中具有不同功能的实体串联起来。物联网将现实世界数据化,使得人、机、物能够在任何时间任何地点进行数据交互,因而具有深远的应用前景。车联网(Internet of Vehicles,IoV)是物联网的重要子类,用于智能连接车辆[1],其本质是一个由车辆位置、速度、行进路线及周边交通状况等信息构成的交互网络。车联网能够根据收集到的信息做出相应的决策,从而将车辆引导到正确的位置或路线上。除此之外,车联网还具有以下技术优势:可实时检测车辆状态并向车主汇报,从而大大降低由于驾驶故障车辆而造成的安全隐患;可在驾驶过程中为车主提供实时的导航及道路状况提示,在提高行进效率的同时降低车祸的发生率;也可在车主因意外陷入险境时,迅速地发出求救信息并提供事故发生的具体位置,这样车主就可以在尽可能短的时间内得到救援。

然而在车联网系统的设计与实现中也存在许多挑战。例如,恶意攻击者可以通过广播虚假信息的方式来误导其他车辆[2];也可以通过劫持车联网节点来阻碍消息的传递,进而影响车联网的实际运转。除了恶意攻击者引发的种种安全挑战外,如何处理好车辆隐私与安全之间的矛盾也成为了车联网在实现过程中的另一大难点。作为一门新兴技术,区块链在解决车联网的这些难题上有着显著的优势。区块链本质上是一门数据库技术,是一个去中心化的分布式账本数据库。通过使用区块链可以对设备进行自动化管理,也可以进一步提高物联网设备的数据同步管理效率[3]。

文献[4]提出了一种基于表决机制和联盟区块链的共识协议。但是,该协议在角色分工上并不能与车联网的参与者们相匹配,同时缺乏完善的奖惩机制以应对可能存在的恶意攻击者。文献[2]提出了一种基于区块链的车联网系统,但其使用的共识协议是相对原始的工作量证明(Proof of Work,PoW)协议。PoW 是一种将算力作为主要竞争手段来获取区块生成权的共识协议。该协议在生成区块这一环节会消耗大量的时间和资源,因此会给车联网带来额外的负担。

为了解决这些问题,本文提出了一个基于区块链技术的车联网系统,从而尝试将区块链与车联网相结合。本文设计了一个改进后的投票证明(Proof of Vote,PoV)共识协议,这种改进后的PoV 协议更加贴合车联网的实际需求,能够更为高效准确地达成共识。该协议会对车联网的参与者进行相应的身份划分,使其能够分工明确地完成车联网的各项功能。最后,本文设计的惩罚机制也可以有效地遏制恶意攻击者的行为并降低其可能造成的损失。

1 相关研究

1.1 车联网

车联网通过安装在车辆上的各类电子设备来实时获取有关车辆的各类信息,这些信息包括车辆的状态、速度、位置和路线等。在获取到这些信息后,车联网可以对所有车辆的运行状态进行有效的监管,同时提供综合服务[5]。车联网不仅仅是为车辆与车辆(Vehicles to Vehicles,V2V)提供信息交互渠道的网络,它还可以向车辆与行人(Vehicles to Person,V2P)、车辆与道路(Vehicles to Road,V2R)、车辆与路旁基础设施(Vehicles to Infrastructure,V2I)、车辆与网络(Vehicles to Network,V2N)等一系列组合提供服务。确切地说,车联网不只是简单地将车辆与车辆进行连接,它还将车辆与行人、道路等连接到一起。车联网的示意图如图1所示。

图1 车联网示例Fig.1 IoV example

基于所使用的各项技术,车联网具有以下优势:1)凭借车联网技术,车辆的当前状态信息会被实时收集、汇总和分析,这有助于车联网更快地诊断出车辆存在的故障问题,从而减少安全隐患;2)车联网系统可以根据在各个区域中收集到的信息对区域的整体交通状况做出判断,这种判断会借助导航系统反馈给行驶在该区域中的所有车辆,以便这些车辆合理地规划行进路线,从而提高出行效率;3)当前方路段出现较危险的道路状况(比如车祸、道路坍塌等)时,车联网可以及时通知即将驶过该路段的所有车辆以避免事故发生;4)对于已经陷入交通事故中的车辆来说,车联网会在事故发生时立即采取相应的反馈措施,这类反馈措施包括向车主预先设置的紧急联系人发出求救报警信息等,因此车主可以在尽可能短的时间内获得救援。

车联网技术作为物联网中具有广阔前景和实际应用价值的一个成熟板块,现已纳入国家“十三五”重大建设项目库中。管理者借助平台可以实时获取车辆分布、用户画像以及车辆轨迹等信息,从而掌握城市道路的基本交通状况,进而在城市规划上采取相应的举措。

1.2 区块链

区块链这一概念最初由“中本聪”于2008 年的论文《Bitcoin:A Peer-to-Peer Electronic Cash System》[6]7中提出。经过十余年的发展,由区块链衍生出的一系列技术、概念及产品迅速进入人们的视野,区块链所代表的“去中心化”“不可篡改”等特点也日益受到人们的追捧。区块链技术本质上是一种特殊的数据库技术。每个区块就像是一个硬盘,将信息保存下来后通过密码学技术进行加密,这样被保存的信息就无法被篡改。而区块链的本质则是一个去中心化的分布式数据库,分布式数据库的特点在于它的记录方式并非只是将账本数据简单地存储在各个节点,而是令所有节点同步的复制账本数据并将其共享。也就是说,区块链这一分布式数据库会记录所有曾经发生并经过系统一致认可的交易。

相较于分布式,区块链最具颠覆性的特点在于去中心化。这使得应用区块链技术的产品不再依赖中心化的代理方式,而是实现了一种点对点的直接交互。高效、大规模和去中心化的信息交互方式因此成为了现实。这些优点使得区块链成为当前社会的一大热点,越来越多的行业开始尝试将区块链与自己行业的技术相结合。

从结构上来说,区块链是一种按照时间顺序将数据区块顺序相连的链式数据结构。每个数据区块从结构上分成两部分:区块头与区块体。区块头共80 个字节,通常分成6 个部分:版本号(4 B)、时间戳(4 B)、前区块哈希值(32 B)、Merkle树根节点(32 B)、难度值(4 B)以及Nonce 值(4 B)。区块链的基本结构如图2所示。

图2 区块链结构Fig.2 Blockchain structure

1.3 PoV协议

PoV 协议的全称是投票证明。这种共识协议为区块链的网络参与者设置不同的安全身份,PoV 共识协议可以在不依赖第三方中介或公众意识的情况下,根据机构在联盟中的投票结果对区块的提交和验证做出决定[4]。通过与文献[3]的研究相对比,可以证实PoV有更加出色的工作效率。

PoV协议的具体机制是将参与者划分为4种不同的身份:专家、管家、管家候选者以及普通用户。共识结果则在身份的交互下通过投票来决定。4 种身份的分工如下,其系统结构设计如图3所示。

图3 PoV结构Fig.3 PoV structure

1)专家。专家的主要职责是维护整个联盟区块链。专家们有权推荐指定的用户成为管家候选人,并在随后的管家选举中行使投票权;同时,专家还会对当前工作的管家进行评估,并根据评估结果在下一轮投票选举中决定自己的投票对象;此外,专家还负责核实区块内容,当超过半数的专家对区块中的信息表示认可时,该区块会被标记为有效区块。

2)管家。管家只负责生成区块,并不需要通过竞争来获取区块的生成权。管家们通过收集消息池中的信息来制作区块,但区块是否有效由专家决定,因此,管家们不需要为了抢占区块的生成权而浪费计算资源和时间。管家只能从管家候选者中诞生。

3)管家候选者。一个节点想要成为管家候选者的话必须通过以下3 个步骤:首先,该节点必须在系统中注册用户身份;其次,该节点需要向系统申请成为管家候选者,提交申请的用户必须获得至少一名专家的支持;最后,该节点需要上缴一定数额的押金作为担保。管家会在任期结束后卸任并以管家候选者的身份并加入下一轮选举。

4)普通用户。普通用户不参与区块的生成过程,仅负责消息的生成和转发。

此外,PoV共识协议中的这4种身份在满足一定条件的前提下可以进行相互转换,具体的转换过程如图4 所示,这在一定程度上提高了整个系统的灵活性。凭借明确的分工合作,PoV 共识协议具有良好的可靠性和优异的共识效率,因此可以在不消耗大量时间及计算资源的前提下达成共识。

图4 PoV中的身份转换Fig.4 Role change in PoV

2 改进系统的结构设计

在PoV 共识协议中,网络参与者按照各自的身份进行不同的活动,在这些活动的共同影响下,参与者会对某一观点达成共识。此外,在满足一定条件的情况下,参与者的身份可以发生转换,这种身份转换的主要目的是让参与者能够担任更适合自己的角色,从而提高共识效率及结构稳定性。由于车联网的主要用户是处于不断移动中的车辆,因此车联网中的参与者会具备更高的流动性,而这种流动性会导致车联网中的参与者们不断地发生更新变动,因而传统PoV 共识协议中对于身份的转换操作很难应用在车联网中。除此之外,在已知车联网参与者数量可能极为庞大的现实情况下,如果继续允许这些参与者们转换身份,必然会给整个车联网体系带来巨大的额外负荷。综上所述,本文最终选择对传统PoV 共识协议中关于身份转换的部分进行优化,使其能更好地与车联网相结合。

PoV 共识协议将参与者分为专家、管家、管家候选者以及普通用户4 个部分,其中普通用户负责消息的发送、接收及传递,管家负责将普通用户发送的多条消息进行归纳整理后转交给专家,而专家则负责对这些消息进行检查和判断。由于管家的人数受到限制[4],且PoV 共识协议中的参与者存在身份不固定这一特点,因此,为了对申请成为管家的用户们进行筛选,PoV 设立了管家候选者这一身份,管家候选者身份的获得必须由一名专家进行担保,并且需要交付一笔额外的押金来增加犯错成本。然而,结合上文中对于车联网并不需要身份转换的论证,管家候选者也成为了PoV 与车联网相结合过程中的冗余部分。为了更好地服务于车联网,本文根据车联网的实际需求对PoV 共识协议进行了改进。改进后的PoV 共识协议重新对车联网内的节点赋予不同的功能,其系统结构设计如图5所示。

图5 改进的PoV结构Fig.5 Improved PoV structure

图5 主要由生产者、制造者和审核者组成,其具体分工如下。

生产者 生产者是信息产生的源头,它们负责生成、接收和传递消息。生产者由连接在车联网中的车辆及路边的基础设备组成,它们本身不会参与到区块制作的过程。生产者会实时收集周围车辆及环境的数据,并在签名后将这些消息发送出去。生产者总体上对应传统PoV 体系中的普通用户身份,但考虑到车联网在现实生活中可能会遇到的一些实际问题,又对其做出了一定的改进。为了能更加及时地处理行驶过程中遭遇的紧急事件,生产者除了周期性地发送常规信息外,还可以在特别标注后发送紧急消息,这种紧急消息将在后续的流程中被优先接收和处理,从而进一步保障了车联网用户的安全。

制造者 制造者只负责生成区块。它们类似于传统虚拟货币(例如比特币)中的矿工,但是车联网并不会限制制造者们生成区块的速度,因此它们无需消耗额外的计算资源和时间来抢夺区块的生成权。制造者们随机地收集生产者们发送的各类信息并将它们打包成区块,随后制造者会通过签名的方式在自己的区块上进行署名,区块最终是否有效将由审核者来进行判断。在区块的制作过程中,带有生产者标记的紧急消息将会被制造者们优先收集并提交给审核者。

审核者 审核者由专业团队组成,这些专业团队一般由车联网所在地的交通部门负责,审核者主要负责判断区块是否有效以及处理车联网内的恶意攻击者或故障节点。车联网中生成的每个区块都需要发送给审核者们进行投票表决,审核者们会根据区块内信息的真实性做出相应判断。区块只有获得半数以上的审核者认可才会被认为是有效的,有效的区块将会被上传至区块链中并在生产者中广泛传播。此外,针对车联网中可能存在的恶意攻击者及故障节点,审核者也会进行及时处理。

综上所述,本系统的结构设计如图6所示。

图6 整体系统的结构设计Fig.6 Structure design of overall system

从图6 中可以直观地发现,以车辆1、车辆2、路测单元(Road Side Unit,RSU)等为代表的生产者不停地收集着自身及周边的各项消息及数据,并将这些收集到的消息全部上传至制造者处。制造者在接收到生产者发送的消息后将其打包至区块,随后发送到审核者处接收校验,审核者会对制造者提交的区块进行校验并给出相应的反馈。

3 算法设计

3.1 消息生产

生产者负责消息的生成,生产者主要由行驶在车联网中的车辆及道路周边的基础设备(监控设备、测速仪等)组成。生产者主要以两种方式来生成消息:

1)生产者会周期性地汇报自身的状况及周边的路况,例如当前车辆的各项基础信息(油量、车速及故障问题等)或所驾驶路段的基本信息(天气情况、周围的车辆数目等)。

2)当遇到紧急情况时,例如车辆突发故障或前方路段出现的事故等,生产者会立即对当前情况进行汇报。在消息生成后,生产者会对自身生成的消息进行签名以确定消息来源。

如果当前生成的消息的方式属于第2 种,那么生产者会在签名后追加一个固定值,被标注过的紧急消息会被制造者们优先纳入当前正在制作的区块并交由审核者判断。

为了保证消息的及时性,生产者在生成消息的时候应当加入当前的具体时间。这样,签名后的消息结构应为以下格式:

其中:message为具体的信息内容,time为生成消息时的具体时间,pk为生产者的公钥,k负责判定当前消息是否紧急。

3.2 区块制作

制造者负责区块的制作,制造者的身份可由互联网中的任意节点申请获得,为了保证车联网中时刻有人收集信息制作区块,车联网所在地的交通部门中应当有一批固定节点担任最基础的制造者。制造者从事务池中随机地获取消息并将它们打包到一个区块中,其中的紧急消息会被优先获取。制造者不停地获取这些消息直至本轮的工作时间ΔT1到期或收集到一条紧急消息,随后制造者会停止收集消息并将装有这些信息的区块发送给所有审核者,含有紧急消息的区块会被制造者特殊标记出来。如果审核者对区块中包含的消息认同时,会将自己的签名反馈给制造者。具体的算法设计如下。

算法1 区块制作算法。

3.3 区块校验

审核者负责区块的校验,审核者由车联网所在地的交通部门所指定的专业人员构成,这里假设审核者的数量为N。审核者在接收到制造者生成的区块后会通过投票来决定是否认可区块中的信息,当审核者对当前区块中的所有信息都做出评价后,它们会对区块头进行加密并将签名返还给区块的相应制造者,签名信息中包含审核者对于该区块中具体消息的审核结果。在等待时间ΔT2到期或收到所有审核者的签名反馈后,制造者会对收到的所有签名信息进行汇总统计,当存在至少N/2+1 个审核者在签名中对区块内的某条消息表示认可时,制造者将该消息标记为有效信息。统计结束后,制造者将此时区块中的有效信息保留并删除其余不实信息,具体的算法设计如下。

算法2 区块校验算法。

在实际的执行过程中,消息必然存在一定的时限性。因此,在对区块头的加密过程中,审核者会向区块头中添加一个值,用以表示该区块内消息的有效时间,根据区块内所包含消息内容的不同,有效时间也会有出入。具体的有效时间由对区块消息认可的审核者共同决定,设最终有效时间为T,对区块消息认可的审核者数量为N1,第i个审核者提出的有效时间为ti,i∈{1,2,…,N1},则T的值为:

此外,对于等待时间ΔT2结束前仍未返还签名反馈的审核者,系统会对其做出一定的惩罚,详见3.4节的惩罚机制。

3.4 惩罚机制

在区块上传至车联网后,车联网中的参与者将会根据这些区块中的信息采取相应的措施。但当这些参与者发现区块内的信息与实际情况有出入时,审核者会根据参与者反馈的信息做出判断,从而决定是否对生产者进行惩罚。如果汇报区块信息不实的消息时间超过了区块信息的有效时间,审核者不会对生产者进行惩罚;否则,审核者会根据该消息对应生产者的过失记录做出不同级别的惩罚。

关于如何对生产者进行惩戒,本文设立了如下机制:在审核者处存有一份加密过的生产者名单,这份加密名单的密钥经过拆分后由审核者各自保管一部分,这样可以尽可能地保证用户的个人隐私及安全。当审核者中有人根据区块信息对比发现存在恶意生产者发送虚假消息时,审核者可以进行投票,当超过半数的审核者认为之前通过的区块信息为虚假信息时,它们会将各自保管的密钥进行汇总以“拼接”出完整的密钥。在使用密钥获取到生产者名单后,审核者根据恶意生产者的过往记录进行不同级别的惩罚:对于初犯或较长时间内无过错记录的生产者,审核者借助车联网对其进行警告;对于多次存在过错记录的生产者,审核者可以在一段时间内取缔其生产、传递消息的权力;对于造成较重后果的生产者,审核者应当将其信息移交至执法部门进行相应的处理。

此外,对于3.3 节中提到的在等待时间结束前仍未返还校验结果的审核者以及在投票中对虚假信息表示认可的审核者也应给予惩戒,本文计划使用一项单独的指标来评价审核者的可信度。每次惩罚都会扣除犯错审核者的一部分指标分数,当其可信度低于一个阈值时,车联网会取消其审核者的身份。

上述的所有惩罚内容最终将会被制作在一个区块内并上传至车联网中。自此,对于惩罚机制的算法设计如下。

算法3 惩罚机制。

3.5 算法中的时间问题

在上述的算法过程中,除在提出时就给出了详细解释的最终有效时间T外,本文还设置了两个时间变量ΔT1和ΔT2,分别用来表示制造者在收集消息制作区块时的时间上限以及在区块校验时制造者等待审核者反馈的时间上限。

工作时间ΔT1的时长根据制造者收集消息的效率发生变化,该时长应在保证制造者能够收集到至少一条消息的同时对其收集消息的上限做出一定限制。之所以需要对收集的消息数做出限制,是为了尽可能地缩短包含有效信息的区块上传至车联网的间隔时间,以便于保障消息的及时性,从而使得在车联网覆盖区域内的车辆能够更加及时地获取第一手消息。这里,本文设制造者R在本轮区块制造中拥有的工作时间为ΔT1(R),同时设其在上一轮区块制造中拥有的工作时间为tb,并且在上一轮区块中制造者R获取的消息数为G。那么,该制造者在本轮区块制造中获得的工作时间应为:

其中g为一个固定的正整数,其具体的取值应当结合部署车联网区域的实际情况来决定。

等待时间表示审核者在校验区块时拥有的时间上限,超出这一时间上限会使下游的制造者不再等待区块的校验结果。等待时间同审核者们的可信度存在直接关系,设编号为k的审核者可信度为λk,审核者k在校验区块时拥有的等待时间会随着可信度λk的变化而变化。当可信度λk的数值低于阈值S时,k会失去自己审核者的身份,其拥有的等待时间也随之降为0。此外,为了防止审核者k拥有过长的等待时间,应对等待时间的上限做出一定的约束。综上所述,本文将审核者k所拥有的等待时间ΔT2(k)设置如下:

采用对数函数既可以防止发生等待时间过长影响消息的及时性,又对低可信度的审核者进行限制。

4 实例模拟

假设当前有车辆A驶入部署了车联网的区域,A在驶入车联网的时候会自动地注册成为车联网的用户,若A满足成为生产者的条件,车联网会将A的基本信息写入生产者名单并赋予A生产者的身份和权限。车辆A在获得生产者的认证后会开始周期性地发送自身信息及周边路况的信息,假设车辆A在周期性地发送了消息M1后突然发现前方路段出现交通事故,那么车辆A会立即生成一条紧急消息M2来汇报事故的发生。具体的流程如图7所示。

图7 车辆A发送消息M1与M2Fig.7 Vehicle A sends messages M1 and M2

所有车辆发送的消息均会进入一个公共事务池,制造者从这个事务池中获取消息以制造区块。公共事务池中各消息的具体信息如表1所示。

表1 消息信息表Tab.1 Message information table

制造者以ΔT1为工作周期不停地在公务事务池中遍历并获取各类信息。假设此时公共事务池中存在消息集合M={M1,M2,…,Mn},其中M2为车辆A发送的紧急消息,那么当制造者获取到紧急消息M2或本轮工作周期已结束时,它们会将已经收集到的所有信息打包至当前正在制造的区块中,随后将其发送至审核者处。

审核者会对收到的区块内容进行校验,具体步骤同算法2的描述一致,校验过程如表2所示。审核者根据消息内容中的信息对该消息是否有效做出评价,同时指出该消息的有效时间,超出有效时间的消息将同样被认为失效。最后,审核者根据隶属区块的不同对这些消息的校验结果进行归类,归好类的校验结果会反馈给区块所属的具体制造者。

表2 信息校验表Tab.2 Information checking table

在等待时间到期或获取到所有审核者的反馈后,制造者对审核者的校验结果进行汇总统计,如表3 所示。在表3 中,使用T 来表示审核者对消息结果表示认同,使用F 来表示审核者对消息表示否定,同时用tij来定义第j位审核者对审核区块中的第i条消息的有效时长建议。根据校验结果的汇总,制造者们可以快速地对区块内的消息进行相应的处理:对于被大多数审核者认可的消息,制造者将其标记为有效信息并借助式(2)计算其最终的有效时间;对于大多数审核者均不认可的消息,制造者会将其从区块及公共事务池中删除。例如,在表3中,制造者根据汇总的结果判定该区块中的第1、2、4条消息为有效信息,并计算出它们的最终有效时间T1、T2、T3。同时,将第3、5 条消息从该区块及公共事务池中删除,最终将修改后的区块上传至整个互联网。至此,该区块的审核结束,整个审核过程可以用图8来表示。

表3 校验结果汇总表Tab.3 Summary table of checking results

图8 审核过程Fig.8 Verification process

经过上述的审核过程,车辆A成功地将“前方路段发生车祸”这一消息上传至整个车联网,那么后续的车辆在行驶或即将驶入该路段时都会获得该信息并采取相应的措施,事故发生的现场也会获得及时的救援。

而假如车辆A是车联网中的一名恶意攻击者,前方路段事实上并没有发生车祸,那么下一辆驶入该路段的车辆所汇报的信息必然会与之发生冲突。这种情况下,审核者们会对之前车辆A发送的消息进行复核,在确定车辆A所发送的消息不实后,审核者们会对发布虚假消息的车辆A以及认可该虚假消息的其他审核者们做出相应的惩戒。

5 仿真实验与分析

本章借助逻辑分析及模拟实验对以下两个方面进行证明:1)改进后的PoV 共识协议在共识效率上拥有更出色的表现;2)改进后的PoV 共识协议依然具有较高的可靠性及安全性。

本章的具体实验内容是在个人计算机上通过模拟该算法进行测试来完成的。测试环境为操作系统64 位Windows10、CPU 型号为i5、主频3.2 GHz,内存8 GB DDR4,编程语言为Go和Python,集成开发环境为GoLand2019和Pycharm2019。

PoV 共识协议诞生的初衷就是为了加速区块的生产。为了使区块能够更快速地生成,PoV 的设计者并没有采用传统共识机制(例如PoW)中通过工作量比较来争夺区块生成权的做法,而是将生产区块的权利开放给获得了生产权限的每个节点(在PoW 中,即使获得了生产权限,矿工们仍需依靠算力来争夺区块),因此它拥有较短的延迟事务验证时间和较高的吞吐量。PoV 在开放区块生产权限的同时借助管家—专员的监督体系有效地保证了区块的有效性,管家并不负责区块内容的可靠性,而是通过专员之间的投票机制来达成最终共识,这使得PoV 在保证区块生成效率的同时维持了区块信息的可靠性,区块的确认时间也因此缩短。

本文在尝试将PoV 与车联网结合的过程中也根据车联网的实际情况对PoV 做出相应的改进。改进后的PoV 共识协议去除了在车联网中并不需要的冗余部分——身份转换功能,这是由于车联网自身的高流动性带来的用户不固定问题所导致的必然选择。此外,本文还对PoV 的模型进行了一定的精简,主要体现在进一步放开了节点获取区块生产权的条件。传统PoV 中用户想要获得具有生产区块功能的“管家”一职需要在高权限者的担保下赢得选举才可以,而无论是获取担保还是选举过程都需要耗费额外的时间及计算资源;在改进后的PoV 共识协议中这种限制被取消,“管家候选人”这一身份同样被取缔,生产者身份的获得难度也因此进一步下降。综上所述,本文所设计的改进后的PoV 共识协议在车联网中拥有更高的共识效率。

虽然区块生成者的身份获得变得更加容易,但由于新增了监督及惩罚功能,改进后的PoV 共识协议并没有失去安全性及可靠性。凭借普通用户对于区块信息真实性的及时反馈和审核者的监督惩罚,改进后的PoV 共识协议依然可以有效地防止错误信息的传播,而车联网本身高流动性的现实特点也使得整套系统难以被攻击。

本文通过设计实验对改进PoV 拥有更高共识效率这一点加以证明:对诸如Ethereum、Litecoin、Bitcoin、Degecoin 等传统区块链进行模拟实验,记录实验结果并将其同基于传统PoV的区块链以及基于改进PoV 的区块链在相同实验上的表现做比较。该实验分别计算每种区块链生成1 000 个区块所需要消耗的时长,通过当前生成的区块与上个生成的区块之间的时间差来获得区块生成的间隔时间数据。随后,实验将上述实验过程中得到的实验数据与不同区块链所要求的确认函数次数结合,计算出这些区块链的确认交易时长。最终,借助实验模拟获得了基于改进PoV 的区块链与基于传统PoV 的区块链及一些基于PoW的区块链的共识效率对比图,如图9所示。

图9 中曲线表示基于不同共识算法的区块链在确认交易时间及区块间隔时间上的表现。从图9 中可以较为直观地看出,基于改进PoV 的区块链及基于传统PoV 的区块链在共识效率上明显高于使用其他共识算法的区块链。而由于改进后的PoV 共识协议在模型、程序上的精简,它拥有比传统PoV 共识协议更高的共识效率,确认交易时长和区块间隔时长也由0.25 min降低至0.2 min。

对于具有监督及惩罚功能的改进PoV 共识协议在维护系统安全性及可靠性上的表现,同样借助一组对比实验来进行说明,该实验对比结果如表4所示。

该实验将1 000 条消息分别导入两个使用改进PoV 共识协议系统,这些消息中存在部分假消息。两个系统的其中一个具有监督及惩罚功能,另一个则将这些功能删除。在运行一段时间后,分别检索这两个系统中被认证为有效信息的消息,统计其中的真消息及假消息数量并进行比较。

图9 基于不同共识算法的区块链在共识效率上的对比Fig.9 Comparison of consensus efficiency of blockchains based on different consensus algorithms

表4 不同的改进PoV共识协议在可靠性上的对比Tab.4 Comparison of reliability of different improved PoV consensus protocols

从表4 中可以直观地看出,两个改进的PoV 共识协议以是否具有监督及惩罚机制作为区分,在可靠性上有着明显的差异。显然,添加了监督及惩罚机制的改进PoV 共识协议所通过的假消息数量要少于没有这种机制的另一方。因此得出结论:新增的监督及惩罚功能使得改进后的PoV 共识协议同样具有较高的可靠性及安全性。

6 结语

本文尝试对现有的PoV 共识协议进行了一定的改进,使其能够更好地满足车联网的各项现实需求。改进后的PoV 共识协议去除了现有PoV 共识协议中的身份转换功能及一项身份分工,令其在更适配车联网的同时进一步提高了共识效率。此外,本文还在这种改进的PoV 共识协议中增添了监督和惩罚机制,以保证消息的真实性、有效性。借助实验本文证明了这种改进共识算法的有效性。实验结果表明,改进后的PoV共识协议可以进一步提高区块链的共识效率。

猜你喜欢

制造者生产者管家
搞笑事件满天飞,就数你们最给力
乡村振兴模型的“制造者”——袁家村模式,成为一个著名的商用标识
做自己的小管家
闲不住的小管家
洪水制造者
伤口“小管家”
HAPPY LIFE创意管家型APP
关于安全
会安慰自己的人