一种具有高安全性的区块链异构共识方法及终端与流程

文档序号:16734689发布日期:2019-01-28 12:32阅读:197来源:国知局
技术简介:
本专利针对区块链分片节点易受攻击导致决策失误的问题,提出通过每轮共识动态筛选分片决策节点并组成区块级决策节点的异构共识机制。采用多分片不同共识算法、2/3节点验证阈值及随机竞争机制,使攻击者无法预判决策节点分布且需控制多数节点才能攻击,显著提升系统抗攻击能力与决策安全性。
关键词:区块链异构共识,分片安全机制

本发明涉及区块链技术领域,尤其涉及一种具有高安全性的区块链异构共识方法及终端。



背景技术:

共识机制是区块链的核心技术之一。共识机制是区块链中互不信任的用户达成信任的机制,是区块链中记录传递、验证、复制的基础。目前的共识机制主要包括工作量证明(proofofwork,pow),权益证明(proofofstake,pos),委任权益证明(delegatedproofofstake,dpos)和实用拜占庭容错算法(practicalbyzantinefaulttolerance,pbft)以及这4种共识机制的变形。当然,现在新型的分布式账本技术,例如以有向无环图(directedacyclicgraph,dag)为代表的新型分布式账本技术自带共识机制。现有的共识机制或多或少都存在问题。例如pow共识机制存在资源浪费、共识时间长以及共识垄断以及天然的51%攻击的缺陷;pos共识机制存在长链攻击、共识垄断以及共识难以证明的缺陷;dpos共识机制存在中心化、长链攻击以及共识难以证明的缺陷;pbft共识机制存在共识时间随共识节点数量指数增长的缺陷;而以dag为基础的自带共识的新型分布式账本技术存在安全性弱以及共识中心化的问题。

安全性是共识机制最重要的属性。共识机制是区块链的核心,共识机制的安全性直接决定了整个区块链系统的安全性。因此加强共识机制的安全性是提升整个区块链系统安全系的关键。目前的共识机制大多为了可用性而忽略了一部分的安全性,或者仅仅考虑了一部分安全性,也可以说目前共识机制仅仅考虑防系统内部人做坏的安全性,而很少考虑防黑客攻击的安全性。

目前的区块链大多采用单共识,或者多种共识顺序叠加的共识机制,例如有区块链系统采用pow+pbft的共识机制,这种叠加的共识机制,大多是用pow做初步共识,然后再采用其它共识机制。这种模式的共识机制并不能从根本上解决上面提到的共识机制所面临的缺陷。



技术实现要素:

本发明所要解决的技术问题是:本发明提供了一种具有高安全性的区块链异构共识方法及终端,在一定程度上能够防止黑客攻击而引起的区块链安全性问题,提高了区块链的安全性。

为了解决上述技术问题,本发明提供了一种具有高安全性的区块链异构共识方法,包括以下步骤:

s1:在每一轮共识过程中,筛选出区块中每一分片的决策节点;

s2:根据所有分片的决策节点,筛选出区块的第一决策节点;

s3:通过第一决策节点接收每一分片的决策节点发送的子消息块;所述子消息块为该分片的决策节点生成,并通过该分片中不少于预设数目节点的验证;

s4:所述第一决策节点分别对每一分片发送的子消息块的签名信息进行验证;

s5:合并验证通过的子消息块,得到合并后的消息块;

s6:通过所述第一决策节点将所述消息块分别发送至每一分片的决策节点;

s7:若所述第一决策节点接收超过预设第一数目阈值的决策节点回发的第一签名信息,则判断所述消息块验证通过;所述第一签名信息为分片的决策节点对消息块验证通过后,回发的验证通过对应的签名信息。

本发明还提供了一种具有高安全性的区块链异构共识终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

s1:在每一轮共识过程中,筛选出区块中每一分片的决策节点;

s2:根据所有分片的决策节点,筛选出区块的第一决策节点;

s3:通过第一决策节点接收每一分片的决策节点发送的子消息块;所述子消息块为该分片的决策节点生成,并通过该分片中不少于预设数目节点的验证;

