CN117241242A - 一种面向车联网的分层区块链共识方法 - Google Patents
一种面向车联网的分层区块链共识方法 Download PDFInfo
- Publication number
- CN117241242A CN117241242A CN202311001897.5A CN202311001897A CN117241242A CN 117241242 A CN117241242 A CN 117241242A CN 202311001897 A CN202311001897 A CN 202311001897A CN 117241242 A CN117241242 A CN 117241242A
- Authority
- CN
- China
- Prior art keywords
- rsu
- vehicle
- node
- consensus
- reputation value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000011156 evaluation Methods 0.000 claims abstract description 77
- 230000001360 synchronised effect Effects 0.000 claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 10
- 239000013598 vector Substances 0.000 claims description 94
- 230000003993 interaction Effects 0.000 claims description 71
- 239000010410 layer Substances 0.000 claims description 69
- 238000004891 communication Methods 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 28
- 238000002360 preparation method Methods 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 20
- 238000012790 confirmation Methods 0.000 claims description 16
- 238000012795 verification Methods 0.000 claims description 12
- 239000002355 dual-layer Substances 0.000 claims description 10
- 230000005540 biological transmission Effects 0.000 claims description 9
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- SLXKOJJOQWFEFD-UHFFFAOYSA-N 6-aminohexanoic acid Chemical compound NCCCCCC(O)=O SLXKOJJOQWFEFD-UHFFFAOYSA-N 0.000 claims description 3
- 238000012937 correction Methods 0.000 claims description 3
- 230000006855 networking Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 230000000694 effects Effects 0.000 description 5
- 230000010076 replication Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 241000486463 Eugraphe sigma Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种面向车联网的分层区块链共识方法,包括:完成区块链网络节点初始信息注册;每个RSU在一定周期内接收对应区域内各车辆对其进行信誉值评估后的单车初评信誉值,相加得到自身的节点信誉值;该RSU利用公钥和自身的节点信誉值判断是否满足区域委员会入选条件,若是加入对应的区域委员会中;每个区域委员会选取节点信誉值最高的节点作为区域主节点,区块链网络选取区域主节点中节点信誉值最高的作为第一层主节点,所有区域委员会节点参与共识构成双层PBFT共识结构;对其中一个目标区域委员会进行区域局部共识和全局共识;在双层共识完成后区块链网络其余节点进行同步数据处理。本发明具有更高的吞吐量、可扩展性和共识效率。
Description
技术领域
本发明属于车联网区块链***领域,具体涉及一种面向车联网的分层区块链共识方法。
背景技术
区块链技术的核心是分布式账本,它存储了网络上所有节点的公共账本数据,具有去中心化的特点,即没有一个中心化的控制机构,而是通过共识算法的方式使得所有节点都能够达成一致,并保证数据的一致性和可靠性。区块链技术的优势在于它可以提供高度的安全性、透明性和不可篡改性。区块链上的数据记录是由网络上的所有节点共同维护的,任何人都不能单独修改或删除其中的任意一个记录。这意味着区块链数据具有高度的可信性和可靠性,不像传统的数据库存在被篡改或丢失的风险。同时,区块链技术还具有匿名性和去中心化的特点,这意味着它不依赖个人或中心化机构的信任,而是通过算法和协议达成一致和验证数据的真实性。这使得区块链技术可以应用于金融、物流、能源、医疗等多个领域,并在这些领域中提高效率、降低成本,同时保证了数据的安全性和可信度。
车联网是指装载在车辆上的电子标签通过无线射频等识别技术,实现在信息网络平台上对所有车辆的属性信息和静、动态信息进行提取和有效利用,根据不同的功能需求对所有车辆的运行状态进行有效的监管并提供相应的综合服务。车联网由车辆自组织网络、智能车辆和移动网络组成。车联网通过将车辆、传感器和移动设备集成到一个全球网络中,使得车辆与车辆、车辆与路边基础设施、车辆与城市中的网络相互连接,确保各类服务能够及时的交付给驾驶员。车联网中的网络节点主要由车辆上的车载单元(On BoardUnit,OBU)和道路两侧的路侧单元(Road Side Unit,RSU)构成,且OBU和RSU都遵循IEEE802.11p标准的专用短程通信技术规范。在交通顺畅的情况下,最多能在800~1000m的范围内被其他车辆检测到车联网信息的传输范围为300m。车辆间可以频繁的进行信息交换,每分钟可以发送15~30次消息,信息内容包含车辆的速度、状态、周边车辆的异常行为等相关数据。因此,随着无线传感器网络的不断进步,车联网在提升城市交通服务的质量和互动性,降低成本和避免资源浪费等方面显示出巨大的潜力。通过传感器、RFID和GPS等技术,实现车辆自身和外界的信息采集和处理。通过互联网技术实时交换信息,实现车辆和道路的全面监督和服务,促进绿色信息消费,提高交通运行效率和安全性。
区块链共识协议是指在分布式环境下,各节点之间协调达成一致的算法和过程。由于分布式环境下各节点之间无法互相信任,可能会出现节点故障、攻击等情况,因此共识协议的设计需要具有高度的容错性和安全性。
目前,常见的区块链共识协议包括Proof of Work(PoW)、Proof of Stake(PoS)、Practical Byzantine Fault Tolerance(PBFT)、Delegated Proof ofStake(DPoS)等。其中,PoW是最早应用于区块链的共识算法,其通过解决难题来完成区块的验证,但是存在能耗高、效率低等问题;PoS通过抵押代币进行验证,能耗更低,但是需要占用大量的代币,并且隐藏交易可能会导致所有代币都被永久冻结;PBFT相对比较复杂,但是具有高可扩展性和低延迟的优势;DPoS通过委员会选举进行共识,但是存在一些集中化和安全性的问题。除了以上常见的共识协议,还有一些新的共识协议正在被不断研究和发展,比如Raft、Hashgraph、Tendermint等等。总之,共识协议是区块链技术的核心之一,对于保证区块链网络的正确性、安全性、可扩展性和性能至关重要。随着区块链技术的不断发展,相信会有更加完善和高效的共识协议产生。
关于车联网中的共识算法,现有的委员会选举算法中,Algorand算法首先使用VRFs函数进行计算<hash,π>:=VRFSK(seed||role),该函数返回一个哈希值和一个证明,其中哈希值由私钥和输入参数功能决定,他人不可伪造;证明π可以让任何知晓该用户公钥的用户验证hash值确实由该输入推导出来,该hash值的随机范围在[0,2hashelen-1]。为了能够使用户被选中的概率和其所拥有的货币相对应,Algorand将用户User按照其拥有多少单位的货币分割成sub-users,也即:假设用户i拥有wi的货币,那么该用户就拥有wi个sub-users.(i,j)其中j∈{1,...,wj}代表了i拥有的wi个货币,每一个单位货币被选中的概率用户的w个sub-users中被选中k个的概率遵循二项分布:其中/>为了确定用户w个sub-users中多少个sub-users被选中,抽签算法将[0,1)区间分割成连续的区间:其中j∈{1,...,wj}。如果hash/2hashlen落在区间Ij上,那么该用户共有j个sub-users被选中,该数字j能够通过π被其他用户验证,j>0就证明本节点在本轮次中被选中为共识委员会成员。
针对分层共识,论文《A Scalable Multi-layer PBFT Consensus forBlockchain》针对区块链共识算法使用拜占庭容错协议(PBFT)的节点可扩展性瓶颈问题,创新性的提出了通过改变***网络结构的方法来降低***复杂度,提高***拓展性。与原PBFT算法不同的是,Multi-layer PBFT把***中的节点分层分组,从而把节点间通信限制进组内层内,有效的解决了原PBFT通信冗杂的问题,结果显示多层PBFT***的通信复杂度从原来的平方降低至了接近线性。
论文《Scalable Dynamic Multi-Agent Practical Byzantine Fault-TolerantConsensus in Permissioned Blockchain》提出了通过PBFT算法和多智能体***的结合实现了动态的拜占庭容错共识,支持节点的动态加入和退出,并具有动态共识配置和易扩展性,适用于不同应用场景和节点规模。节点加入:新节点加入时会向***接口发送请求,请求包括节点身份证书、网络地址和公钥等信息。***接口会验证节点身份并将其加入到***中,节点提出交易请求向其他节点广播交易请求,表决请求发送:每个节点将获取到的交易请求向其他节点发送表决请求,每个节点必须获得超过2/3的其他节点的同意才能继续进行,收到其他节点的表决结果后,节点将它们的表决结果广播给其他节点,确认请求和确认结果发送:当节点收到超过2/3的其他节点的表决结果时,它将发送确认请求和确认结果,交易执行:当节点收到超过2/3的确认结果时,它会执行交易并广播执行结果,其他节点根据结果执行相同的交易,当节点收到超过2/3的其他节点相同的执行结果时,交易被确认并添加到区块链中。
但是,现有研究关于车联网中的共识算法大部分采用单链结构,简单,高效但是交易吞吐量较低,也有部分算法资源消耗大,延迟高,不太适合车联网高速移动网络。
发明内容
为了解决现有技术中存在的上述问题,本发明提供了一种面向车联网的分层区块链共识方法。本发明要解决的技术问题通过以下技术方案实现:
一种面向车联网的分层区块链共识方法,应用在基于区块链的车联网***模型中,所述区块链车联网***模型包括RC、RSU和配备有OBU的车辆;RSU作为区块链网络的节点;所述方法包括:
RC为合法车辆和RSU颁发证书,并通过安全通道分发车辆和RSU的公钥和私钥,以确保各个节点信息的不可伪造性,完成区块链网络中的节点初始信息注册;
针对每个RSU,该RSU在一定周期内接收对应区域内各车辆对其进行信誉值评估后得到的单车初评信誉值,对一定周期内收到的所有单车初评信誉值相加得到自身的节点信誉值;其中,每个车辆利用预设的RSU信誉值评估算法得到针对一RSU的单车初评信誉值;
该RSU利用公钥和自身的节点信誉值判断是否满足预设的区域委员会入选条件,若是,该RSU加入对应的区域委员会中;
每个区域委员会选取其中节点信誉值最高的节点作为该区域的区域主节点,其余节点作为该区域的区域从节点;区块链网络选取各区域主节点中节点信誉值最高的节点作为第一层主节点以表示所有区域主节点的主节点,区块链网络中所有区域委员会的节点参与共识,构成双层PBFT共识结构;
针对所述双层PBFT共识结构中的一个目标区域委员会,依次进行区域局部共识和全局共识;在该目标区域委员会的双层共识完成后,区块链网络的其余节点进行同步数据处理。
在本发明的一个实施例中,每个车辆利用预设的RSU信誉值评估算法得到针对一RSU的单车初评信誉值的过程,包括:
RSUj对应区域内的各车辆根据与RSUj的通信数据交互情况以及预设的主观逻辑模型,计算时间窗内自身对RSUj进行信誉值评估的局部意见向量,并基于自身的局部意见向量确定对RSUj评估的信誉值初始表达式;
各车辆根据使用主观逻辑模型的局部意见向量所受到的不同因素的影响,基于加权方式确定自身针对RSUj的局部意见向量所对应的信誉值权重;并根据交互及时性以及时间窗内自身对RSUj进行信誉值评估的局部意见向量,确定一个时间周期内自身对RSUj进行信誉值评估的局部意见向量;
各车辆收集与RSUj有通信数据交互的其余车辆在一个时间周期内对RSUj进行信誉值评估的局部意见向量以及对应的信誉值权重,并利用收集到的各局部意见向量对应的信誉值权重将收集的所有局部意见向量合并为一个推荐意见;
各车辆将一个时间周期内自身对RSUj进行信誉值评估的局部意见向量与合并得到的一个推荐意见结合,并根据对RSUj评估的信誉值修正表达式得到自身针对RSUj的单车初评信誉值。
在本发明的一个实施例中,RSUj对应区域内的各车辆根据与RSUj的通信数据交互情况以及预设的主观逻辑模型,计算时间窗内自身对RSUj进行信誉值评估的局部意见向量,并基于自身的局部意见向量确定对RSUj评估的信誉值初始表达式,包括:
RSUj对应区域内的车辆Vi,根据其与RSUj的通信数据交互情况以及预设的主观逻辑模型,计算时间窗内车辆Vi对RSUj进行信誉值评估的局部意见向量
其中,分别代表信任、不信任和不确定性;/>且/>{t1,…tx,…tX}中任一个为一个时间周期X的一部分时间段,作为一个时间窗;/>为车辆Vi与RSUj正面相互作用的数量,/>为车辆Vi与RSUj负面相互作用的数量,正面相互作用意味着车辆Vi相信RSUj提供的服务是相关和有用的,或者车辆Vi相信RSUj生成的新数据块是真实的;负面相互作用意味着车辆Vi不相信RSUj提供的服务是相关和有用的,或者车辆Vi不相信RSUj生成的新数据块是真实的;/>为车辆Vi与RSUj之间链路的通信质量,也为数据包成功传输的概率;
基于车辆Vi的时间窗内的局部意见向量确定车辆Vi对RSUj评估的信誉值初始表达式为:
Fi→j=bi→j+γui→j;
其中,Fi→j表示车辆Vi对RSUj在共识过程中被信任且行为正常的期望信念,表示对RSUj评估的信誉值;bi→j和ui→j分别表示一个时间周期X内对应的信任和不确定性;0≤γ≤1,γ为给定常数,表示不确定性对单车初评信誉值的影响程度。
在本发明的一个实施例中,各车辆根据使用主观逻辑模型的局部意见向量所受到的不同因素的影响,基于加权方式确定自身针对RSUj的局部意见向量所对应的信誉值权重;并根据交互及时性以及时间窗内自身对RSUj进行信誉值评估的局部意见向量,确定一个时间周期内自身对RSUj进行信誉值评估的局部意见向量,包括:
根据时间窗内车辆Vi与RSUj相互发送通信数据的次数,以及车辆Vi与其他RSU相互发送通信数据的次数之比,确定车辆Vi与RSUj的相互作用频率IFi→j;
利用定义的新鲜度衰减函数和时间窗内车辆Vi对RSUj进行信誉值评估的局部意见向量确定一个时间周期内车辆Vi对RSUj评估的局部意见向量{bi→j,di→j,ui→j};
基于定义的新鲜度衰减函数确定车辆Vi与RSUj的交互效果,并根据车辆Vi与RSUj的交互效果更新车辆Vi与RSUj的相互作用频率IFi→j;
确定车辆Vi发送消息的距离影响因素,并利用预设的第一权重和第二权重对更新后的相互作用频率IFi→j和距离影响因素进行加权求和,得到车辆Vi针对RSUj的局部意见向量所对应的信誉值权重δi→j。
在本发明的一个实施例中,各车辆收集与RSUj有通信数据交互的其余车辆在一个时间周期内对RSUj进行信誉值评估的局部意见向量以及对应的信誉值权重,并利用收集到的各局部意见向量对应的信誉值权重将收集的所有局部意见向量合并为一个推荐意见,所采用的公式表达式,包括:
其中,表示车辆Vi合并的一个推荐意见中的元素;s∈S表示车辆s属于推荐车辆集合S,推荐车辆集合S是除了车辆Vi外,与RSUj有通信数据交互的其余车辆的集合;bs→j、ds→j、us→j表示在一个时间周期内车辆Vs对RSUj进行信誉值评估的局部意见向量中的元素;δs→j表示车辆Vs针对RSUj的局部意见向量所对应的信誉值权重。
在本发明的一个实施例中,各车辆将一个时间周期内自身对RSUj进行信誉值评估的局部意见向量与合并得到的一个推荐意见结合,所采用的公式表达式,包括:
其中,表示车辆Vi将一个时间周期内自身对RSUj进行信誉值评估的局部意见向量与合并得到的一个推荐意见结合后得到的对应元素;bi→j、di→j、ui→j表示一个时间周期内车辆Vi对RSUj评估的局部意见向量{bi→j,di→j,ui→j}中的元素;
相应的,对RSUj评估的信誉值修正表达式,包括:
其中,表示车辆Vi针对RSUj的单车初评信誉值;ε表示预定义的节点的初始信誉度,为非0正数。
在本发明的一个实施例中,该RSU利用公钥和自身的节点信誉值判断是否满足预设的区域委员会入选条件,若是,该RSU加入对应的区域委员会中,包括:
RSUj利用自身的公钥pkj和自身的节点信誉值Rj进行哈希运算H(pkj,Rj)得到哈希值hj;
判断RSUj的节点信誉值Rj和哈希值hj是否满足其中,hahlen(·)函数是计算给定hash的位长;
若满足,RSUj满足预设的区域委员会入选条件,被加入到所在区域的区域委员会中。
在本发明的一个实施例中,针对所述双层PBFT共识结构中的一个目标区域委员会,进行区域局部共识的过程,包括:
节点RSUk接收到目标区域内的请求车辆发送的请求消息m,格式为<REQUEST,o,t,c>σc,节点RSUk将请求消息m放入目标区域的交易池中;其中,o表示具体执行的操作;t表示时间戳,c表示请求车辆编号,σ表示签名,σ的下标表示签名的主体;σc表示请求车辆签名;
进行预准备阶段,包括:目标区域委员会的区域主节点p对交易池中的请求消息分配序列号,并向所属区域委员会的所有节点广播预准备消息其中,/>是目标区域委员会的区域主节点p利用自身私钥进行的主节点签名;v表示视图序号;h表示请求消息m被分配的序列号;d表示请求消息m的摘要;
进行准备阶段,包括:节点RSUk收到预准备消息中区域主节点p的PRE-PREPARE2消息后,利用对应的公钥进行验证,验证通过后节点RSUk向所属区域委员会中包括区域主节点在内的其他节点发送一条消息,表示节点RSUk的签名消息,其中,k是节点RSUk的编号;
进行确认阶段,包括:如果节点RSUk收到了2f+1个验证通过的PREPARE2消息,进入确认阶段;对收到2f+1个验证通过的PREPARE2消息的节点组播消息其中,f表示恶意节点的数量;
回复阶段,包括:如果节点RSUk收到了2f+1个验证通过的COMMIT2消息,表明当前区域委员会中的大部分节点已经达成共识;节点RSUk发送回复消息给所属区域的区域主节点p;其中,r表示请求操作的执行结果;区域主节点p通过检查当前区域中包括自身在内有超过f+1个成员回复视图序号一致的REPLY2消息,确认该区域已达成共识;区域主节点p向第一层主节点发送请求,以将共识的数据m发给第一层主节点,开启新一轮共识请求。
在本发明的一个实施例中,针对所述双层PBFT共识结构中的一个目标区域委员会,进行全局共识的过程,包括:
第一层主节点按照交易池中消息的时间顺序进行全局共识,第一层主节点向所有区域主节点发送<<PRE-PREPARE1,v,h,d>,m>σi消息,其中,<<PRE-PREPARE1,v,h,d>,m>σi中σi的下标i表示第一层主节点的编号;PRE-PREPARE1为标志说明;
进行预准备阶段、准备阶段、确认阶段后,所有区域主节点将回复消息<REPLY1,v,t,c,i,r>σi直接回复给请求车辆;请求车辆收到f+1个REPLY1消息后说明共识成功;其中,回复消息<REPLY1,v,t,c,i,r>σi中的i表示区域主节点的编号;REPLY1为标志说明。
在本发明的一个实施例中,在该目标区域委员会的双层共识完成后,区块链网络的其余节点进行同步数据处理,包括:
当目标区域委员会的双层共识完成后,目标区域委员会的区域主节点将消息m发送给对应区域内的所有节点,对应区域内的非区域委员会节点收到消息m后进行复制同步;并且,其他区域主节点将消息m发送给对应区域内的所有节点,对应区域内的非区域委员会节点接收到消息m后进行复制同步。
本发明的有益效果:
(1)提出委员会选举算法按照节点信誉值来选举合适节点参与共识,能够减小共识时延,提高算法可扩展性。
(2)针对传统的单链结构,提出了双层共识结构,提高了区块链***的可扩展性,使更多节点参与信息共享,具有更高的吞吐量、可扩展性和共识效率,可以满足车联网场景的需求。
附图说明
图1为本发明实施例提出的基于区块链的车联网***模型的示意图;
图2为本发明实施例所提供的一种面向车联网的分层区块链共识方法的流程示意图;
图3为本发明实施例提出的双层PBFT共识结构的拓扑结构示意图;
图4为本发明实施例提出的DLPBFT共识流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本发明实施例方案,在此对涉及的相关技术进行补充说明。
1)多层共识
多层共识是一种解决区块链共识算法可扩展性问题的方案。在传统的PBFT算法中,所有节点都需要参与到共识过程中,但当网络中节点数量过多时,PBFT算法的效率会急剧下降,导致共识时间延长甚至出现拥堵。多层共识的思想是将所有参与者分成多个层级,上层只关注整体共识结果,下层则负责具体的共识过程。这种层级结构可以大大提高共识效率,尤其是在大规模网络中可以显著降低共识时间。
多层共识的基本思路是先将所有参与者划分为若干个区块,每个区块内部使用传统的PBFT算法进行共识,达成共识后,将该结果提交到上一层进行汇总处理,直至达成整体共识结果。由于上层只需关注整体共识结果,所需参与者也相对较少,因此相比传统的PBFT算法,多层共识具有更好的可扩展性。在多层共识中,参与者被分为若干个不同的任务组,每个任务组内部使用PBFT算法进行共识,得到共识结果后,就将该结果提交到下一层进行处理。这个过程就像一棵树一样,从下至上逐层处理,最终汇总成整个网络的共识结果。
总的来说,多层共识的优点主要有两点:一是实现了区块链共识算法的可扩展性,在大规模网络中可以显著提高共识效率;二是更好地保障了***的可靠性,即便某个区块出现异常或被攻击,也不会对整个共识结果产生影响。
2)BA协议
BA协议是一种斗争恶意行为的分布式算法,用于在拜占庭环境下实现共识。在该算法中,每个节点都需要参与到共识过程中来,节点按照某种协议进行交互,并相互通信以协商达成共识。在信息的传输和交互过程中,可能会有一些节点出现故障或者攻击,这些故障和攻击可能导致一些节点提供错误的信息或者是不诚实的行为,从而破坏了共识的正确性和安全性。BA协议的目的就是要保证即使出现了一些“拜占庭故障”,***依然能够保持一致性,并且能够快速地达成共识。
通常,拜占庭容错共识算法可以分为两类:基于投票的协议和基于拜占庭将军问题的协议。其中,BA协议是基于拜占庭将军问题的协议,可以支持多数异步、弱同步和同步共识模式,并且具有高效性、安全性和完整性。具体来说,BA协议运用了数字签名的机制来确保消息的真实性,同时采用了拜占庭将军问题的模型来解决恶意节点和故障节点的问题。
3)委员会选举
共识算法中的委员会选举是指在分布式***中选择一组节点作为委员会成员,负责执行关键任务,例如共识达成、区块生成、交易验证等。委员会的选举过程旨在确保***的安全性、可靠性和去中心化性质。
委员会选举的过程通常包括以下步骤:
1.节点提名:在委员会选举之前,***中的节点可以提名自己或其他节点作为候选人。提名过程可以通过投票、随机选择或其他规则进行。
2.投票阶段:在投票阶段,节点根据一定的规则和算法,对候选人进行投票。投票方式可以是加权投票,其中节点的权重可以根据其资源贡献、持有的加密货币数量等进行分配。
3.计票与排名:在投票结束后,***会进行计票和排名,根据获得的票数或权重对候选人进行排序。通常,得票最高或权重最大的候选人将成为委员会的成员。
4.委员会形成:根据排名结果,确定委员会成员的数量。具体的数量可以事先设定,也可以根据***的需求和性能进行动态调整。
5.委员会任务:选定的委员会成员将承担特定的任务,例如共识达成、区块生成、交易验证等。他们之间需要进行通信和协作,以完成所分配的任务。
常见的共识算法中委员会选举的具体实现方式有所不同。例如,在Proof ofStake(PoS)算法中,节点根据持有的加密货币数量进行投票和选举;而在Delegated Proofof Stake(DPoS)算法中,节点通过代表权益进行投票,选举代表节点成为委员会成员。
委员会选举在共识算法中扮演重要的角色,它确保了***中具有一定权威和责任的节点参与关键任务的执行,从而保证了***的安全性和一致性。具体的委员会选举方式可以根据应用的需求和***的特点进行设计和实现。
本发明实施例的基于区块链的车联网***模型请参见图1所示,车辆之间或车辆与RSU之间的通信为无线通信,RSU之间的通信是有线通信,Transaction表示交易,该模型由以下主要组件组成:
(1)车辆:车辆配备了智能车载单元(On Board Unit,OBU),使其具有感知、计算和存储等功能。车辆负责向RSU上传通信数据记录、反馈评级等信息进行上链,同时车辆给RSU评估信誉值。
(2)RSU:相对车辆来说,RSU具有较强的计算和存储资源,同时也拥有充足的能量供应,因此选择RSU作为区块链网络的节点。另外,RSU还需收集其通信范围内的车辆间通信数据以及车辆对其评估的信誉值,在每周期结束时更新RSU的信誉值,然后将结果打包成区块添加进区块链网络供全局车辆和其他RSU查询使用。
(3)信誉中心(RC):信誉中心存储着网络内RSU的最新信誉值,当网络遭到破坏时,可以从信誉中心获取保存的信誉值,同时RC为合法车辆和RSU颁发证书,并通过安全通道分发车辆和RSU的公钥和私钥,该模型假设RC是完全可信的。
本发明实施例方案中涉及的其余部分:
时钟模型:节点进行共识时应该使用统一的的时钟戳。区块生成中每轮共识时间是固定的,假设节点能够随时获取当前统一的时间戳,如网络时间协议NTP(Network TimeProtocol)。节点使用创世区块中的创世时间戳和当前时间戳就能够计算出当前共识轮次,不依赖按序排列的精确全局时钟。
网络通信模型:网络通信模型是描述节点之间通信的模型,主要体现为消息到达的时间和可靠性等特征。根据消息到达的时间特征不同,可以将网络通信模型分为同步模型、异步模型和弱同步模型。同步网络模型是指在网络中进行的消息传递是按照一个统一的时钟进行的,即消息的传递时间是可预测的和可控制的,所有节点都执行同步操作。在同步网络模型中,消息传递可以保证时序性,因此共识机制更容易实现。异步网络模型是指在网络中进行的消息传递的时间是未知和不可控的,消息的传递时间不受控制,可能会出现延迟、丢失和乱序。在异步网络模型中,共识算法需要考虑到所有可能的情况,因此更加复杂。弱同步网络模型是介于同步网络模型和异步网络模型之间的一种模型,它假设消息传输具有有限的上限,而且消息的到达时间是未知的。在弱同步网络模型中,共识算法需要在考虑到所有可能情况的基础上,适当地考虑延迟和乱序问题。
复制状态机:复制状态机(Replicated State Machine)是指在分布式***中,通过维护多个副本的方式来实现数据一致性的机制。简单而言,就是将一个状态机的状态副本复制到不同的节点上,将所有状态修改操作转化为消息传输,通过共识机制来保证所有副本的状态都相同。
具体来说,复制状态机机制中有两个核心步骤:
1.状态复制:在分布式***中维护多个主从副本,主节点状态发生变化时将变化的操作构造成一条指令,通过消息传递的方法将指令发送到所有从节点,从节点执行相应的指令,使得所有节点的状态都相同。为了保证副本间的一致性,需要利用共识机制来保证消息的可靠性和顺序性。常见的共识机制包括Paxos、Raft、DLS等。
2.状态恢复:如果出现主节点失效或节点之间的网络通信出现故障等情况时,需要从副本中选择一个新的主节点,使得***能够继续正常运行。此时,需要进行状态恢复操作,即将新的主节点的状态与副本中已有的状态进行比较和合并,以获得最新的状态。
复制状态机的作用就是实现分布式***的高可用性和数据一致性。通过将状态副本分布在多个节点上,使得***即使出现故障也可以继续提供服务,同时通过共识机制来保证数据的一致性和正确性。
本发明所要解决的技术问题包括:
1.选举委员会节点问题
如何按照区块链节点的信誉值,有效选举出共识委员会,保证委员会节点选举的随机性和公平性。
2.共识效率问题
由于车联网的高度动态性和资源约束性,如何确保在车辆高速移动环境中高效完成数据共识,并且区块链***拥有较高的***性能和较好的安全性。
下面,首先对本发明实施例所提供的一种面向车联网的分层区块链共识方法进行介绍。如图2所示,本发明实施例所提供的一种面向车联网的分层区块链共识方法,应用于所构建的基于区块链的车联网***模型中,区块链车联网***模型包括RC、RSU和配备有OBU的车辆;RSU作为区块链网络的节点;该方法可以包括如下步骤S1~S5:
S1,RC为合法车辆和RSU颁发证书,并通过安全通道分发车辆和RSU的公钥和私钥,以确保各个节点信息的不可伪造性,完成区块链网络中的节点初始信息注册;
本发明实施例中,所构建的基于区块链的车联网***模型假设RC是完全可信的。S1环节作为前提准备,意味着只有颁发证书的RSU和车辆才能进入区块链车联网***模型产生作用。
S2,针对每个RSU,该RSU在一定周期内接收对应区域内各车辆对其进行信誉值评估后得到的单车初评信誉值,对一定周期内收到的所有单车初评信誉值相加得到自身的节点信誉值;其中,每个车辆利用预设的RSU信誉值评估算法得到针对一RSU的单车初评信誉值;
其中,一定周期可以根据需要设置时长,在此不做限制。
本发明实施例中各个RSU是固定设备,根据其通信范围,可以对应不同的区域,由于车辆是移动的,在一定周期内,每个区域内会存在多个车辆,车辆会与所在区域内的RSU发生通信数据交互。在一定周期内,一个区域内的任一车辆可以利用预设的RSU信誉值评估算法得到针对该区域的一RSU的单车初评信誉值,并发送给该RSU,该RSU可以接收所在区域内各车辆发来的针对该该RSU的单车初评信誉值,进行相加得到一个自身的节点信誉值。
以下对预设的RSU信誉值评估算法进行说明,具体的,每个车辆利用预设的RSU信誉值评估算法得到针对一RSU的单车初评信誉值的过程,包括以下步骤A1~A4:
A1,RSUj对应区域内的各车辆根据与RSUj的通信数据交互情况以及预设的主观逻辑模型,计算时间窗内自身对RSUj进行信誉值评估的局部意见向量,并基于自身的局部意见向量确定对RSUj评估的信誉值初始表达式;
A1步骤可以包括:
A11,RSUj对应区域内的车辆Vi,根据其与RSUj的通信数据交互情况以及预设的主观逻辑模型,计算时间窗内车辆Vi对RSUj进行信誉值评估的局部意见向量
其中,车辆Vi在行驶过程中会RSUj进行数据交互,例如众感或车辆数据共享等。主观逻辑模型Vi对RSUj的局部意见可以形式化地描述为一个局部意见向量分别代表信任、不信任和不确定性;/> 且/>{t1,…tx,…tX}中任一个为一个时间周期X的一部分时间段,作为一个时间窗;/>为车辆Vi与RSUj正面相互作用的数量,/>为车辆Vi与RSUj负面相互作用的数量,正面相互作用意味着车辆Vi相信RSUj提供的服务是相关和有用的,或者车辆Vi相信RSUj生成的新数据块是真实的;负面相互作用意味着车辆Vi不相信RSUj提供的服务是相关和有用的,或者车辆Vi不相信RSUj生成的新数据块是真实的;一定周期内,/>和/>是变化的;/>为车辆Vi与RSUj之间链路的通信质量,也为数据包成功传输的概率,可以根据实验设置具体数值,其决定了局部意见向量中ui→j的不确定性;根据主观逻辑模型,可以得出上述公式(1)。可以理解的是,根据上述评估标准,一个区域内的所有车辆均可以产生局部意见向量。
A12,基于车辆Vi的时间窗内的局部意见向量确定车辆Vi对RSUj评估的信誉值初始表达式为:
Fi→j=bi→j+γui→j (2);
其中,公式(2)可以表示初始的局部意见;Fi→j表示车辆Vi对RSUj在共识过程中被信任且行为正常的期望信念,表示对RSUj评估的信誉值;bi→j和ui→j分别表示一个时间周期X内对应的信任和不确定性;0≤γ≤1,γ为给定常数,表示不确定性对单车初评信誉值的影响程度。
A2,各车辆根据使用主观逻辑模型的局部意见向量所受到的不同因素的影响,基于加权方式确定自身针对RSUj的局部意见向量所对应的信誉值权重;并根据交互及时性以及时间窗内自身对RSUj进行信誉值评估的局部意见向量,确定一个时间周期内自身对RSUj进行信誉值评估的局部意见向量;
使用主观逻辑模型的局部意见受到不同因素的影响,在考虑加权运算时,传统的主观逻辑向多权重主观逻辑演进,因此本发明实施例考虑以下权重来形成局部意见。
可选的一种实施方式中,A2步骤可以包括:
A21,根据时间窗内车辆Vi与RSUj相互发送通信数据的次数,以及车辆Vi与其他RSU相互发送通信数据的次数之比,确定车辆Vi与RSUj的相互作用频率;
针对影响因素为交互频率,交互频率越高意味着车辆Vi对RSUj有更多的先验知识,从而Vi对RSUj的信誉值计算更加准确和可靠。Vi对RSUj的相互作用频率是在一个时间窗内,Vi与RSUj相互作用(即为相互发送通信数据)的次数,与Vi与其他RSU相互作用的次数之比,为了区别,该步骤中车辆Vi与RSUj的相互作用频率以表示:
其中,z是在时间窗内与车辆Vi交互的所有RSU的集合,共有N个元素;互动频率越高,车辆Vi对RSUj的信誉期望越高。
A22,利用定义的新鲜度衰减函数和时间窗内车辆Vi对RSUj进行信誉值评估的局部意见向量确定一个时间周期内车辆Vi对RSUj评估的局部意见向量{bi→j,di→j,ui→j};
针对影响因素为交互及时性,新鲜度较高的近期行为事件比过去事件的权重更大。为了反应时间对信誉值的影响,本发明实施例定义了一个新鲜度衰减函数来表示行为事件的新鲜度。随着时间的推移,Vi对RSUj的信任度在发生变化,最近的互动对Vi评价RSUj有较大的影响。也就是说,该新鲜度衰减函数的含义是,Vi与RSUj交互数据,随着时间的推移,影响权重越来越小。
该新鲜度衰减函数表示为ψ(tx)=γX-x;其中,γ∈(0,1)是关于事件新鲜度的给定衰减参数。在一个时间周期X内,车辆Vi对RSUj评估的局部意见向量{bi→j,di→j,ui→j},可以表示为:
/>
其中,ψx表示新鲜度衰减函数,见公式(1)。
A23,基于定义的新鲜度衰减函数确定车辆Vi与RSUj的交互效果,并根据车辆Vi与RSUj的交互效果更新车辆Vi与RSUj的相互作用频率;
针对影响因素为交互效果,积极的交互会增加RSU节点的信誉值,而消极的交互会降低RSU节点的信誉,其中积极的交互意味着车辆相信RSU提供的服务是相关和有用的,或者车辆相信RSU生成的新数据块是真实的;消极的交互意味着车辆不相信RSU提供的服务是相关和有用的,或者车辆不相信RSU生成的新数据块是真实的。一般情况下,负面事件的影响在舆论中比正面影响要严重的多,因此消息的交互作用对局部意见具有更高的权重。正面相互作用(即积极的交互)的权重为χ,负面相互作用(即消极的交互)的权重为τ,其中χ+τ=1,χ<τ。将交互时效性和互动效果的权重组合在一起,Vi与RSUj积极和消极的交互效果表示如下:
其中,表示Vi与RSUj积极的交互效果;/>表示Vi与RSUj消极的交互效果;/>和/>分别表示车辆Vi与RSUj正面相互作用的数量和负面相互作用的数量。
因此,根据公式(3)、公式(5)和公式(6),Vi与RSUj的相互作用频率更新如下:
其中,IFi→j是对公式(3)的更新后的结果。
A24,确定车辆Vi发送消息的距离影响因素,并利用预设的第一权重和第二权重对更新后的相互作用频率IFi→j和距离影响因素进行加权求和,得到车辆Vi针对RSUj的局部意见向量所对应的信誉值权重δi→j。
针对影响因素为距离因素,比如A地发生堵车,车辆Vi在此观测到,在B地发送这一情报等,因此存在事件发生地理位置(如上例中A地)和消息生成地理位置(如上例中B地)。
考虑车辆Vi发送消息的地理位置的影响,即消息生成地理位置离事件发生地理位置越远,事件权重越低。假设当事件发送地理位置与消息生成地理位置间的距离为0-L时,本发明实施例认为在距离影响因素方面,该信息是可信的。其中,L为预设的大于0的数。
距离影响因素表示如下:
其中,DFi→j表示距离影响因素;(Xi,Yi)表示针对车辆Vi的消息生成地理位置;(X,Y)表示针对车辆Vi的事件发生地理位置。
因此,车辆Vi针对RSUj的局部意见向量所对应的信誉值权重δi→j表示为δi→j=ρ1*IFi→j+ρ2*DFi→j,其中,ρ1和ρ2分别表示预设的第一权重和第二权重,ρ1+ρ2=1,0<ρ1≤1,0<ρ2≤1。
可以理解的是,每个车辆均可以产生自身针对RSUj的局部意见向量所对应的信誉值权重。
A3,各车辆收集与RSUj有通信数据交互的其余车辆在一个时间周期内对RSUj进行信誉值评估的局部意见向量以及对应的信誉值权重,并利用收集到的各局部意见向量对应的信誉值权重将收集的所有局部意见向量合并为一个推荐意见;
其中,针对每个车辆,该车辆收集与RSUj有通信数据交互的其余车辆在一个时间周期内对RSUj进行信誉值评估的局部意见向量以及对应的信誉值权重δ,并利用收集到的各局部意见向量对应的信誉值权重δ将收集的所有局部意见向量合并为一个推荐意见。可以理解的是,该车辆计算出的自身的δ仅仅是发送给其余车辆用于对方车辆计算推荐意见使用。
具体的,A3步骤采用的公式表达式,包括:
其中,车辆Vi合并的得到的一个推荐意见向量(简称推荐意见)可以表示为表示车辆Vi合并的一个推荐意见中的元素;s∈S表示车辆s属于推荐车辆集合S,推荐车辆集合S是除了车辆Vi外,与RSUj有通信数据交互的其余车辆的集合;bs→j、ds→j、us→j表示在一个时间周期内车辆Vs对RSUj进行信誉值评估的局部意见向量中的元素,请参见公式(1)和(2)理解;δs→j表示车辆Vs针对RSUj的局部意见向量所对应的信誉值权重。
A4,各车辆将一个时间周期内自身对RSUj进行信誉值评估的局部意见向量与合并得到的一个推荐意见结合,并根据对RSUj评估的信誉值修正表达式得到自身针对RSUj的单车初评信誉值。
在从其他车辆获得针对RSU的局部意见向量,特定车辆根据其交互历史对每个RSU有主观意见。在形成最终的单车初评信誉值时,仍然要考虑这个局部意见,以避免欺骗。Vi将一个时间周期内自身对RSUj进行信誉值评估的局部意见向量与合并得到的一个推荐意见结合后,得到的信誉意见可以表示为
其中,各车辆将一个时间周期内自身对RSUj进行信誉值评估的局部意见向量与合并得到的一个推荐意见结合,所采用的公式表达式,包括:
其中,表示车辆Vi将一个时间周期内自身对RSUj进行信誉值评估的局部意见向量与合并得到的一个推荐意见结合后得到的对应元素;bi→j、di→j、ui→j表示一个时间周期内车辆Vi对RSUj评估的局部意见向量{bi→j,di→j,ui→j}中的元素。
相应的,对RSUj评估的信誉值修正表达式,包括:
其中,公式(11)是对公式(2)改进得到的;表示车辆Vi针对RSUj的单车初评信誉值;ε表示预定义的节点的初始信誉度,为非0正数,可以忽略。
以上即为每个车辆Vi利用预设的RSU信誉值评估算法得到针对一RSUj的单车初评信誉值的过程。RSUj在一定周期内接收对应区域内所有车辆对其进行信誉值评估后得到的单车初评信誉值后,相加得到自身的节点信誉值Rj。
S3,该RSU利用公钥和自身的节点信誉值判断是否满足预设的区域委员会入选条件,若是,该RSU加入对应的区域委员会中;
可选的一种实施方式中,S3可以包括以下步骤:
S31,RSUj利用自身的公钥pkj和自身的节点信誉值Rj进行哈希运算H(pkj,Rj)得到哈希值hj;
其中,每个RSUj具有对应的公钥pkj。进行哈希运算H(pkj,Rj)得到哈希值hj的过程请参见相关技术理解,在此不做详细说明。
S32,判断RSUj的节点信誉值Rj和哈希值hj是否满足
其中,hahlen(·)函数是计算给定hash的位长。
S33,若满足,RSUj满足预设的区域委员会入选条件,被加入到所在区域的区域委员会中。
可以理解的是,一个区域中,只有满足预设的区域委员会入选条件的节点才能够加入该区域的区域委员会中,加入区域委员会的节点才能够进行后续的共识。
以下给出表示上述过程的算法1的伪代码:
该算法1实现了共识委员会即区域委员会的选举。为了保证选举的随机性,确保满足实验定义的信誉阈值的节点参选委员会的流动性,本发明实施例的选举过程提供了两个重要的属性,即公钥和节点信誉值,节点RSUj首先对自身公钥pkj和信誉值Rj进行hj←H(pkj,Rj)运算后得到hash值hj,此hash值基本上均匀分布在0和之间,因此,是否入选委员会是根据节点信誉值来随机选择的。当/>时,节点RSUj满足入选条件,将其加入到区域委员会CO中。
本发明实施例所提出的委员会选举算法,根据节点信誉值来选举合适节点参与共识,能够降低通信复杂度,提高区块链***的可扩展性,同时保证领导人选举的随机性和公平性。
S4,每个区域委员会选取其中节点信誉值最高的节点作为该区域的区域主节点,其余节点作为该区域的区域从节点;区块链网络选取各区域主节点中节点信誉值最高的节点作为第一层主节点以表示所有区域主节点的主节点,区块链网络中所有区域委员会的节点参与共识,构成双层PBFT共识结构;
在车联网环境中,由于车辆活动范围广,节点RSU数量众多,通信复杂度较高,因此需要设计一个具有扩展性和灵活性的网络结构,以应对车辆行驶时网络拓扑结构的快速变化。
因此本发明实施例提出了一个双层PBFT(Double Layer Byzantine FaultTolerance,简称为DLPBFT)共识结构,双层PBFT共识结构的拓扑结构如图3所示,group 1、group 2,…,group n-1和group n表示n个区域,对应第二层。每个区域中蓝色的圆点表示该区域中的节点,数量为m个,每个区域中满足区域委员会入选条件的节点可以加入到该区域的区域委员会中,因此可能并非区域中所有蓝色节点均能够加入该区域的区域委员会,针对每个作为节点的RSU,能否加入对应区域的区域委员会这一信息会在对应区域内共享,因此可以利用节点信誉值选取区域主节点。各区域上的绿色节点为该区域的区域主节点,是该区域委员会中节点信誉值最高的节点,这几个绿色节点对应第一层,数量为n个。最上层的一个绿色节点为第一层主节点,图3中以leader表示,是从其下的多个区域主节点中选择的节点信誉值最高的节点,因此,图3所示的双层PBFT共识结构共有n+mn个节点。本发明实施例中,n和m可以根据需要设置,比如每个区域节点数量n至少4个。
第一层区域委员会节点可以称为第一层区域委员会的副本,可记为rk l,上标l表示层数,下标k表示副本索引。rk 1是最第一层的多个区域主节点中最左边的绿色节点,rk 1作为相应的第二层各区域委员会副本rk 2的领导者。一个上层rk 1和它所在区域内的rk 2一起形成了一个区域的区域委员会。需要说明的是,本发明实施例的双层PBFT共识结构中,各节点的副本索引k各不相同。
本发明实施例中,区块链网络中所有区域委员会的节点参与共识,构成双层PBFT共识结构,但参与共识的并非区块链网络所有节点,未加入区域委员会的RSU节点不参与区块链共识,仅在共识完成后做数据同步,具体请见后文具体说明。
S5,针对双层PBFT共识结构中的一个目标区域委员会,依次进行区域局部共识和全局共识;在该目标区域委员会的双层共识完成后,区块链网络的其余节点进行同步数据处理。
DLPBFT共识过程为分层共识过程,首先进行区域局部共识,共识成功后区域主节点将消息发送给第一层主节点进行全局共识,全局共识完成后将消息发送给请求车辆,采用双层共识,能够减少共识时延和通信复杂度。以下分别进行说明。
(一)区域局部共识
可选的一种实施方式中,针对双层PBFT共识结构中的一个目标区域委员会,进行区域局部共识的过程,包括:
(1)节点RSUk接收到目标区域内的请求车辆发送的请求消息m,格式为<REQUEST,o,t,c>σc,节点RSUk将请求消息m放入目标区域的交易池中;其中,o表示具体执行的操作;t表示时间戳,是请求车辆向RSUk发送请求消息的时间;c表示请求车辆编号,请求车辆可以用client表示;σ表示签名,σ的下标表示签名的主体,即σc表示请求车辆签名。
(2)进行预准备阶段
目标区域委员会的区域主节点p对交易池中的请求消息分配序列号,并向所属区域委员会的所有节点广播预准备消息其中,是目标区域委员会的区域主节点p利用自身私钥进行的主节点签名;v表示视图序号;h表示请求消息m被分配的序列号;d表示请求消息m的摘要。
需要说明的是,视图序号是用于区分不同视图的一个整数值。PBFT算法通过在相同的视图中执行一系列的轮次来达成共识,当主节点出现故障或恶意行为时,其他节点可以通过视图转换协议(即视图序号加1)来选择一个新的主节点,并继续进行共识过程。视图序号的增加可以被视为一种切换到新的共识轮次的信号,具体请参见相关技术理解。
(3)进行准备阶段
节点RSUk收到预准备消息中区域主节点p的PRE-PREPARE2消息后,利用对应的公钥进行验证,验证通过后节点RSUk向所属区域委员会中包括区域主节点在内的其他节点发送一条消息,表示节点RSUk的签名消息,其中,k是节点RSUk的编号;其余v,h,d与上述PRE-PREPARE2消息内容相同。
(4)进行确认阶段
如果节点RSUk收到了2f+1个验证通过的PREPARE2消息,进入确认阶段;对收到2f+1个验证通过的PREPARE2消息的节点组播消息其中,f表示恶意节点的数量;v,h,d,k与上述PREPARE2消息内容相同。
(5)回复阶段
如果节点RSUk收到了2f+1个验证通过的COMMIT2消息,表明当前区域委员会中的大部分节点已经达成共识;节点RSUk发送回复消息给所属区域的区域主节点p;其中,t表示时间戳;c表示请求车辆编号;r表示请求操作的执行结果;区域主节点p通过检查当前区域中包括自身在内有超过f+1个成员回复视图序号一致的REPLY2消息,确认该区域已达成共识;区域主节点p向第一层主节点发送请求,以将共识的数据m发给第一层主节点,开启新一轮共识请求;其中,v,k的含义不变。
(二)全局共识
可选的一种实施方式中,针对双层PBFT共识结构中的一个目标区域委员会,进行全局共识的过程,包括:
第一层主节点按照交易池中消息的时间顺序进行全局共识,第一层主节点向所有区域主节点发送<<PRE-PREPARE1,v,h,d>,m>σi消息,其中,<<PRE-PREPARE1,v,h,d>,m>σi中σi的下标i表示第一层主节点的编号;PRE-PREPARE1为标志说明;v为当前视图编号;h为消息的序列号;d为消息的摘要;m为请求的数据;v,h,d,m的含义具体请见前文释义。
进行预准备阶段、准备阶段、确认阶段后,所有区域主节点将回复消息<REPLY1,v,t,c,i,r>σi直接回复给请求车辆;请求车辆收到f+1个REPLY1消息后说明共识成功;其中,回复消息<REPLY1,v,t,c,i,r>σi中的i表示区域主节点的编号;REPLY1为标志说明;v为当前视图编号;t表示时间戳;c表示请求车辆编号;r表示请求操作的执行结果。全局共识中的预准备阶段、准备阶段、确认阶段和局部区域共识中的预准备阶段、准备阶段、确认阶段对应类似,在此不再重复说明。
上述过程执行完成后,所有区域主节点将回复消息REPLY1直接回复给client即请求车辆,client收到f+1个REPLY1后说明共识成功。REPLY1消息格式为<REPLY1,v,t,c,i,r>σi,REPLY1为标志说明,v为当前视图编号,t为时间戳,c表示请求车辆编号,i为生成回复消息REPLY1的副本节点即区域主节点的编号,r为请求操作的执行结果,REPLY1消息中包含了节点对客户端请求的处理结果,例如执行的操作或返回的数据等。
在该目标区域委员会的双层共识完成后,区块链网络的其余节点进行同步数据处理,包括:
当目标区域委员会的双层共识完成后,目标区域委员会的区域主节点将消息m发送给对应区域内的所有节点,对应区域内的非区域委员会节点收到消息m后进行复制同步;并且,其他区域主节点将消息m发送给对应区域内的所有节点,对应区域内的非区域委员会节点接收到消息m后进行复制同步。
需要说明的是,目标区域委员会的区域主节点将消息m发送给对应区域内的所有节点,但目标区域委员会的节点实际上在之前的局部区域共识完成后已经同步了消息m。
本发明实施例中DLPBFT共识过程如图4所示,首先进行区域局部共识groupconsensus,然后进行全局共识global consensus。图4中,client表示客户即请求车辆;sub-primary1表示区域主节点1;sub-primary2表示区域主节点2;sub-primary3表示区域主节点3;sub-primary4表示区域主节点4;replica1表示区域委员会副本1;replica2表示区域委员会副本2;replica3表示区域委员会副本3;request1表示区域局部共识中的请求消息接收阶段;pre-prepare1表示区域局部共识中的预准备阶段;prepare1表示区域局部共识中的准备阶段;commit1表示区域局部共识中的确认阶段;reply1表示区域局部共识中的消息回复阶段;pre-prepare2表示全局共识中的预准备阶段;prepare2表示全局共识中的准备阶段;commit2表示全局共识中的确认阶段;reply表示全局共识中的消息回复阶段。
本发明实施例所提供的面向车联网的分层区块链共识方法实现了以下有益效果:
(1)提出委员会选举算法按照节点信誉值来选举合适节点参与共识,能够减小共识时延,提高算法可扩展性。
(2)针对传统的单链结构,提出了双层共识结构,提高了区块链***的可扩展性,使更多节点参与信息共享,具有更高的吞吐量、可扩展性和共识效率,可以满足车联网场景的需求。
以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种面向车联网的分层区块链共识方法,其特征在于,应用在基于区块链的车联网***模型中,所述区块链车联网***模型包括RC、RSU和配备有OBU的车辆;RSU作为区块链网络的节点;所述方法包括:
RC为合法车辆和RSU颁发证书,并通过安全通道分发车辆和RSU的公钥和私钥,以确保各个节点信息的不可伪造性,完成区块链网络中的节点初始信息注册;
针对每个RSU,该RSU在一定周期内接收对应区域内各车辆对其进行信誉值评估后得到的单车初评信誉值,对一定周期内收到的所有单车初评信誉值相加得到自身的节点信誉值;其中,每个车辆利用预设的RSU信誉值评估算法得到针对一RSU的单车初评信誉值;
该RSU利用公钥和自身的节点信誉值判断是否满足预设的区域委员会入选条件,若是,该RSU加入对应的区域委员会中;
每个区域委员会选取其中节点信誉值最高的节点作为该区域的区域主节点,其余节点作为该区域的区域从节点;区块链网络选取各区域主节点中节点信誉值最高的节点作为第一层主节点以表示所有区域主节点的主节点,区块链网络中所有区域委员会的节点参与共识,构成双层PBFT共识结构;
针对所述双层PBFT共识结构中的一个目标区域委员会,依次进行区域局部共识和全局共识;在该目标区域委员会的双层共识完成后,区块链网络的其余节点进行同步数据处理。
2.根据权利要求1所述的面向车联网的分层区块链共识方法,其特征在于,每个车辆利用预设的RSU信誉值评估算法得到针对一RSU的单车初评信誉值的过程,包括:
RSUj对应区域内的各车辆根据与RSUj的通信数据交互情况以及预设的主观逻辑模型,计算时间窗内自身对RSUj进行信誉值评估的局部意见向量,并基于自身的局部意见向量确定对RSUj评估的信誉值初始表达式;
各车辆根据使用主观逻辑模型的局部意见向量所受到的不同因素的影响,基于加权方式确定自身针对RSUj的局部意见向量所对应的信誉值权重;并根据交互及时性以及时间窗内自身对RSUj进行信誉值评估的局部意见向量,确定一个时间周期内自身对RSUj进行信誉值评估的局部意见向量;
各车辆收集与RSUj有通信数据交互的其余车辆在一个时间周期内对RSUj进行信誉值评估的局部意见向量以及对应的信誉值权重,并利用收集到的各局部意见向量对应的信誉值权重将收集的所有局部意见向量合并为一个推荐意见;
各车辆将一个时间周期内自身对RSUj进行信誉值评估的局部意见向量与合并得到的一个推荐意见结合,并根据对RSUj评估的信誉值修正表达式得到自身针对RSUj的单车初评信誉值。
3.根据权利要求2所述的面向车联网的分层区块链共识方法,其特征在于,RSUj对应区域内的各车辆根据与RSUj的通信数据交互情况以及预设的主观逻辑模型,计算时间窗内自身对RSUj进行信誉值评估的局部意见向量,并基于自身的局部意见向量确定对RSUj评估的信誉值初始表达式,包括:
RSUj对应区域内的车辆Vi,根据其与RSUj的通信数据交互情况以及预设的主观逻辑模型,计算时间窗内车辆Vi对RSUj进行信誉值评估的局部意见向量
其中,分别代表信任、不信任和不确定性;/>且{t1,…tx,…tX}中任一个为一个时间周期X的一部分时间段,作为一个时间窗;/>为车辆Vi与RSUj正面相互作用的数量,/>为车辆Vi与RSUj负面相互作用的数量,正面相互作用意味着车辆Vi相信RSUj提供的服务是相关和有用的,或者车辆Vi相信RSUj生成的新数据块是真实的;负面相互作用意味着车辆Vi不相信RSUj提供的服务是相关和有用的,或者车辆Vi不相信RSUj生成的新数据块是真实的;/>为车辆Vi与RSUj之间链路的通信质量,也为数据包成功传输的概率;
基于车辆Vi的时间窗内的局部意见向量确定车辆Vi对RSUj评估的信誉值初始表达式为:
Fi→j=bi→j+γui→j;
其中,Fi→j表示车辆Vi对RSUj在共识过程中被信任且行为正常的期望信念,表示对RSUj评估的信誉值;bi→j和ui→j分别表示一个时间周期X内对应的信任和不确定性;0≤γ≤1,γ为给定常数,表示不确定性对单车初评信誉值的影响程度。
4.根据权利要求3所述的面向车联网的分层区块链共识方法,其特征在于,各车辆根据使用主观逻辑模型的局部意见向量所受到的不同因素的影响,基于加权方式确定自身针对RSUj的局部意见向量所对应的信誉值权重;并根据交互及时性以及时间窗内自身对RSUj进行信誉值评估的局部意见向量,确定一个时间周期内自身对RSUj进行信誉值评估的局部意见向量,包括:
根据时间窗内车辆Vi与RSUj相互发送通信数据的次数,以及车辆Vi与其他RSU相互发送通信数据的次数之比,确定车辆Vi与RSUj的相互作用频率IFi→j;
利用定义的新鲜度衰减函数和时间窗内车辆Vi对RSUj进行信誉值评估的局部意见向量确定一个时间周期内车辆Vi对RSUj评估的局部意见向量{bi→j,di→j,ui→j};
基于定义的新鲜度衰减函数确定车辆Vi与RSUj的交互效果,并根据车辆Vi与RSUj的交互效果更新车辆Vi与RSUj的相互作用频率IFi→j;
确定车辆Vi发送消息的距离影响因素,并利用预设的第一权重和第二权重对更新后的相互作用频率IFi→j和距离影响因素进行加权求和,得到车辆Vi针对RSUj的局部意见向量所对应的信誉值权重δi→j。
5.根据权利要求4所述的面向车联网的分层区块链共识方法,其特征在于,各车辆收集与RSUj有通信数据交互的其余车辆在一个时间周期内对RSUj进行信誉值评估的局部意见向量以及对应的信誉值权重,并利用收集到的各局部意见向量对应的信誉值权重将收集的所有局部意见向量合并为一个推荐意见,所采用的公式表达式,包括:
其中,表示车辆Vi合并的一个推荐意见中的元素;s∈S表示车辆s属于推荐车辆集合S,推荐车辆集合S是除了车辆Vi外,与RSUj有通信数据交互的其余车辆的集合;bs→j、ds→j、us→j表示在一个时间周期内车辆Vs对RSUj进行信誉值评估的局部意见向量中的元素;δs→j表示车辆Vs针对RSUj的局部意见向量所对应的信誉值权重。
6.根据权利要求5所述的面向车联网的分层区块链共识方法,其特征在于,各车辆将一个时间周期内自身对RSUj进行信誉值评估的局部意见向量与合并得到的一个推荐意见结合,所采用的公式表达式,包括:
其中,表示车辆Vi将一个时间周期内自身对RSUj进行信誉值评估的局部意见向量与合并得到的一个推荐意见结合后得到的对应元素;bi→j、di→j、ui→j表示一个时间周期内车辆Vi对RSUj评估的局部意见向量{bi→j,di→j,ui→j}中的元素;
相应的,对RSUj评估的信誉值修正表达式,包括:
其中,表示车辆Vi针对RSUj的单车初评信誉值;ε表示预定义的节点的初始信誉度,为非0正数。
7.根据权利要求1所述的面向车联网的分层区块链共识方法,其特征在于,该RSU利用公钥和自身的节点信誉值判断是否满足预设的区域委员会入选条件,若是,该RSU加入对应的区域委员会中,包括:
RSUj利用自身的公钥pkj和自身的节点信誉值Rj进行哈希运算H(pkj,Rj)得到哈希值hj;
判断RSUj的节点信誉值Rj和哈希值hj是否满足其中,hahlen(·)函数是计算给定hash的位长;
若满足,RSUj满足预设的区域委员会入选条件,被加入到所在区域的区域委员会中。
8.根据权利要求1-7任一项所述的面向车联网的分层区块链共识方法,其特征在于,针对所述双层PBFT共识结构中的一个目标区域委员会,进行区域局部共识的过程,包括:
节点RSUk接收到目标区域内的请求车辆发送的请求消息m,格式为<REQUEST,o,t,c>σc,节点RSUk将请求消息m放入目标区域的交易池中;其中,o表示具体执行的操作;t表示时间戳,c表示请求车辆编号,σ表示签名,σ的下标表示签名的主体;σc表示请求车辆签名;
进行预准备阶段,包括:目标区域委员会的区域主节点p对交易池中的请求消息分配序列号,并向所属区域委员会的所有节点广播预准备消息其中,/>是目标区域委员会的区域主节点p利用自身私钥进行的主节点签名;v表示视图序号;h表示请求消息m被分配的序列号;d表示请求消息m的摘要;
进行准备阶段,包括:节点RSUk收到预准备消息中区域主节点p的PRE-PREPARE2消息后,利用对应的公钥进行验证,验证通过后节点RSUk向所属区域委员会中包括区域主节点在内的其他节点发送一条消息,表示节点RSUk的签名消息,其中,k是节点RSUk的编号;
进行确认阶段,包括:如果节点RSUk收到了2f+1个验证通过的PREPARE2消息,进入确认阶段;对收到2f+1个验证通过的PREPARE2消息的节点组播消息其中,f表示恶意节点的数量;
回复阶段,包括:如果节点RSUk收到了2f+1个验证通过的COMMIT2消息,表明当前区域委员会中的大部分节点已经达成共识;节点RSUk发送回复消息给所属区域的区域主节点p;其中,r表示请求操作的执行结果;区域主节点p通过检查当前区域中包括自身在内有超过f+1个成员回复视图序号一致的REPLY2消息,确认该区域已达成共识;区域主节点p向第一层主节点发送请求,以将共识的数据m发给第一层主节点,开启新一轮共识请求。
9.根据权利要求8所述的面向车联网的分层区块链共识方法,其特征在于,针对所述双层PBFT共识结构中的一个目标区域委员会,进行全局共识的过程,包括:
第一层主节点按照交易池中消息的时间顺序进行全局共识,第一层主节点向所有区域主节点发送<<PRE-PREPARE1,v,h,d>,m>σi消息,其中,<<PRE-PREPARE1,v,h,d>,m>σi中σi的下标i表示第一层主节点的编号;PRE-PREPARE1为标志说明;
进行预准备阶段、准备阶段、确认阶段后,所有区域主节点将回复消息<REPLY1,v,t,c,i,r>σi直接回复给请求车辆;请求车辆收到f+1个REPLY1消息后说明共识成功;其中,回复消息<REPLY1,v,t,c,i,r>σi中的i表示区域主节点的编号;REPLY1为标志说明。
10.根据权利要求9所述的面向车联网的分层区块链共识方法,其特征在于,在该目标区域委员会的双层共识完成后,区块链网络的其余节点进行同步数据处理,包括:
当目标区域委员会的双层共识完成后,目标区域委员会的区域主节点将消息m发送给对应区域内的所有节点,对应区域内的非区域委员会节点收到消息m后进行复制同步;并且,其他区域主节点将消息m发送给对应区域内的所有节点,对应区域内的非区域委员会节点接收到消息m后进行复制同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311001897.5A CN117241242A (zh) | 2023-08-09 | 2023-08-09 | 一种面向车联网的分层区块链共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311001897.5A CN117241242A (zh) | 2023-08-09 | 2023-08-09 | 一种面向车联网的分层区块链共识方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117241242A true CN117241242A (zh) | 2023-12-15 |
Family
ID=89081523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311001897.5A Pending CN117241242A (zh) | 2023-08-09 | 2023-08-09 | 一种面向车联网的分层区块链共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117241242A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117974634A (zh) * | 2024-03-28 | 2024-05-03 | 南京邮电大学 | 一种基于证据深度学习的无锚框表面缺陷可信检测方法 |
-
2023
- 2023-08-09 CN CN202311001897.5A patent/CN117241242A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117974634A (zh) * | 2024-03-28 | 2024-05-03 | 南京邮电大学 | 一种基于证据深度学习的无锚框表面缺陷可信检测方法 |
CN117974634B (zh) * | 2024-03-28 | 2024-06-04 | 南京邮电大学 | 一种基于证据深度学习的无锚框表面缺陷可信检测方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shrestha et al. | A new type of blockchain for secure message exchange in VANET | |
Lashkari et al. | A comprehensive review of blockchain consensus mechanisms | |
Yang et al. | Blockchain-based traffic event validation and trust verification for VANETs | |
Xu et al. | SG-PBFT: A secure and highly efficient distributed blockchain PBFT consensus algorithm for intelligent Internet of vehicles | |
Dai et al. | Deep reinforcement learning and permissioned blockchain for content caching in vehicular edge computing and networks | |
Wang et al. | A survey on consensus mechanisms and mining strategy management in blockchain networks | |
CN111988381B (zh) | 一种基于HashGraph的车联网分布式信任***及信任值计算方法 | |
Wang et al. | Challenges and solutions in autonomous driving: A blockchain approach | |
Guo et al. | Proof-of-event recording system for autonomous vehicles: A blockchain-based solution | |
CN110602117B (zh) | 基于区块链的车联网节点一致性共识方法 | |
CN109360100A (zh) | 基于区块链技术的交易快速确认方法及装置 | |
Feng et al. | Blockchain-based data management and edge-assisted trusted cloaking area construction for location privacy protection in vehicular networks | |
Hildebrand et al. | A comprehensive review on blockchains for Internet of Vehicles: Challenges and directions | |
Xu et al. | μDFL: A secure microchained decentralized federated learning fabric atop IoT networks | |
CN113422805B (zh) | 一种基于可验证随机函数的分片共识方法 | |
Wang et al. | A fast and secured vehicle-to-vehicle energy trading based on blockchain consensus in the internet of electric vehicles | |
CN117241242A (zh) | 一种面向车联网的分层区块链共识方法 | |
Xu et al. | Microchain: A hybrid consensus mechanism for lightweight distributed ledger for IoT | |
CN113568972A (zh) | 一种面向图式区块链的混合共识实现装置及实现方法 | |
CN115796261A (zh) | 一种基于区块链的轻量级分组共识的联邦学习方法 | |
Arif et al. | Integration of 5G, VANETs and blockchain technology | |
Xuan et al. | ECBCM: a prestige‐based edge computing blockchain security consensus model | |
CN116017509A (zh) | 面向任务无人机网络轻量异步可证明共识方法及应用 | |
Herbadji et al. | Blockchain for internet of vehicles security | |
Diallo et al. | An improved PBFT-based consensus for securing traffic messages in VANETs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |