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

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

【技术实现步骤摘要】
基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法
本专利技术涉及到联盟链拜占庭容错算法,属于区块链
,具体涉及一种基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法。
技术介绍
随着互联网在各个行业中的广泛普及,数据的传递、存储的速度和安全性一直受到极大挑战:一方面,数据在传输时容易受到黑客的截取,或者因为网络波动,消息无法传递到目标计算机;另一方面,由于用户量激增,服务器处理数据的速度会受到极大考验,各个服务器之间数据的同步问题也会成为架构方面的考虑因素之一。区块链的分布式共识网络具有去中心化、防止数据篡改、强依赖密码学的特点。去中心化意味着数据的处理和存储问题不再由某一个机构或组织来完成,而是由多机构,也就是多个网络中的节点共同完成,因此即使某一个网络节点被攻破也不至于数据完全丢失,符合安全性的特点;区块链网络中的每个节点都保存着整个区块链的一个拷贝,并且可以保证所有节点的拷贝相同,因此可以实现多方共识下的数据一致性,防止数据被恶意修改,符合透明开放和状态一致的特点;针对不同业务,可以编写能够自动化执行的智能合约,极大地提高了数据在区块链上交互的灵活性。但是区块链的吞吐量和确认延迟等方面存在瓶颈(比如比特币吞吐量约为平均每秒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.一种基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法,其特征在于:所述方法在联盟链网络中使用,网络中所有节点遵循恶意节点监督机制;网络允许动态加入节点,若有新增节点加入,则进入节点动态增加流程,若增加后节点数量超过设定阈值,则启动分区管理与分区共识机制;网络中的每条消息都包含消息内容m、m的摘要d(m)、和发送这条消息的节点对d(m)的签名sig;该方法具体包括以下步骤:/n步骤1:请求转发/n网络中的任意节点接收客户端的数据上链请求,请求的内容包括:o:需要上链的数据内容、t:客户端的时间戳、c:客户端编号;其中,从节点接收到请求之后转发给主节点,主节点自身也能直接接收请求;/n步骤2:预准备阶段/n主节点等待一个超时时间或接收到满足最大区块大小数量的数据上链请求,计算出本批次的请求从被接收到被处理的平均时间,如果超过给定阈值,则启动动态视图轮换机制;未超过给定阈值,则首先给该批次的请求分配一个编号n,对接收到的数据上链请求逐个进行正确性校验,剔除非法请求,将请求按照接收的时间顺序打包成块后进行验证,最后将定序好的数据上链请求信息连同验证结果写入预准备消息<<pre-prepare,v,n,d>,m>,其中v:视图编号,广播给网络中所有节点;/n步骤3:准备阶段/n从节点在收到主节点的预准备消息后,首先进行签名正确性校验,如果之前从未收到任何v,n,m相同的预准备消息,检查当前的视图与区块号信息,确认无误则接受该预准备消息,将预准备消息存入缓存,并向其他所有节点广播准备消息;/n步骤4:提交阶段/n从节点对接收到的准备消息进行签名正确性校验并存入缓存,直至收到超过三分之二的其他节点具有相同的v,n,m的准备消息之后,验证对应编号为n的预准备消息,并将验证结果与主节点写入预准备消息中的验证结果进行比对,验证成功则广播提交消息,否则启动主节点的动态视图轮换;/n步骤5:写入账本阶段/n从节点在收到超过三分之二的其他节点具有相同的v,n,m的提交消息后,将请求上链的数据写入本地账本,返回客户端数据上链成功消息,此时若网络未分区,则完成数据上链,若网络已分区,则完成数据写入支链。/n...

【技术特征摘要】
1.一种基于高鲁棒性拜占庭容错的联盟链数据安全实时上链方法,其特征在于:所述方法在联盟链网络中使用,网络中所有节点遵循恶意节点监督机制;网络允许动态加入节点,若有新增节点加入,则进入节点动态增加流程,若增加后节点数量超过设定阈值,则启动分区管理与分区共识机制;网络中的每条消息都包含消息内容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.根据权利要求1所述的联盟链数据安全实时上链方法,其特征在于,所述恶意节点监督机制:为联盟链网络中每个参与节点设置恶意行为记录值,并初始化为0,如果发现有节点有恶意行为,则将次数加一,如果检测到某个节点的恶意行为次数超过上限,则启动清理程序,将该节点从联盟链网络中删除。


3.根据权利要求1所述的联盟链数据安全实时上链方法,其特征在于,所述动态视图轮换机制:分别为两种视图轮换,第一种,当主节点有大量的数据上链任务时,向其他节点发送一条申请使用专用视图消息,从节点收到主节点的消息时,首先检查是否在同一个视图下,再检查请求的完成平均时间是否超过阈值,如果在同一视图下并超过阈值则向主节点发送确认消息表示同意;主...

【专利技术属性】
技术研发人员:彭超陈瑶胡晨吴文翰芮琦霖郭亦铭
申请(专利权)人:华东师范大学
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1