s4:所述第一决策节点分别对每一分片发送的子消息块的签名信息进行验证;

s5:合并验证通过的子消息块,得到合并后的消息块;

s6:通过所述第一决策节点将所述消息块分别发送至每一分片的决策节点;

s7:若所述第一决策节点接收超过预设第一数目阈值的决策节点回发的第一签名信息,则判断所述消息块验证通过;所述第一签名信息为分片的决策节点对消息块验证通过后,回发的验证通过对应的签名信息。

本发明的有益效果为:

本发明提供了一种具有高安全性的区块链异构共识方法及终端,在每一轮共识过程中,均分别筛选出区块中每一分片的决策节点,从而筛选出区块的第一决策节点,并通过分片中的节点验证该分片对应的决策节点生成的子消息块,只有子消息块被分片中,不少于预设数目节点验证通过块后,第一决策节点才进行接收;并通过决策节点对每一分片的决策节点发送的子消息块进行验证,并对验证通过的子消息块进行合并,得到合并后的消息块,并将消息块分别发送至每一分片对应的决策节点进行验证,当验证通过的数目大于预设数目阈值时,表示该消息块验证通过,可广播该消息块;本发明通过上述方法,在每一轮共识过程中均选出每一分片的决策节点及所有分片组成区块新的决策节点,使得攻击者无法判断每一分片的决策节点及区块的决策节点,也就无法控制整个共识过程,同时每个分片所采用的共识算法不同,攻击者无法通过一种攻击策略控制所有的分片,也就无法控制整个共识过程,攻击者想要控制共识过程必须控制系统的绝大多数节点,这无疑增大了攻击的难度,从而解决了黑客攻击区块链中某一分片的节点,而引起区块决策发生重大失误的问题,提高了区块链的安全性。

附图说明

图1为根据本发明实施例的一种具有高安全性的区块链异构共识方法的主要步骤示意图;

图2为根据本发明实施例的一种具有高安全性的区块链异构共识终端的结构示意图;

标号说明:

1、存储器;2、处理器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。

请参照图1,本发明提供了一种具有高安全性的区块链异构共识方法,包括以下步骤:

s1:在每一轮共识过程中,筛选出区块中每一分片的决策节点;

s2:根据所有分片的决策节点,筛选出区块的第一决策节点;

s3:通过第一决策节点接收每一分片的决策节点发送的子消息块;所述子消息块为该分片的决策节点生成,并通过该分片中不少于预设数目节点的验证;

s4:所述第一决策节点分别对每一分片发送的子消息块的签名信息进行验证;

s5:合并验证通过的子消息块,得到合并后的消息块;

s6:通过所述第一决策节点将所述消息块分别发送至每一分片的决策节点;

s7:若所述第一决策节点接收超过预设第一数目阈值的决策节点回发的第一签名信息,则判断所述消息块验证通过;所述第一签名信息为分片的决策节点对消息块验证通过后,回发的验证通过对应的签名信息。

从上述描述可知,本发明提供了一种具有高安全性的区块链异构共识方法,在每一轮共识过程中,均分别筛选出区块中每一分片的决策节点,从而筛选出区块的第一决策节点,并通过分片中的节点验证该分片对应的决策节点生成的子消息块,只有子消息块被分片中,不少于预设数目节点验证通过块后,第一决策节点才进行接收;并通过决策节点对每一分片的决策节点发送的子消息块进行验证,并对验证通过的子消息块进行合并,得到合并后的消息块,并将消息块分别发送至每一分片对应的决策节点进行验证,当验证通过的数目大于预设数目阈值时,表示该消息块验证通过,可广播该消息块;本发明通过上述方法,在每一轮共识过程中均选出每一分片的决策节点及所有分片组成区块新的决策节点,使得攻击者无法判断每一分片的决策节点及区块的决策节点,也就无法控制整个共识过程,同时每个分片所采用的共识算法不同,攻击者无法通过一种攻击策略控制所有的分片,也就无法控制整个共识过程,攻击者想要控制共识过程必须控制系统的绝大多数节点,这无疑增大了攻击的难度,从而解决了当黑客攻击区块链中某一分片的节点,而引起区块决策发生重大失误的问题,提高了区块链的安全性。

