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

文档序号:25444475发布日期:2021-06-15 09:11阅读:95来源:国知局
一种安全性高的区块链异构共识方法及终端与流程

本案是以申请号为201811128351.5,申请日为2018年9月27日,名称为《一种区块链的异构共识方法及终端》的专利申请为母案的分案申请。

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



背景技术:

共识机制是区块链的核心技术之一。共识机制是区块链中互不信任的用户达成信任的机制,是区块链中记录传递、验证、复制的基础。目前的共识机制主要包括工作量证明(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:若接收超过预设数目阈值的分片决策节点回发的第一签名信息,则判断所述消息块验证通过;所述第一签名信息为分片的决策节点对消息块验证通过后,回发的验证通过对应的签名信息。

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

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

s2:通过所述决策节点接收每一分片发送的子消息块,并分别对每一分片发送的子消息块进行验证;

s3:对验证通过的子消息块进行合并,得到合并后的消息块;

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

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

本发明的有益效果为:

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

附图说明

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

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

标号说明:

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

具体实施方式

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

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

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

s2:通过所述决策节点接收每一分片发送的子消息块,并分别对每一分片发送的子消息块进行验证;

s3:对验证通过的子消息块进行合并,得到合并后的消息块;

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

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

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

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

在每一轮共识过程中,通过预设的第一公式计算每一个待选节点对应的竞争值,得到多个竞争值;所述每一个待选节点为每一个分片对应的决策节点;

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

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

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

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

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

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

其中,所述ci为第i个待选节点的竞争值,所述ski表示该待选节点上用于加密数据的私钥,r表示当前共识过程的轮数,qr表示第r轮共识过程对应的随机数(即在每一轮共识过程中均生成一随机数),表示利用私钥ski对r和qr进行数据签名,h1为哈希函数。

从上述描述可知,通过上述方法,在每一轮共识过程中针对每一个待选节点,计算得到对应的竞争值均不相同,保证每一轮共识过程中得到的分片的决策节点均随机生成,可大大减小分片的决策节点被攻击的概率。

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

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

所述区块由多个分片的子消息块所组成。

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

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

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

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

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

进一步的,所述的一种安全性高的区块链异构共识方法,还包括:

通过预设的第二公式,将新增的节点分配至相应的分片中;

所述第二公式为x=stoi(addi)%n,其中所述i为节点的序号,x为节点i待分配的分片的序号,addi表示节点i的地址,stoi表示地址序列转变成整数的函数;具体的,将地址序列转变成整数的函数利用c标准库中的strtol函数。

进一步的,所述的一种安全性高的区块链异构共识方法,还包括:

预设共识算法集合co={co1,co2,…,com}(即预设m个共识算法),其中cok,k=1,2,...,m,表示排序号为k的共识算法;

若区块链中产生新的分片,则新的分片采用的共识算法的排序号为其中,所述g表示新的分片的序号,所述表示新的分片决策节点对应的哈希值,哈希值通过第一公式进行计算,%表示求余运算。

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

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

s2:通过所述决策节点接收每一分片发送的子消息块,并分别对每一分片发送的子消息块进行验证;

s3:对验证通过的子消息块进行合并,得到合并后的消息块;

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

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

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

在每一轮共识过程中,通过预设的第一公式计算每一个待选节点对应的竞争值,得到多个竞争值;所述每一个待选节点为每一个分片对应的决策节点;

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

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

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

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

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

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

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

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

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

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

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

进一步的,所述的一种安全性高的区块链异构共识方法,还包括:

通过预设的第二公式,将新增的节点分配至相应的分片中;

所述第二公式为x=stoi(addi)%n,其中所述i为节点的序号,x为节点i待分配的分片的序号,addi表示节点i的地址,stoi表示地址序列转变成整数的函数;具体的,将地址序列转变成整数的函数利用c标准库中的strtol函数。

进一步的,所述的一种安全性高的区块链异构共识方法,还包括:

预设共识算法集合co={co1,co2,…,com}(即预设m个共识算法),其中cok,k=1,2,...,m,表示排序号为k的共识算法;

若区块链中产生新的分片,则新的分片采用的共识算法的排序号为其中,所述g表示新的分片的序号,所述表示新的分片决策节点对应的哈希值,%表示求余运算。

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

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

通过预设的公式,将新增的节点分配至相应的分片中;

所述公式为x=stoi(addi)%n,其中所述i为节点的序号,x为节点i待分配的分片的序号,addi表示节点i的地址,stoi表示地址序列转变成整数的函数;具体的,将地址序列转变成整数的函数利用c标准库中的strtol函数。

预设共识算法集合co={co1,co2,…,com}(即预设m个共识算法),其中cok,k=1,2,...,m,表示排序号为k的共识算法;

若区块链中产生新的分片,则新的分片采用的共识算法的排序号为其中,所述g表示新的分片的序号,所述表示新的分片决策节点对应的哈希值,%表示求余运算。

在每一轮共识过程中,筛选出唯一节点作为区块的决策节点;

其中,在每一轮共识过程中,筛选出唯一节点作为区块的决策节点,具体为:

在每一轮共识过程中,通过预设的第一公式计算每一个待选节点对应的竞争值,得到多个竞争值;所述每一个待选节点为每一个分片对应的决策节点;从所述多个竞争值中筛选出满足预设条件的竞争值(即筛选出小于预设竞争值阈值的竞争值,这个阈值的选取和参与竞争的待选节点数量和需要选取出来的待选节点的数量有关,可以根据实际需求自己设定),得到多个第一竞争值;

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

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

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

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

其中,所述ci为第i个待选节点的竞争值,所述ski表示该待选节点上用于加密数据的私钥,r表示当前共识过程的轮数,qr表示第r轮共识过程对应的随机数,表示利用私钥ski对r和qr进行数据签名,h1为哈希函数,即对签名后的数据进行哈希运算;

通过预设的第一公式计算每一个待选节点对应的竞争值,得到多个竞争值,具体为:

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

通过所述决策节点接收每一分片发送的子消息块,并分别对每一分片发送的子消息块进行验证;

其中,通过所述决策节点接收每一分片发送的子消息块,并分别对每一分片发送的子消息块进行验证,具体为:

通过所述区块的决策节点接收每一分片发送的子消息块;子消息块是在每一个分片中产生的区块,和普通区块链上的区块的概念一样,区块中包含多个消息;

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

对验证通过的子消息块进行合并,得到合并后的消息块;

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

其中,通过所述区块的决策节点将所述消息块分别发送至每一分片的决策节点,具体为:

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

若分片的决策节点接收超过预设数目阈值的分片决策节点回发的第一签名信息,则判断所述消息块验证通过;验证通过后,则将该消息块广播至网络;所述第一签名信息为分片的决策节点对消息块验证通过后(验证就是对消息块中包含的签名数据进行验证,以及对消息块中消息格式进行验证),回发的验证通过对应的签名信息;其中所述数目阈值为所有分片决策节点的数目与2/3的乘积。

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

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

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

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

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