CN113179166B - 基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法 - Google Patents

基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法 Download PDF

Info

Publication number
CN113179166B
CN113179166B CN202110395791.2A CN202110395791A CN113179166B CN 113179166 B CN113179166 B CN 113179166B CN 202110395791 A CN202110395791 A CN 202110395791A CN 113179166 B CN113179166 B CN 113179166B
Authority
CN
China
Prior art keywords
node
message
nodes
network
cluster
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.)
Active
Application number
CN202110395791.2A
Other languages
English (en)
Other versions
CN113179166A (zh
Inventor
彭超
陈瑶
胡晨
吴文翰
芮琦霖
郭亦铭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China Normal University
Original Assignee
East China Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by East China Normal University filed Critical East China Normal University
Priority to CN202110395791.2A priority Critical patent/CN113179166B/zh
Publication of CN113179166A publication Critical patent/CN113179166A/zh
Application granted granted Critical
Publication of CN113179166B publication Critical patent/CN113179166B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提出了一种基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法,依次包括:请求转发、预准备、准备、提交和写入账本五个步骤,该方法提供了动态视图轮换和快速批量处理机制,能够提升联盟链网络在短时间内处理大量数据上链请求的能力,并且能够在共识网络中节点较多的情景下使用分区管理和分区共识机制,以较低的延迟实现数据上链,达到实时上链的效果。同时,该方法增设恶意节点监督机制,可以预防恶意节点的拜占庭行为,提升联盟链网络的鲁棒性。

Description

基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法
技术领域
本发明涉及到联盟链拜占庭容错算法,属于区块链技术领域,具体涉及一种基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法。
背景技术
随着互联网在各个行业中的广泛普及,数据的传递、存储的速度和安全性一直受到极大挑战:一方面,数据在传输时容易受到黑客的截取,或者因为网络波动,消息无法传递到目标计算机;另一方面,由于用户量激增,服务器处理数据的速度会受到极大考验,各个服务器之间数据的同步问题也会成为架构方面的考虑因素之一。
区块链的分布式共识网络具有去中心化、防止数据篡改、强依赖密码学的特点。去中心化意味着数据的处理和存储问题不再由某一个机构或组织来完成,而是由多机构,也就是多个网络中的节点共同完成,因此即使某一个网络节点被攻破也不至于数据完全丢失,符合安全性的特点;区块链网络中的每个节点都保存着整个区块链的一个拷贝,并且可以保证所有节点的拷贝相同,因此可以实现多方共识下的数据一致性,防止数据被恶意修改,符合透明开放和状态一致的特点;针对不同业务,可以编写能够自动化执行的智能合约,极大地提高了数据在区块链上交互的灵活性。但是区块链的吞吐量和确认延迟等方面存在瓶颈(比如比特币吞吐量约为平均每秒7笔,交易确认时间约为一小时)。
以实用拜占庭容错算法为代表的确定性算法可以更快地完成共识,提高区块链中数据的上链速度,因此被广泛应用于对吞吐量和延迟要求较高的联盟链系统中。虽然联盟链吞吐量比较高而且延迟低,但节点数量较多时存在通信复杂度高且可扩展性差的问题。目前已经有了对于实用拜占庭容错算法的改进算法,即高鲁棒性拜占庭容错算法。该方法在原有的实用拜占庭容错算法的基础之上,增加了节点加入和节点恢复这两个特性,提高了原实用拜占庭容错算法的鲁棒性。但是在节点数量增多、请求数量剧增时,高鲁棒性拜占庭容错算法性能会下降得很快,预防节点攻击等方面也比较薄弱,难以达到数据安全实时上链的要求。
发明内容
有鉴于此,本发明的目的是提供一种基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法,该方法能够提升联盟链网络在短时间内处理大量数据上链请求的能力,并且能够在共识网络中节点较多的情景下仍然以较低的延迟实现数据上链,达到实时上链的效果。同时,该方法可以预防恶意节点的拜占庭行为,提升联盟链网络的鲁棒性。
实现本发明目的的具体技术方案是:
一种基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法,该方法在联盟链网络中使用,网络中所有节点遵循恶意节点监督机制;网络允许动态加入节点,若有新增节点加入,则进入节点动态增加流程,增加后若节点数量超过设定阈值,则启动分区管理与分区共识机制;网络中的每条消息都包含消息内容m、m的摘要d(m)、和发送这条消息的节点对d(m)的签名sig;该方法具体包括以下步骤:
步骤1:请求转发
网络中的任意节点接收客户端的数据上链请求,请求的内容包括:o:需要上链的数据内容、t:客户端的时间戳、c:客户端编号;其中,从节点接收到请求之后转发给主节点,主节点自身也能直接接收请求;
步骤2:预准备阶段
主节点等待一个超时时间或接收到满足最大区块大小数量的数据上链请求,计算出本批次的请求从被接收到被处理的平均时间,如果超过给定阈值,则启动动态视图轮换机制;未超过给定阈值,则首先给该批次的请求分配一个编号n,对接收到的数据上链请求逐个进行正确性校验,剔除非法请求,将请求按照接收的时间顺序打包成块后进行验证,最后将定序好的数据上链请求信息连同验证结果写入预准备消息<<pre-prepare,v,n,d>,n>,其中v:视图编号,广播给网络中所有节点;
步骤3:准备阶段
从节点在收到主节点的预准备消息后,首先进行签名正确性校验,如果之前从未收到任何v,n,m相同的预准备消息,检查当前的视图与区块号信息,确认无误则接受该预准备消息,将预准备消息存入缓存,并向其他所有节点广播准备消息;
步骤4:提交阶段
从节点对接收到的准备消息进行签名正确性校验并存入缓存,直至收到超过三分之二的其他节点具有相同的v,n,m的准备消息之后,验证对应编号为n的预准备消息,并将验证结果与主节点写入预准备消息中的验证结果进行比对,验证成功则广播提交消息,否则启动主节点的动态视图轮换;
步骤5:写入账本阶段
从节点在收到超过三分之二的其他节点具有相同的v,n,m的提交消息后,将请求上链的数据写入本地账本,返回客户端数据上链成功消息,此时若网络未分区,则完成数据上链,若网络已分区,则完成数据写入支链。
进一步的,所述恶意节点监督机制:为联盟链网络中每个参与节点设置恶意行为记录值,并初始化为0,如果发现有节点有恶意行为,则将次数加一,如果检测到某个节点的恶意行为次数超过上限,则启动清理程序,将该节点从联盟链网络中删除。
进一步的,所述动态视图轮换机制:分别为两种视图轮换:第一种,当主节点有大量的数据上链任务时,向其他节点发送一条申请使用专用视图消息,从节点收到主节点的消息时,首先检查是否在同一个视图下,再检查请求的完成平均时间是否超过给定阈值,如果在同一视图下并超过阈值则向主节点发送确认消息表示同意;主节点收到了相同视图下的确认消息后,进入专用视图状态,主节点发起快速批量处理机制,达到规定时间阈值后,主节点的专用视图状态结束;第二种,当从节点检测到主节点存在异常情况时或接收到来自其他节点的视图轮换的消息之后向全网广播视图轮换消息,当序列号等于原主节点序列号加一的新主节点收到超过三分之二的其他节点的合法视图轮换消息,则向其他节点发送新视图消息,其他节点接收到新视图消息后检查签名合法性,检查通过则承认该新的主节点。
进一步的,所述快速批量处理机制:主节点进入专用视图状态后,主节点对接受到的数据上链请求按序号分桶处理,并为每个桶分配一个唯一的打包线程,每个线程独立运行;对于每个桶,当请求的数量达到阈值后,对应的线程开始执行打包,首先对接收到的数据上链请求进行正确性校验,剔除非法请求,将请求按照接收的时间顺序打包成块后进行验证,最后将定序好的数据上链请求信息连同验证结果写入一个预准备消息,放入广播队列,由主节点依次广播给网络中所有节点。
进一步的,所述节点动态增加流程:新增节点主动向现有节点发起连接;现有节点接收到新增节点的连接请求后确认同意该节点加入,然后向全网广播添加节点消息;新增节点加入后产生一个新的主节点,主节点向全网广播完成更新消息;其他节点在收到更新消息后,完成新增节点流程。
进一步的,所述分区管理与分区共识机制:使用链路状态和选举的分簇算法将网络分区,后续加入节点在最近的两个分区中随机选择一个加入,当分区节点超过设定阈值时再次运行分簇算法进行拆分;每个分区内的节点在本区域内进行共识和出块,形成一个联盟链支链,数据写入支链后,各支链经由分区主节点向主链提交锚定请求,主链验证接收到支链的锚定请求之后核查支链提交的签名,核验无误后主链节点按照共识规则进行背书和出块,将数据写入主链,最终完成数据上链。
进一步的,所述基于链路状态和选举的分簇算法:当网络中节点数目达到阈值时,每个节点都向其他节点发送自己的路由信息;各个节点收到其他节点的路由信息后,开始运行链路状态路由算法,使用迪杰斯特拉最短路径算法;运行结束后,得到其它节点的最短路径;得到最短路径后,每个节点开始生成一个随机数,然后比较生成的随机数和预设的随机数阈值,如果大于预设的阈值,则意味着该节点自动选举成为了簇头;簇头向其它所有节点发送入簇邀请消息;普通节点收到所有簇头的请求后,选出路径延迟最低的一个簇,向这个簇发送同意入簇的消息;簇头接收到回复后,把新加入的节点的信息广播到自己的簇内;簇内节点更新自己的路由表信息,普通节点加入簇的过程完成;此时网络完成分区,每个簇即为一个区,每个簇的簇头即为该区的主节点,簇内的其他节点为该区的从节点。
有益效果:本发明提出一种基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法,与现有技术相比,本发明具有以下优点:
1)动态视图轮换,本发明在原有高鲁棒性拜占庭容错方法的视图轮换基础上,设计了更高效的机制,在系统承受较多的请求冲击时,主节点能够主动发起专用视图请求,从而避免在频繁的视图轮换过程中大量的网络通信开销造成的网络延迟。
2)快速批量处理,在预准备阶段配合动态视图轮换机制,主节点采用多线程方式对数据上链请求进行打包,充分发挥主节点CPU的多核性能,使得打包速度提高,大大加快了上链速度。
3)恶意节点监督,为每个节点设置信任记录,并定期处理隐患节点,用于提升联盟链网络的安全性。
4)分区管理与分区共识,当共识网络中节点较多,数据上链速度下降时,网络中的节点进行分区,分区后各个区域内的节点自行进行共识流程。通过把共识流程分散到各个分区内,提升整个联盟链网络的共识效率,从而提高数据上链速度。
附图说明
图1为本发明流程图;
图2为本发明恶意节点监督机制流程图;
图3为本发明主节点申请专用视图示意图;
图4为本发明主节点异常视图变更示意图;
图5为本发明快速批量处理机制示意图;
图6为本发明网络分区管理示意图;
图7为本发明基于链路状态和选举的分簇算法流程图;
图8为本发明未开启专用视图的实验效果图;
图9为本发明开启专用视图后的实验效果图;
图10为本发明节点数为50时网络运行情况示意图;
图11为本发明节点数提升至100时网络运行情况示意图;
图12为本发明分区管理与分区共识机制开启后加入节点到50时分区情况示意图;
图13为本发明分区内节点数到达20时再次执行分区情况示意图;
图14为本发明应付短时间内大量数据上链请求方法整体执行情况示意图。
具体实施方式
根据具体的实施例和附图,对本发明涉及到的相关的技术进行深入详细地说明和讲解。本发明除了以下即将提及的内容以外,其余的技术和实施条件相关方法均是本领域及其相关领域的普遍知识和公认常识。
本发明提出一种基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法,该方法在联盟链网络中使用,网络中所有节点遵循恶意节点监督机制;网络允许动态加入节点,若有新增节点加入,则进入节点动态增加流程,增加后若节点数量超过设定阈值,则启动分区管理与分区共识机制;网络中的每条消息都包含消息内容m、m的摘要d(m)、和发送这条消息的节点对d(m)的签名sig;该方法具体包括以下步骤:
步骤1:请求转发
网络中的任意节点接收客户端的数据上链请求,请求的内容包括:o:需要上链的数据内容、t:客户端的时间戳、c:客户端编号;其中,从节点接收到请求之后转发给主节点,主节点自身也能直接接收请求;
步骤2:预准备阶段
主节点等待一个超时时间或接收到满足最大区块大小数量的数据上链请求,计算出本批次的请求从被接收到被处理的平均时间,如果超过给定阈值,则启动动态视图轮换机制;未超过给定阈值,则首先给该批次的请求分配一个编号n,对接收到的数据上链请求逐个进行正确性校验,剔除非法请求,将请求按照接收的时间顺序打包成块后进行验证,最后将定序好的数据上链请求信息连同验证结果写入预准备消息<<pre-prepare,v,n,d>,m>,其中v:视图编号,广播给网络中所有节点;
步骤3:准备阶段
从节点在收到主节点的预准备消息后,首先进行签名正确性校验,如果之前从未收到任何v,n,m相同的预准备消息,检查当前的视图与区块号信息,确认无误则接受该预准备消息,将预准备消息存入缓存,并向其他所有节点广播准备消息;
步骤4:提交阶段
从节点对接收到的准备消息进行签名正确性校验并存入缓存,直至收到超过三分之二的其他节点具有相同的v,n,m的准备消息之后,验证对应编号为n的预准备消息,并将验证结果与主节点写入预准备消息中的验证结果进行比对,验证成功则广播提交消息,否则启动主节点的动态视图轮换;
步骤5:写入账本阶段
从节点在收到超过三分之二的其他节点具有相同的v,n,m的提交消息后,将请求上链的数据写入本地账本,返回客户端数据上链成功消息,此时若网络未分区,则完成数据上链,若网络已分区,则完成数据写入支链。
如图2所示,所述恶意节点监督机制:为联盟链网络中每个参与节点设置恶意行为记录值(misbehaviorRecord),并初始化为0,如果发现有节点有恶意行为,则将次数加一,如果检测到某个节点的恶意行为次数超过上限,则启动清理程序,将该节点从联盟链网络中删除。
这里的恶意行为会发生在如下情形:
1)当发生视图变更时,说明上一个主节点存在异常情况,给上一个主节点的恶意行为记录值加一;
2)节点在每一次收到消息并且检查消息的签名是否正确时,如果消息正确性检查没有通过,那么给发送消息的节点的恶意行为记录值加一;
3)在步骤3提交阶段,从节点检查是否收到了超过三分之二的其他节点的相同消息时,把相同的消息从消息集合中拿出来并且计数,如果数量不足消息总数减一,那么找出没有发送相同消息给本节点的那些节点,并且给那些节点的恶意行为记录值加一。
所述动态视图轮换机制:分别为两种视图轮换:第一种,如图3所示,当主节点有大量的数据上链任务时,向其他节点发送一条申请(DVRequest)使用专用视图消息,从节点收到主节点的消息时,首先检查是否在同一个视图下,再检查请求的完成平均时间是否超过给定阈值,如果在同一视图下并超过阈值则向主节点发送确认消息(DVAck)表示同意;主节点收到了相同视图下的确认消息后,进入专用视图状态,主节点发起快速批量处理机制,达到规定时间阈值后,主节点的专用视图状态结束;第二种,如图4所示,其中Replica0为原主节点,Replica1、Replica2、Replica3为从节点,当从节点检测到主节点存在异常情况时或接收到来自其他节点的视图轮换的消息之后向全网广播视图轮换消息(view-change),当序列号等于原主节点序列号加一的新主节点,即Replica1,收到超过三分之二的其他节点的合法视图轮换确认消息(View-change-ack),则向其他节点发送新视图消息(new-view),其他节点接收到新视图消息后检查签名合法性,检查通过则承认该新的主节点。
如图5所示,所述快速批量处理机制:原先主节点的打包方式相当于单线程形式,对收到的请求按照时间顺序进行打包;主节点进入专用视图状态后,主节点对接受到的数据上链请求按序号分桶处理,如图中示例,把接收到消息的时间戳对4取余就可以得到key值,再将请求消息存到相应key值的集合里就能将所有接收到的消息平均分散到4个桶里,为每个桶分配一个唯一的打包线程,每个线程独立运行;对于每个桶,当请求的数量达到阈值后,对应的线程开始执行打包,首先对接收到的数据上链请求进行正确性校验,剔除非法请求,将请求按照接收的时间顺序打包成块后进行验证,最后将定序好的数据上链请求信息连同验证结果写入一个预准备消息,放入广播队列,由主节点依次广播给网络中所有节点。
所述节点动态增加流程:新增节点主动向现有节点发起连接;现有节点接收到新增节点的连接请求后确认同意该节点加入,然后向全网广播添加节点消息;新增节点加入后产生一个新的主节点,主节点向全网广播完成更新消息;其他节点在收到更新消息后,完成新增节点流程。
所述分区管理与分区共识机制:使用链路状态和选举的分簇算法将网络分区,如图6所示,给出了节点分区的示意图,后续加入节点在最近的两个分区中随机选择一个加入,当分区节点超过设定阈值时再次运行分簇算法进行拆分;每个分区内的节点在本区域内进行共识和出块,形成一个联盟链支链,数据写入支链后,各支链经由分区主节点向主链提交锚定请求,主链验证接收到支链的锚定请求之后核查支链提交的签名,核验无误后主链节点按照共识规则进行背书和出块,将数据写入主链,最终完成数据上链。
所述基于链路状态和选举的分簇算法:如图7所示,网络中允许节点的动态加入,当网络中节点数目达到给定阈值时,网络中的节点进行分区,每个节点都向其他节点发送自己的路由信息;各个节点收到其他节点的路由信息后,运行迪杰斯特拉最短路径算法得到到达其它节点的最短路径;每个节点生成一个随机数,然后比较生成的随机数和预设的随机数阈值,如果大于预设的阈值,则意味着该节点自动选举成为了簇头;簇头向其它所有节点发送入簇邀请消息;普通节点收到所有簇头的请求后,选出路径延迟最低的一个簇,向这个簇发送同意入簇的消息;簇头接收到回复后,把新加入的节点的信息广播到自己的簇内;簇内节点更新自己的路由表信息,普通节点加入簇的过程完成;此时网络完成分区,每个簇即为一个区,每个簇的簇头即为该区的主节点,簇内的其他节点为该区的从节点。
为了验证本发明的实际效果,设计了如下实验。使用java语言实现了高鲁棒性拜占庭容错方法和本发明的方法进行对比。实验环境配置为Intel Core i5处理器、3.2GHz主频和12G内存。
为了验证在主节点在应对短时间内大量数据上链请求时,本发明中的专用视图和快速批量处理机制的性能,设置模拟客户端发送请求的间隔为2ms,主节点打包的时间间隔为300ms,请求最大超时时间为2000ms,并设置了每秒显示一次打包信息和模拟客户端状态报告,如果从节点发起了视图变更,则显示一行“id:1issuedviewchange,,,,”的消息。
不开启专用视图时运行状态如图8所示,可以看到系统正常运行了4到5秒后,备份节点全部开始发起视图变更;再观察客户端报告,可以看到请求完成率在慢慢降低。对于客户端来说,上链失败率增高,上链速度受到很大影响。延迟没有明显变化是因为模拟客户端最后根本收不到回复消息。
开启专用视图时运行情况如图9所示,可以看到运行较长时间后客户端的请求完成率依然接近百分之百,打包的节点还是id为0的主节点,整个共识网络的运行非常稳定。因此可以断定,共识网络的性能有了很大的提升。
为了验证分区管理与分区共识机制的有益效果,首先设置模拟客户端每100ms发送一次请求,节点数目为50,网络运行情况如图10所示:可以看到共识网络运行稳定,延迟在310ms左右。当把网络总节点数量提升至100时,网络运行情况如图11所示:可以看到共识网络运行稳定,请求完成率始终保持非常高的水平,但是请求完成的平均延迟达到了接近600ms,所以可以推断出节点的增加是不利于数据的快速上链的,节点越多延迟越高。接下来,开启分区管理与分区共识机制,首先每200ms加入一个节点,加到50个节点后,开始执行分区;分区完成后,模拟客户端开始不间断发送请求;7秒后开始每隔一秒加入一个新节点,图12是节点加入网络的过程、选举出的簇头信息和每个节点加入新的簇后的信息(最下方缩进的若干行,包括它的新id,簇内节点总数以及所在簇的簇头的IP):图13显示的是分区后接收请求并开始稳定运行共识算法的过程。在78号节点加入网络时,加入的簇超过了20个节点,再次执行分区,紧接着的两行是两个新簇的簇头信息,再接下来的19行是普通节点各自加入两个簇头的信息;再次分区后共识又可以继续进行,可以看到共识网络运行稳定,共识达成的延迟稳定在250ms左右,并且完成率接近百分之百,较没有分区管理与分区共识机制时有了很大的提升。
为了验证本发明方法整体的鲁棒性和可用性,设置:每0.5s网络中加入一个节点,到了51个时执行分区;分区完成后,模拟客户端每100ms发送一个请求,这时请求数量属于比较少的;再过4秒后,客户端开始发送大量的请求到其中一个分区,发送间隔为2ms(这个请求数量足够引发主节点发起专用视图申请)。如图14所示,可以看到已经有60多个节点加入到共识网络中来,而且还在不停地加入。因为请求数量太大,共识网络处理不过来,所以可以看见客户端报告显示的平均完成率只有百分之三四十,并且还在不断降低,延迟达到了一千多毫秒。主节点感知到延迟增大,就发起了专用视图请求;从节点收到请求后,响应了主节点的请求,可以看见图中的连续的14行加粗部分,就是从节点做出响应的信息。从节点响应完成后,可以看到一行行的“usebatch packing”信息,这意味着主节点启动快速批量处理机制,开始批量处理请求。后面的客户端状态报告显示了完成率没有下降并且逐步稳定,甚至有些许提升,之后的节点也能够正常加入网络。