进一步的,所述s1具体为:

s11:在每一轮共识过程中,通过预设的第一公式分别计算一分片中所有节点对应的竞争值,得到多个竞争值;

s12:从所述多个竞争值中筛选出满足预设条件的竞争值,得到多个第一竞争值;

s13:公布每一个第一竞争值对应的节点及该节点用于数据解密的公钥;

s14:在预设时间内,获取所有公布的第一竞争值中的最小值,第一最小竞争值;

s15:筛选所述第一最小竞争值对应的节点作为该分片的决策节点;

s16:重复步骤s11至s15,直至筛选出该分块中所有分片的决策节点。

从上述描述可知,在每一轮共识过程中,均计算出每一分片中所有节点的竞争值,并选出该分片中最小竞争值对应的节点作为该分片的决策节点,使得攻击者无法事先确定该轮共识过程中的每一分片的决策节点,提高了区块链共识过程中的安全性;上述公布每一个竞争值对应的节点及该节点用于数据解密的公钥,便于每一分片的节点通过相应的公钥对子消息块的签名信息进行验证。

进一步的,所述第一公式具体为:

其中,所述为第i个分片序号为j的待选节点的竞争值,所述表示第i个分片序号为j的待选节点上用于加密数据的私钥,r表示当前共识过程的轮数,表示第r轮共识中第i分片对应的随机数,表示利用私钥对i和r以及进行数据签名,h1为哈希函数,即对i、r以及通过私钥进行签名后的数据进行哈希运算。

进一步的,所述s2具体为:

根据每一分片的决策节点对应的竞争值,筛选出所述区块唯一的第一决策节点。

从上述描述可知,在每一轮共识过程中,均根据选出的每一分片的决策节点,筛选出所有分片组成的区块唯一的第一决策节点,提高了共识过程中的安全性。

进一步的,所述s4具体为:

通过所述第一决策节点接收每一分片的决策节点发送的子消息块;

控制第一决策节点通过每一分片的决策节点的公钥,验证对应分片决策节点发送的子消息块签名信息的正确性;所述签名信息为该分片的决策节点通过该决策节点上存储的私钥进行签名所得到的信息。

从上述描述可知,通过上述方法,可有效对每一分片的决策节点发送的子消息块进行验证,提高了共识过程的安全性;同时,每一分片的决策节点的公钥,可通过上述公布的节点及该节点上用于数据解密的公钥获取得到;

进一步的,所述s6具体为:

控制第一决策节点通过实用拜占庭容错算法将所述消息块分别发送至每一分片的决策节点。

从上述描述可知,能够保证将消息块发送至第一分片的决策节点上,提高了系统的容错性。

进一步的,所述的一种具有高安全性的区块链异构共识方法,其特征在于,还包括:

预设第一属性列表a={a1,a2,a3},即所述第一属性列表a中预设三个属性标识值a1,a2,a3;

预设第二属性列表b={b1,b2,b3},即所述第二属性列表b中预设三个属性标识值b1,b2,b3;

判断区块链中是否有新增的节点,若有,则从a和b中分配一个标识值,得到第一标识值和第二标识值;

根据第一标识值和第二标识值,将所述新增的节点分配至相应序号的分片中。

其中属性的标识值为a1,b1对应的分片序号为1+9n(n=0,1,2,…),属性的标识值为a1,b2对应的分片序号为2+9n(n=0,1,2,…),属性的标识值为a1,b3对应的分片序号为3+9n(n=0,1,2,…),属性的标识值为a2,b1对应的分片序号为4+9n(n=0,1,2,…),属性的标识值为a2,b2对应的分片序号为5+9n(n=0,1,2,…),属性的标识值为a2,b3对应的分片序号为6+9n(n=0,1,2,…),属性的标识值为a3,b1对应的分片序号为7+9n(n=0,1,2,…),属性的标识值为a3,b2对应的分片序号为8+9n(n=0,1,2,…),属性的标识值为a3,b3对应的分片序号为9+9n(n=0,1,2,…),所述n表示新增节点的序号。

