一种联盟链网络下采用异步方式的节点共识验证方法技术

技术编号:14938716 阅读:87 留言:0更新日期:2017-04-01 00:31
本发明专利技术公开了一种联盟链网络下采用异步方式的节点共识验证方法,每个节点从缓存队列开头取出交易请求作为待提交的交易序列,然后使用门限加密对该序列进行加密;每个节点将加密的交易序列广播出去,使用纠删码来确保传输消息的完整性,使用Merkle树来确保不同节点的消息一致性;所有节点使用二进制拜占庭共识协议来对交易序列进行投票达成共识,每个节点等待本地收到所有投票通过的交易序列,然后使用门限解密对其进行解密,最终获得解密后的交易信息作为本周期内写入区块的交易请求。本发明专利技术完全去中心化,系统不存在超时机制,广播消息完全依赖网络带宽,和常用的同步拜占庭容错共识方法相比在网络中有大量节点时具有更高的网络吞吐量。

【技术实现步骤摘要】

本专利技术属于区块链
,具体涉及一种联盟链网络下采用异步方式的节点共识验证方法
技术介绍
区块链技术具有天然的去中心化特征,可以通过共识算法能够实现各网络节点间的互通互信。区块链中的联盟链是由若干节点合作维护的一条区块链,外界的节点想要动态加入联盟需要获得联盟链中节点的许可。在具有大量节点的网络中,节点之间是不信任的,网络连接也变得不可预测,共识协议变得愈发重要。容错协议能够给网络提供强大的安全性,保证了网络的活跃度。传统的同步拜占庭容错协议依赖于超时机制保证网络的活跃度,由于实际网络存在波动,网络带宽也在变化,传递中消息可能丢失,需要在本地设置一个时钟,超过某个时间则使领导节点重新发送消息。而设置的时间参数难度较大,参数较小,消息可能不停的重复发送;参数较大,消息可能在途中已经丢失,而子节点却不能及时知道消息已经丢失,最终结果还是要重发消息。传统的同步拜占庭容错协议不是完全去中心化的,系统中存在一个领导节点,共识消息由领导节点接收以及发出。在每一个时间段系统按顺序选择一个领导节点,某一刻网络带宽变大,其他子节点无法接受领导节点发布的消息,认为领导节点的消息已丢失,会选出下一个领导节点,这样攻击者可能控制带宽使系统一直处于选举领导节点的过程中而陷入死循环,系统将无法正常传递消息。
技术实现思路
鉴于上述,本专利技术提供了一种联盟链网络下采用异步方式的节点共识验证方法,没有领导节点,是完全去中心化的,在网络带宽变化时,节点接收消息不会受到影响;系统不存在超时机制,忽略实时时钟,广播消息的处理过程完全依赖网络带宽,在网络带宽较大时,系统可以获得很好的吞吐量。一种联盟链网络下采用异步方式的共识验证方法,包括如下步骤:(1)构建联盟链网络下采用异步方式实现共识验证的系统运行框架;(2)当交易信息来临时,网络中的节点把接收到的交易信息作为输入并储存于缓冲区中;(3)节点从缓存队列开头取出第一份交易信息作为自己提出的交易请求序列,并对该序列进行加密;(4)节点对加密后的交易请求序列进行广播,在广播过程中使用纠删码来确保传输消息的完整性,使用Merkle树来确保不同节点的消息一致性;(5)节点采用二进制拜占庭共识协议对接收到的交易请求序列进行投票,达成共识后对序列进行解密,最终获得本周期内写入区块的交易信息。所述步骤(1)的具体实现方法为:首先,在联盟链网络中布置一定量的节点,任意两个节点之间存在可信任的点对点通道,节点通过建立公钥和秘钥的形式与受信任的其他节点进行交互;其次,所述节点把收到的交易信息作为输入,目标是在交易信息上达成共识并提交交易请求序列;进而,保证联盟链网络中最多存有f个错误节点,且满足3f+1≤N,N为节点总数。所述步骤(2)的具体实现方法为:当交易信息来临时,节点把接收到的交易信息作为输入并储存在缓冲区中;节点的缓冲区是无界的,若节点中存入大小为B的交易信息,该交易信息被分割成N份,每份的大小为B/N,N为节点总数;每个节点存的交易信息内容相同但顺序不同,若一个正确节点能够输出一个交易信息,则每个正确节点都能够输出一个交易信息。所述步骤(3)的具体实现方法为:首先,由于每个节点缓冲区内存放的交易信息顺序不同,每个节点从缓存队列开头提取出第一份交易信息作为待广播的交易请求序列,所以各节点广播的交易信息各不相同;其次,节点采用门限加密方法对交易请求序列进行加密,所述门限加密方法是使用全局公钥加密消息,每个节点使用私钥对密文进行解密获得解密碎片,一定数量的解密碎片拼凑在一起就能获得原始消息,这样网络中节点必须一起工作才能解密,只要大于错误节点数量的正确节点计算解密出密文,明文便可以恢复。所述步骤(4)的具体实现方法为:首先,节点将需要广播的交易请求序列分成多个数据块并加入一定的校验块,这样即使在广播过程中有部分交易信息丢失,还是能够保证每个节点接收到尽量多原有交易信息的概率尽可能大;其次,节点对本地存储的交易信息通过哈希过程建立起Merkle树的形式,所述Merkle树用于检查节点之间交易消息的一致性,只需要通过判断Merkle树的根值;节点在需要广播的交易请求序列中加入该根值,如果发出方节点的交易信息根值与接收方节点的交易信息根值不一致,则接收方节点放弃该交易请求序列,若一致接收方节点则广播出自己已接收到的回执,从而确保发出方的交易信息和接收方的交易信息是相同的。所述步骤(5)的具体实现方法为:节点接收到交易请求序列后采用二进制拜占庭共识协议进行投票,基于少数服从多数的原则决定该交易请求序列是否可以加入提交队列,每个节点等待自己接收到的所有交易请求序列均投票通过后便可提交,进而通过门限解密方法对这些交易请求序列进行解密后最终得到本周期内写入区块的交易信息。本专利技术方法能够在联盟链场景下采用异步方式实现各节点的共识验证,联盟链网络系统完全去中心化,不存在超时机制,不用调节时间参数,不需要考虑网络波动,能够抓取网络可用带宽,广播消息完全依赖网络带宽;在带宽相对大时,本专利技术能够保证较高的网络吞吐量,系统具有安全性,和常用的同步拜占庭容错共识方法相比在网络中有大量节点时具有更高的网络吞吐量。附图说明图1为本专利技术中提取交易序列及加密序列的流程示意图。图2为本专利技术中采用纠删码和Merkle树保证交易信息完整一致性的流程示意图。图3为本专利技术中投票共识及解密序列的流程示意图。图4为本专利技术共识方法的总体流程示意图。具体实施方式为了更为具体地描述本专利技术,下面结合附图及具体实施方式对本专利技术的技术方案进行详细说明。本专利技术在联盟链场景下采用异步方式的节点共识验证方法,包括如下步骤:(1)构建联盟链场景下采用异步方式实现共识验证的系统运行框架。联盟链中存在一定量的节点,每两个节点之间存在可信任的点对点通道,节点可以与受信任的其他节点进行交互。若联盟链中总共布置N个点,P0至Pn-1,这N个节点把收到的交易信息作为输入,目标是在交易信息上达成共识提交请求交易序列;联盟链中最多有f个错误节点,且满足3f+1≤N,节点通过建立公钥和秘钥可以与受信任的其他节点进行交互。(2)当交易信息来临时,节点把接收到的交易作为输入并将它们储存在缓冲区。节点的缓冲区是无界的,节点中存入大小为B的交易信息,这些交易信息分割成N份,每份有交易信息B/N个,每个节点存的信息内容相同但顺序不同;一个正确的节点能够输出一个交易信息,则每个正确的节点都能够输出一个交易信息。(3)节点从缓存队列开头取出第一份交易请求作为自己提出的待提交交易序列,使用门限加密对该序列进行加密。本步骤过程如图1所示,由于每个节点缓冲区内存放的信息顺序不同,每个节点取相应的缓存队列开头的第一份交易请求广播出去,所以每个节点广播的信息各不相同,所涉及的加密方法为门限加密方法TPKE,该门限加密的方法是使用全局公钥加密消息,每个节点使用私钥进行解密获得解密碎片,一定数量的解密碎片拼凑在一起就能获得原始消息,这样网络节点必须一起工作才能解密,一旦比错误节点多一个的正确节点计算和解密出密文,明文便可以恢复。(4)节点将加密的候选交易序列广播,使用纠删码来确保传输消息的完整性,使用Merkle树来确保不同节点的消息一致性。本步骤过程如图2所示,在需要广播的交易序列中加入一定的校本文档来自技高网...
一种联盟链网络下采用异步方式的节点共识验证方法