Claims (6)

1.一种基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法,其特征在于:所述方法在联盟链网络中使用,网络中所有节点遵循恶意节点监督机制;网络允许动态加入节点,若有新增节点加入,则进入节点动态增加流程,若增加后节点数量超过设定阈值,则启动分区管理与分区共识机制;网络中的每条消息都包含消息内容
Figure DEST_PATH_IMAGE001
Figure 673620DEST_PATH_IMAGE001
的摘要
Figure 409495DEST_PATH_IMAGE002
、和发送这条消息的节点对
Figure 546078DEST_PATH_IMAGE002
的签名
Figure DEST_PATH_IMAGE003
;该方法具体包括以下步骤:
步骤1:请求转发
网络中的任意节点接收客户端的数据上链请求,请求的内容包括:
Figure 887061DEST_PATH_IMAGE004
:需要上链的数据内容、
Figure DEST_PATH_IMAGE005
:客户端的时间戳、
Figure 838616DEST_PATH_IMAGE006
:客户端编号;其中,从节点接收到请求之后转发给主节点,主节点自身也能直接接收请求;
步骤2:预准备阶段
主节点等待一个超时时间或接收到满足最大区块大小数量的数据上链请求,计算出本批次的请求从被接收到被处理的平均时间,如果超过给定阈值,则启动动态视图轮换机制;未超过给定阈值,则首先给该批次的请求分配一个编号
Figure DEST_PATH_IMAGE007
,对接收到的数据上链请求逐个进行正确性校验,剔除非法请求,将请求按照接收的时间顺序打包成块后进行验证,最后将定序好的数据上链请求信息连同验证结果写入预准备消息
Figure 796207DEST_PATH_IMAGE008
,其中
Figure DEST_PATH_IMAGE009
:视图编号,广播给网络中所有节点;
步骤3:准备阶段
从节点在收到主节点的预准备消息后,首先进行签名正确性校验,如果之前从未收到任何
Figure 205323DEST_PATH_IMAGE010
相同的预准备消息,检查当前的视图与区块号信息,确认无误则接受该预准备消息,将预准备消息存入缓存,并向其他所有节点广播准备消息;
步骤4:提交阶段
从节点对接收到的准备消息进行签名正确性校验并存入缓存,直至收到超过三分之二的其他节点具有相同的
Figure 463129DEST_PATH_IMAGE010
的准备消息之后,验证对应编号为
Figure 361815DEST_PATH_IMAGE007
的预准备消息,并将验证结果与主节点写入预准备消息中的验证结果进行比对,验证成功则广播提交消息,否则启动主节点的动态视图轮换;
步骤5:写入账本阶段
从节点在收到超过三分之二的其他节点具有相同的
Figure 72282DEST_PATH_IMAGE010
的提交消息后,将请求上链的数据写入本地账本,返回客户端数据上链成功消息,此时若网络未分区,则完成数据上链,若网络已分区,则完成数据写入支链;其中:
所述动态视图轮换机制:分别为两种视图轮换,第一种,当主节点有大量的数据上链任务时,向其他节点发送一条申请使用专用视图消息,从节点收到主节点的消息时,首先检查是否在同一个视图下,再检查请求的完成平均时间是否超过阈值,如果在同一视图下并超过阈值则向主节点发送确认消息表示同意;主节点收到了相同视图下的确认消息后,进入专用视图状态,主节点发起快速批量处理机制,达到规定时间阈值后,主节点的专用视图状态结束;第二种,当从节点检测到主节点存在异常情况时或接收到其他节点的视图轮换的消息之后向全网广播视图轮换消息,当序列号等于原主节点序列号加一的新主节点收到超过三分之二的其他节点的合法视图轮换消息,则向其他节点发送新视图消息,其他节点接收到新视图消息后检查签名合法性,检查通过则承认该新的主节点。
2.根据权利要求1所述的联盟链数据安全实时上链方法,其特征在于,所述恶意节点监督机制:为联盟链网络中每个参与节点设置恶意行为记录值,并初始化为0,如果发现有节点有恶意行为,则将次数加一,如果检测到某个节点的恶意行为次数超过上限,则启动清理程序,将该节点从联盟链网络中删除。
3.根据权利要求1所述的联盟链数据安全实时上链方法,其特征在于,所述快速批量处理机制:主节点进入专用视图状态后,主节点对接受到的数据上链请求按序号分桶处理,并为每个桶分配一个唯一的打包线程,每个线程独立运行;对于每个桶,当请求的数量达到阈值后,对应的线程开始执行打包,首先对接收到的数据上链请求进行正确性校验,剔除非法请求,将请求按照接收的时间顺序打包成块后进行验证,最后将定序好的数据上链请求信息连同验证结果写入一个预准备消息,放入广播队列,由主节点依次广播给网络中所有节点。
4.根据权利要求1所述的联盟链数据安全实时上链方法,其特征在于,所述节点动态增加流程:新增节点主动向现有节点发起连接;现有节点接收到新增节点的连接请求后确认同意该节点加入,然后向全网广播添加节点消息;新增节点加入后产生一个新的主节点,主节点向全网广播完成更新消息;其他节点在收到更新消息后,完成新增节点流程。
5.根据权利要求1所述的联盟链数据安全实时上链方法,其特征在于,所述分区管理与分区共识机制:使用基于链路状态和选举的分簇算法将网络分区,后续加入节点在最近的两个分区中随机选择一个加入,当分区节点超过设定阈值时再次运行分簇算法进行拆分;每个分区内的节点在本区域内进行共识和出块,形成一个联盟链支链,数据写入支链后,各支链经由分区主节点向主链提交锚定请求,主链验证接收到支链的锚定请求之后核查支链提交的签名,核验无误后主链节点按照共识规则进行背书和出块,将数据写入主链,最终完成数据上链。
6.根据权利要求5所述的联盟链数据安全实时上链方法,其特征在于,所述基于链路状态和选举的分簇算法:当网络中节点数目达到阈值时,每个节点都向其他节点发送自己的路由信息;各个节点收到其他节点的路由信息后,开始运行链路状态路由算法,使用迪杰斯特拉最短路径算法;运行结束后,得到其它节点的最短路径;得到最短路径后,每个节点开始生成一个随机数,然后比较生成的随机数和预设的随机数阈值,如果大于预设的阈值,则意味着该节点自动选举成为了簇头;簇头向其它所有节点发送入簇邀请消息;普通节点收到所有簇头的请求后,选出路径延迟最低的一个簇,向这个簇发送同意入簇的消息;簇头接收到回复后,把新加入的节点的信息广播到自己的簇内;簇内节点更新自己的路由表信息,普通节点加入簇的过程完成;此时网络完成分区,每个簇即为一个区,每个簇的簇头即为该区的主节点,簇内的其他节点为该区的从节点。
CN202110395791.2A 2021-04-13 2021-04-13 基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法 Active CN113179166B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110395791.2A CN113179166B (zh) 2021-04-13 2021-04-13 基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110395791.2A CN113179166B (zh) 2021-04-13 2021-04-13 基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法