请参照图2,本发明提供了一种具有高安全性的区块链异构共识终端,包括存储器1、处理器2及存储在存储器1上并可在处理器2上运行的计算机程序,所述处理器2执行所述程序时实现以下步骤:

s1:在每一轮共识过程中,筛选出区块中每一分片的决策节点;

s2:根据所有分片的决策节点,筛选出区块的第一决策节点;

s3:通过第一决策节点接收每一分片的决策节点发送的子消息块;所述子消息块为该分片的决策节点生成,并通过该分片中不少于预设数目节点的验证;

s4:所述第一决策节点分别对每一分片发送的子消息块的签名信息进行验证;

s5:合并验证通过的子消息块,得到合并后的消息块;

s6:通过所述第一决策节点将所述消息块分别发送至每一分片的决策节点;

s7:若所述第一决策节点接收超过预设第一数目阈值的决策节点回发的第一签名信息,则判断所述消息块验证通过;所述第一签名信息为分片的决策节点对消息块验证通过后,回发的验证通过对应的签名信息。

进一步的,所述的一种具有高安全性的区块链异构共识终端,所述s1具体为:

s11:在每一轮共识过程中,通过预设的第一公式分别计算一分片中所有节点对应的竞争值,得到多个竞争值;

s12:从所述多个竞争值中筛选出满足预设条件的竞争值,得到多个第一竞争值;

s13:公布每一个第一竞争值对应的节点及该节点用于数据解密的公钥;

s14:在预设时间内,获取所有公布的第一竞争值中的最小值,第一最小竞争值;

s15:筛选所述第一最小竞争值对应的节点作为该分片的决策节点;

s16:重复步骤s11至s15,直至筛选出该分块中所有分片的决策节点。

进一步的,所述的一种具有高安全性的区块链异构共识终端,所述第一公式具体为:

其中,所述为第i个分片序号为j的待选节点的竞争值,所述表示第i个分片序号为j的待选节点上用于加密数据的私钥,r表示当前共识过程的轮数,表示第r轮共识中第i分片对应的随机数,表示利用私钥对i和r以及进行数据签名,h1为哈希函数。

进一步的,所述的一种具有高安全性的区块链异构共识终端,所述s2具体为:

根据每一分片的决策节点对应的竞争值,筛选出所述区块唯一的第一决策节点。

进一步的,所述的一种具有高安全性的区块链异构共识终端,所述s4具体为:

通过所述第一决策节点接收每一分片的决策节点发送的子消息块;

通过每一分片的决策节点的公钥,验证对应分片决策节点发送的子消息块签名信息的正确性;所述签名信息为该分片的决策节点通过该决策节点上存储的私钥进行签名所得到的信息。

进一步的,所述的一种具有高安全性的区块链异构共识终端,所述s6具体为:

控制第一决策节点通过实用拜占庭容错算法将所述消息块分别发送至每一分片的决策节点。

进一步的,所述的一种具有高安全性的区块链异构共识方法,其特征在于,还包括:

预设第一属性列表a={a1,a2,a3},即所述第一属性列表a中预设三个属性标识值a1,a2,a3;

预设第二属性列表b={b1,b2,b3},即所述第二属性列表b中预设三个属性标识值b1,b2,b3;

判断区块链中是否有新增的节点,若有,则从a和b中分配一个标识值,得到第一标识值和第二标识值;

根据第一标识值和第二标识值,将所述新增的节点分配至相应序号的分片中。