【技术保护点】
一种联盟链网络下采用异步方式的节点共识验证方法,包括如下步骤:(1)构建联盟链网络下采用异步方式实现共识验证的系统运行框架;(2)当交易信息来临时,网络中的节点把接收到的交易信息作为输入并储存于缓冲区中;(3)节点从缓存队列开头取出第一份交易信息作为自己提出的交易请求序列,并对该序列进行加密;(4)节点对加密后的交易请求序列进行广播,在广播过程中使用纠删码来确保传输消息的完整性,使用Merkle树来确保不同节点的消息一致性;(5)节点采用二进制拜占庭共识协议对接收到的交易请求序列进行投票,达成共识后对序列进行解密,最终获得本周期内写入区块的交易信息。

【技术特征摘要】
1.一种联盟链网络下采用异步方式的节点共识验证方法,包括如下步骤:(1)构建联盟链网络下采用异步方式实现共识验证的系统运行框架;(2)当交易信息来临时,网络中的节点把接收到的交易信息作为输入并储存于缓冲区中;(3)节点从缓存队列开头取出第一份交易信息作为自己提出的交易请求序列,并对该序列进行加密;(4)节点对加密后的交易请求序列进行广播,在广播过程中使用纠删码来确保传输消息的完整性,使用Merkle树来确保不同节点的消息一致性;(5)节点采用二进制拜占庭共识协议对接收到的交易请求序列进行投票,达成共识后对序列进行解密,最终获得本周期内写入区块的交易信息。2.根据权利要求1所述的节点共识验证方法,其特征在于:所述步骤(1)的具体实现方法为:首先,在联盟链网络中布置一定量的节点,任意两个节点之间存在可信任的点对点通道,节点通过建立公钥和秘钥的形式与受信任的其他节点进行交互;其次,所述节点把收到的交易信息作为输入,目标是在交易信息上达成共识并提交交易请求序列;进而,保证联盟链网络中最多存有f个错误节点,且满足3f+1≤N,N为节点总数。3.根据权利要求1所述的节点共识验证方法,其特征在于:所述步骤(2)的具体实现方法为:当交易信息来临时,节点把接收到的交易信息作为输入并储存在缓冲区中;节点的缓冲区是无界的,若节点中存入大小为B的交易信息,该交易信息被分割成N份,每份的大小为B/N,N为节点总数;每个节点存的交易信息内容相同但顺序不同,若一个正确节点能够输出一个交易信息,则每个正确节点都能够输出一个交易信息。4.根据权利要求1所述的节点共识验证方法,其特征在于:所述步骤(3)的具体实现方法为:首先,由...

【专利技术属性】
技术研发人员:黄步添孙羽羿陈建海刘振广杨文龙侯文龙俞之贝
申请(专利权)人:杭州云象网络技术有限公司
类型:发明
国别省市:浙江;33

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

1