Publications (2)

Publication Number Publication Date
CN113179166A CN113179166A (zh) 2021-07-27
CN113179166B true CN113179166B (zh) 2022-07-08

Family

ID=76923546

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110395791.2A Active CN113179166B (zh) 2021-04-13 2021-04-13 基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法

Country Status (1)

Country Link
CN (1) CN113179166B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115632800B (zh) * 2022-12-22 2023-05-05 广东省电信规划设计院有限公司 基于区块链共识的物联网源端数据存储方法及装置
CN117319422B (zh) * 2023-11-28 2024-02-02 天津市城市规划设计研究总院有限公司 一种城市规划领域物联网数据的区块链成块方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110796547A (zh) * 2019-10-30 2020-02-14 桂林电子科技大学 一种基于联盟区块链的改进的实用拜占庭容错系统
CN111612455A (zh) * 2020-04-21 2020-09-01 国网江苏省电力有限公司电力科学研究院 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质
WO2020258831A1 (zh) * 2019-06-28 2020-12-30 创新先进技术有限公司 用于区块链系统中的主节点切换处理的方法及装置
WO2020258912A1 (zh) * 2019-06-26 2020-12-30 京东数字科技控股有限公司 一种区块链共识方法、装置和系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019170169A2 (en) * 2019-06-05 2019-09-12 Alibaba Group Holding Limited Consensus system and method
CN111478795B (zh) * 2020-03-06 2022-08-12 重庆邮电大学 一种基于混合拜占庭容错的联盟区块链网络共识方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020258912A1 (zh) * 2019-06-26 2020-12-30 京东数字科技控股有限公司 一种区块链共识方法、装置和系统
WO2020258831A1 (zh) * 2019-06-28 2020-12-30 创新先进技术有限公司 用于区块链系统中的主节点切换处理的方法及装置
CN110796547A (zh) * 2019-10-30 2020-02-14 桂林电子科技大学 一种基于联盟区块链的改进的实用拜占庭容错系统
CN111612455A (zh) * 2020-04-21 2020-09-01 国网江苏省电力有限公司电力科学研究院 一种面向用电信息保护的拜占庭容错联盟链共识方法及其系统、存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一种区块链实用拜占庭容错算法的改进;韩镇阳等;《计算机应用与软件》;20200212(第02期);全文 *
优化可扩展的拜占庭容错共识算法;韩嗣诚等;《物联网学报》(第02期);全文 *