其中属性的标识值为a1,b1对应的分片序号为1+9n(n=0,1,2,…),属性的标识值为a1,b2对应的分片序号为2+9n(n=0,1,2,…),属性的标识值为a1,b3对应的分片序号为3+9n(n=0,1,2,…),属性的标识值为a2,b1对应的分片序号为4+9n(n=0,1,2,…),属性的标识值为a2,b2对应的分片序号为5+9n(n=0,1,2,…),属性的标识值为a2,b3对应的分片序号为6+9n(n=0,1,2,…),属性的标识值为a3,b1对应的分片序号为7+9n(n=0,1,2,…),属性的标识值为a3,b2对应的分片序号为8+9n(n=0,1,2,…),属性的标识值为a3,b3对应的分片序号为9+9n(n=0,1,2,…),所述n表示新增节点的序号。

请参照图1,本发明的实施例一为:

本发明提供了一种具有高安全性的区块链异构共识方法,包括以下步骤:

s0:预设第一属性列表a={a1,a2,a3},即所述第一属性列表a中预设三个属性标识值a1,a2,a3;预设第二属性列表b={b1,b2,b3},即所述第二属性列表b中预设三个属性标识值b1,b2,b3;

判断区块链中是否有新增的节点,若有,则从a和b中分配一个标识值,得到第一标识值和第二标识值;根据第一标识值和第二标识值,将所述新增的节点分配至相应序号的分片中;

其中属性的标识值为a1,b1对应的分片序号为1+9n(n=0,1,2,…),属性的标识值为a1,b2对应的分片序号为2+9n(n=0,1,2,…),属性的标识值为a1,b3对应的分片序号为3+9n(n=0,1,2,…),属性的标识值为a2,b1对应的分片序号为4+9n(n=0,1,2,…),属性的标识值为a2,b2对应的分片序号为5+9n(n=0,1,2,…),属性的标识值为a2,b3对应的分片序号为6+9n(n=0,1,2,…),属性的标识值为a3,b1对应的分片序号为7+9n(n=0,1,2,…),属性的标识值为a3,b2对应的分片序号为8+9n(n=0,1,2,…),属性的标识值为a3,b3对应的分片序号为9+9n(n=0,1,2,…),所述n表示新增节点的序号。

s1:在每一轮共识过程中,筛选出区块中每一分片的决策节点;

其中,所述s1具体为:

s11:在每一轮共识过程中,通过预设的第一公式分别计算一分片中所有节点对应的竞争值,得到多个竞争值;

其中,所述第一公式具体为:

其中,所述为第i个分片序号为j的待选节点的竞争值,所述表示第i个分片序号为j的待选节点上用于加密数据的私钥,r表示当前共识过程的轮数,表示第r轮共识中第i分片对应的随机数,表示利用私钥对i和r以及进行数据签名,h1为哈希函数;

通过预设的第一公式分别计算一分片中所有节点对应的竞争值,得到多个竞争值,具体为:

通过第一公式计算得到分别计算一分片中所有节点对应的哈希值,将哈希值转换为二制数,得到多个二进制数,所述多个二进制数即为所述多个竞争值,每一个竞争值与所述分片中一节点对应。

s12:从所述多个竞争值中筛选出满足预设条件的竞争值(即筛选出小于预设竞争值阈值的竞争值,这个阈值的选取和参与竞争的待选节点数量和需要选取出来的待选节点的数量有关,可以根据实际需求自己设定),得到多个第一竞争值;

s13:公布每一个第一竞争值对应的节点及该节点用于数据解密的公钥;

s14:在预设时间内,获取所有公布的第一竞争值中的最小值,第一最小竞争值;

s15:筛选所述第一最小竞争值对应的节点作为该分片的决策节点;

s16:重复步骤s11至s15,直至筛选出该分块中所有分片的决策节点。

s2:根据所有分片的决策节点,筛选出区块的第一决策节点;

其中,所述s2具体为:

根据每一分片的决策节点对应的竞争值,得到其中最小的第二竞争值;

筛选所述第二竞争值对应的节点作为所述区块唯一的第一决策节点。

s3:通过第一决策节点接收每一分片的决策节点发送的子消息块;所述子消息块是在每一个分片中产生的区块,和普通区块链上的区块的概念一样,区块中包含多个消息;所述子消息块为该分片的决策节点生成,并通过该分片中不少于预设数目节点的验证;

其中,所述s3具体为:

每一分片的决策节点生成子消息块后,所述子消息块包括签名信息,该签名信息为该决策节点通过存储在该决策节点上的私钥进行签名得到的信息;

所述决策节点分别发送该子消息块至该分片内的所有节点,接收至子消息块的节点,通过该决策节点对应的公钥(公钥通过公布的节点及该节点上用于数据解密的公钥获取得到),对子消息块进行验证,若验证通过后,则回发验证通过对应的签名数据至该决策节点;当该决策节点接收到的验证通过对应的签名数据超过预设数目,则判断所述子消息块验证通过;当该子消息块验证通过后,该决策节点发送子消息块至第一决策节点;

优选的,预设数目为该分片中所有节点的数目与2/3的乘积。

s4:所述第一决策节点分别对每一分片发送的子消息块的签名信息进行验证;

其中,所述s4具体为:

通过所述第一决策节点接收每一分片的决策节点发送的子消息块;

通过每一分片的决策节点的公钥,验证对应分片决策节点发送的子消息块签名信息的正确性;所述签名信息为该分片的决策节点通过该决策节点上存储的私钥进行签名所得到的信息。

s5:合并验证通过的子消息块,得到合并后的消息块;

s6:通过所述第一决策节点将所述消息块分别发送至每一分片的决策节点;

其中,所述s6具体为:

控制第一决策节点通过实用拜占庭容错算法将所述消息块分别发送至每一分片的决策节点。

s7:若所述第一决策节点接收超过预设第一数目阈值的决策节点回发的第一签名信息,则判断所述消息块验证通过;所述第一签名信息为分片的决策节点对消息块验证通过后,回发的验证通过对应的签名信息;

其中,其中第一数目阈值为所有分片决策节点的数目与2/3的乘积;

在实际应用过程中,对于新加入系统的节点,需要事先加入至某一分片中。

请参照图2,本发明的实施例二为:

本发明提供了一种具有高安全性的区块链异构共识终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

s0:预设第一属性列表a={a1,a2,a3},即所述第一属性列表a中预设三个属性标识值a1,a2,a3;预设第二属性列表b={b1,b2,b3},即所述第二属性列表b中预设三个属性标识值b1,b2,b3;

判断区块链中是否有新增的节点,若有,则从a和b中分配一个标识值,得到第一标识值和第二标识值;根据第一标识值和第二标识值,将所述新增的节点分配至相应序号的分片中;

其中属性的标识值为a1,b1对应的分片序号为1+9n(n=0,1,2,…),属性的标识值为a1,b2对应的分片序号为2+9n(n=0,1,2,…),属性的标识值为a1,b3对应的分片序号为3+9n(n=0,1,2,…),属性的标识值为a2,b1对应的分片序号为4+9n(n=0,1,2,…),属性的标识值为a2,b2对应的分片序号为5+9n(n=0,1,2,…),属性的标识值为a2,b3对应的分片序号为6+9n(n=0,1,2,…),属性的标识值为a3,b1对应的分片序号为7+9n(n=0,1,2,…),属性的标识值为a3,b2对应的分片序号为8+9n(n=0,1,2,…),属性的标识值为a3,b3对应的分片序号为9+9n(n=0,1,2,…),所述n表示新增节点的序号。

s1:在每一轮共识过程中,筛选出区块中每一分片的决策节点;

其中,所述s1具体为:

s11:在每一轮共识过程中,通过预设的第一公式分别计算一分片中所有节点对应的竞争值,得到多个竞争值;

其中,所述第一公式具体为:

其中,所述为第i个分片序号为j的待选节点的竞争值,所述表示第i个分片序号为j的待选节点上用于加密数据的私钥,r表示当前共识过程的轮数,表示第r轮共识中第i分片对应的随机数,表示利用私钥对i和r以及进行数据签名,h1为哈希函数。