Also Published As

Publication number Publication date
CN113179166A (zh) 2021-07-27

Similar Documents

Publication Publication Date Title
AU2019203861B2 (en) System and method for ending view change protocol
US11907174B2 (en) Systems and methods for managing data generation, storage, and verification in a distributed system having a committee of validator nodes
AU2019203862B2 (en) System and method for ending view change protocol
CN111131209B (zh) 一种改进的高效共识方法、系统、计算机设备及存储介质
AU2018430192A1 (en) Blockchain system and method
CN111614468B (zh) 一种区块链共识方法及系统
CN113179166B (zh) 基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法
US8073897B2 (en) Selecting values in a distributed computing system
CN107040594A (zh) 基于pbft的许可区块链节点准入的方法及装置
Danezis et al. Blockmania: from block dags to consensus
CN111614708B (zh) 一种基于区块链的交易系统
CN111682942B (zh) 一种应用于许可链的二元加权拜占庭容错共识方法
US11200123B2 (en) Consensus process recovery method and related node
Moniz et al. RITAS: Services for randomized intrusion tolerance
CN114218612A (zh) 一种适用于联盟链高频交易场景的共识方法
CN112395113A (zh) 实用拜占庭容错共识方法及装置、可读存储介质
CN110730241B (zh) 面向全局规模的区块链基础设施
Tennage et al. Baxos: Backing off for robust and efficient consensus
Stathakopoulou On scalability and performance of permissioned blockchain systems
Chen Scaling byzantine fault-tolerant consensus with optimized shading scheme
CN112162866B (zh) 基于相对时间的异构执行体程序同步方法及装置
CN113765671A (zh) 一种区块链节点热重启的方法及装置
KR20210080818A (ko) 에이전트 기반의 블록체인 네트워크 및 상기 네트워크의 전처리 방법
Hurfin et al. An adaptive Fast Paxos for making quick everlasting decisions
Xu et al. An Improved Practical Byzantine Fault Tolerance Consensus Algorithm

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
GR01 Patent grant
GR01 Patent grant