s12:从所述多个竞争值中筛选出满足预设条件的竞争值,得到多个第一竞争值;

s13:公布每一个第一竞争值对应的节点及该节点用于数据解密的公钥;

s14:在预设时间内,获取所有公布的第一竞争值中的最小值,第一最小竞争值;

s15:筛选所述第一最小竞争值对应的节点作为该分片的决策节点;

s16:重复步骤s11至s15,直至筛选出该分块中所有分片的决策节点。

s2:根据所有分片的决策节点,筛选出区块的第一决策节点;

其中,所述s2具体为:

根据每一分片的决策节点对应的竞争值,得到其中最小的第二竞争值;

筛选所述第二竞争值对应的节点作为所述区块唯一的第一决策节点。

s3:通过第一决策节点接收每一分片的决策节点发送的子消息块;所述子消息块为该分片的决策节点生成,并通过该分片中不少于预设数目节点的验证;

其中,所述s3具体为:

每一分片的决策节点生成子消息块后,所述子消息块包括签名信息,该签名信息为该决策节点通过存储在该决策节点上的私钥进行签名得到的信息;

所述决策节点分别发送该子消息块至该分片内的所有节点,接收至子消息块的节点,通过该决策节点对应的公钥(公钥通过公布的节点及该节点上用于数据解密的公钥获取得到),对子消息块进行验证,若验证通过后,则回发验证通过对应的签名数据至该决策节点;当该决策节点接收到的验证通过对应的签名数据超过预设数目,则判断所述子消息块验证通过;当该子消息块验证通过后,该决策节点发送子消息块至第一决策节点;

优选的,预设数目为该分片中所有节点的数目与2/3的乘积。

s4:所述第一决策节点分别对每一分片发送的子消息块的签名信息进行验证;

其中,所述s4具体为:

通过所述第一决策节点接收每一分片的决策节点发送的子消息块;

通过每一分片的决策节点的公钥,验证对应分片决策节点发送的子消息块签名信息的正确性;所述签名信息为该分片的决策节点通过该决策节点上存储的私钥进行签名所得到的信息。

s5:合并验证通过的子消息块,得到合并后的消息块;

s6:通过所述第一决策节点将所述消息块分别发送至每一分片的决策节点;

其中,所述s6具体为:

控制第一决策节点通过实用拜占庭容错算法将所述消息块分别发送至每一分片的决策节点。

s7:若所述第一决策节点接收超过预设第一数目阈值的决策节点回发的第一签名信息,则判断所述消息块验证通过;所述第一签名信息为分片的决策节点对消息块验证通过后,回发的验证通过对应的签名信息;

其中,其中第一数目阈值为所有分片决策节点的数目与2/3的乘积;

综上所述,本发明提供了一种具有高安全性的区块链异构共识方法及终端,在每一轮共识过程中,均分别筛选出区块中每一分片的决策节点,从而筛选出区块的第一决策节点,并通过分片中的节点验证该分片对应的决策节点生成的子消息块,只有子消息块被分片中,不少于预设数目节点验证通过块后,第一决策节点才进行接收;并通过决策节点对每一分片的决策节点发送的子消息块进行验证,并对验证通过的子消息块进行合并,得到合并后的消息块,并将消息块分别发送至每一分片对应的决策节点进行验证,当验证通过的数目大于预设数目阈值时,表示该消息块验证通过,可广播该消息块;本发明通过上述方法,在每一轮共识过程中均选出每一分片的决策节点及所有分片组成区块新的决策节点,使得攻击者无法判断每一分片的决策节点及区块的决策节点,也就无法控制整个共识过程,同时每个分片所采用的共识算法不同,攻击者无法通过一种攻击策略控制所有的分片,也就无法控制整个共识过程,攻击者想要控制共识过程必须控制系统的绝大多数节点,这无疑增大了攻击的难度,从而解决了黑客攻击区块链中某一分片的节点,而引起区块决策发生重大失误的问题,提高了区块链的安全性。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 留言:0条
  • 还没有人留言评论。精彩留言会获得点赞!