CN109886681A - 区块链共识方法及共识系统 - Google Patents
区块链共识方法及共识系统 Download PDFInfo
- Publication number
- CN109886681A CN109886681A CN201910099605.3A CN201910099605A CN109886681A CN 109886681 A CN109886681 A CN 109886681A CN 201910099605 A CN201910099605 A CN 201910099605A CN 109886681 A CN109886681 A CN 109886681A
- Authority
- CN
- China
- Prior art keywords
- subchain
- new block
- block
- subregions
- new
- 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.)
- Granted
Links
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及区块链技术领域,尤其涉及一种区块链共识方法及共识系统。该共识方法包括以下步骤:主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链;将所述新区块在所述目标子链内进行共识,共识通过后,向除所述目标子链外的其他分区内的子链广播所述新区块,使得其他分区内的子链验证所述新区块内的交易信息是否有效;若其他分区内的子链返回验证所述新区块中的交易信息有效的信息,则在所述目标子链上保留所述新区块,否则在所述目标子链上删除所述新区块。本发明通过有向无环图的方式布局多个分区,能够达到并行计算共识的目的,具有提高共识效率的优点。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种区块链共识方法及共识系统。
背景技术
区块链是一种分布式账本技术,也可以看作是一种按时间顺序存储数据的数据结构。共识机制作为区块链的核心技术,是指通过区块链网络中特殊节点的投票,在很短时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,就可以认为全网对此也能够达成共识。共识机制的目的是使所有的诚实节点保存一致的区块链视图,需要同时满足两个性质:1)一致性。所有诚实节点保存的区块链的前缀部分完全相同;2)有效性。由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块中。
PBFT(Practical Byzantine Falut Tolerance,实用拜占庭容错)算法是一种共识算法。目前现有基于PBFT共识算法的区块链平台,基本都是通过三个阶段提交来完成区块的生成:第一阶段:利用PBFT共识算法,对提交给平台的交易进行共识,把达成一致共识的交易,放入有序的共识确认后交易队列;第二阶段:打块节点从共识后交易的线性队列中,按照顺序把交易打包到区块中,然后把打包好的区块广播给所有记账节点,记账节点收到该区块后,验证区块内打包的交易有效后,返回签名确认;第三阶段:打块节点收到半数以上记账节点的对该区块的签名确认后,把签名结果广播给所有记账节点,记账节点把该区块写到自己的链中。
上述利用PBFT共识算法进行共识的方法具有线性处理过程复杂,效率低的缺点。
发明内容
本发明提供了一种区块链共识方法及共识系统,以解决现有技术中PBFT共识算法进行共识处理时过程复杂、效率低的问题。
本发明的一个方面,提供了一种区块链共识方法,包括以下步骤:
主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链;其中区块链网络通过有向无环图的方式布局多个分区,每个分区包括至少一条子链;
将所述新区块在所述目标子链内进行共识,共识通过后,向除所述目标子链外的其他分区内的子链广播所述新区块,使得其他分区内的子链验证所述新区块内的交易信息是否有效;
若其他分区内的子链返回验证所述新区块中的交易信息有效的信息,则在所述目标子链上保留所述新区块,否则在所述目标子链上删除所述新区块。
进一步地,向除所述目标子链外的其他分区内的子链广播所述新区块的步骤包括:
在其他分区内的子链中选取头部节点和多个中间节点作为所述新区块的验证节点,向所述新区块的验证节点广播所述新区块。
进一步地,其他分区内的子链中所述新区块的验证节点的数量大于或等于子链验证节点总数量的一半。
进一步地,向除所述目标子链外的其他分区内的子链广播所述新区块之后,还包括:
其他分区内的子链通过PBFT共识的方法验证所述新区块内的交易信息是否有效,并在PBFT共识的确认阶段向所述主节点返回是否对所述新区块签名确认的结果,其中,在其他分区内的子链中所有验证节点均验证所述新区块内的交易有效的情况下,该子链在PBFT共识的确认阶段向所述主节点返回对所述新区块签名确认的结果。
进一步地,其他分区内的子链验证所述新区块内的交易信息是否有效之前,还包括:
其他分区内的子链中的记账节点将已存子链中最新区块高度和所述新区块高度进行对比;
若已存区块链中最新区块高度大于所述新区块高度,则记账节点从其他子链的记账节点中同步区块信息。
进一步地,其他分区内的子链中的记账节点将已存子链中最新区块高度和所述新区块高度进行对比之后,还包括:
若已存子链中最新区块高度小于所述新区块高度,则记账节点放弃所述新区块,并在所有子链网络中同步所在子链的区块信息。
进一步地,将所述新区块在所述目标子链内进行共识时,还包括:
目标子链的记账节点检测到所述新区块中有无效交易时,发起重新选取主节点的请求;
若主节点为拜占庭节点,则响应所述请求,重新选取主节点;
若主节点所在子链的记账节点为拜占庭节点,则忽略所述请求,放弃重新选取主节点。
本发明的第二个方面,提供了一种区块链共识系统,包括:
区块构建模块,用于使用主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链;其中区块链网络通过有向无环图的方式布局多个分区,每个分区包括至少一条子链;
共识广播模块,用于将所述新区块在所述目标子链内进行共识,共识通过后,向除所述目标子链外的其他分区内的子链广播所述新区块,使得其他分区内的子链验证所述新区块内的交易信息是否有效;
区块操作模块,用于若其他分区内的子链返回验证所述新区块中的交易信息有效的信息,则在所述目标子链上保留所述新区块,否则在所述目标子链上删除所述新区块。
进一步地,所述共识广播模块包括:
广播子模块,用于在其他分区内的子链中选取头部节点和多个中间节点作为所述新区块的验证节点,向所述新区块的验证节点广播所述新区块。
进一步地,所述区块链共识系统还包括:
子链共识模块,用于使用其他分区内的子链通过PBFT共识的方法验证所述新区块内的交易信息是否有效,并在PBFT共识的确认阶段向所述主节点返回是否对所述新区块签名确认的结果,其中,在其他分区内的子链中所有新区块的验证节点均验证所述新区块内的交易有效的情况下,该子链在PBFT共识的确认阶段向所述主节点返回对所述新区块签名确认的结果。
本发明提供的区块链共识方法及共识系统,与现有技术相比具有以下进步:本发明首先通过主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链,并将新区块分别在主节点所在分区的目标子链、其他分区内的子链进行共识和验证,能够达到并行计算共识的目的,有利于提高共识效率,且通过多方验证提高了共识的准确性,保证了交易安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例中区块链共识方法的流程图;
图2为本发明实施例中区块链共识系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
本实施例提供了一种区块链共识方法及共识系统。
如图1,本实施例的一种区块链共识方法,包括以下步骤:
S1、主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链;其中区块链网络通过有向无环图的方式布局多个分区,每个分区包括至少一条子链。
这里,主节点验证交易有效,将新区块先加入新区块所在分区内的目标子链,能够防止硬件故障导致交易数据丢失,如果后续验证无效可再标记删除。
S2、将所述新区块在所述目标子链内进行共识,共识通过后,向除所述目标子链外的其他分区内的子链广播所述新区块,使得其他分区内的子链验证所述新区块内的交易信息是否有效。
S3、若其他分区内的子链返回验证所述新区块中的交易信息有效的信息,则在所述目标子链上保留所述新区块,否则在所述目标子链上删除所述新区块。
主节点从所有节点中推举出来。具体地,可从区块链网络节点中随机选取一个主节点,并且如果当前主节点作恶,例如给不同的请求编上相同的序号,或者不去分配序号或者让相邻的序号不连续,其他区块链网络节点,即备份节点主动检查这些序号的合法性。如果主节点掉线或者作恶不广播客户端的请求,客户端设置超时机制,超时的话,向所有副本节点广播请求消息,副本节点检测出主节点作恶或者下线,发起更换主节点的协议。
具体地,目标子链里面的共识可用传统的PBFT共识方法,因为目标子链通常节点比较少,也可以用POW(Proof Of Work,工作量证明)共识方法,或者其他共识方法,在此不做限定。
本发明首先通过主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链,并将新区块分别在主节点所在分区的目标子链、其他分区内的子链进行共识和验证,能够达到并行计算共识的目的,有利于提高共识效率,且通过多方验证提高了共识的准确性,保证了交易安全性。
优选的,本实施例中区块链为联盟链,有利于提高共识效率、提高共识准确性。
具体实施时,可选的,向除所述目标子链外的其他分区内的子链广播所述新区块的步骤包括:
在其他分区内的子链中选取头部节点和多个中间节点作为所述新区块的验证节点,向所述新区块的验证节点广播所述新区块。
此时,主节点确认收到的交易有效,按照分区所在的链路径,把交易打成新区块,增加到该链的最后,然后针对区块在子链内发起共识,达成共识后,广播到别的子链,以检验交易是否有效。这里,通过在子链中选取头部节点和多个中间节点作为新区块的验证节点,能够保证新区块的验证节点分布均匀性,达到充分检验的目的。
具体实施时,可选的,其他分区内的子链中所述新区块的验证节点的数量大于或等于子链验证节点总数量的一半。
此时,向别的子链中至少一半的验证节点,即半数以上的验证节点广播新区块,以检验交易是否有效,能够达到充分检验的目的,从而进一步提高检验的准确性,保证安全性。
具体的,可向除目标子链外的其他分区的子链的头部和中间随机的n个位置广播新区块,n达到子链中节点的半数以上。其中,随机位置可按照概率生成均匀分布,达到充分检验的目的。
具体实施时,向除所述目标子链外的其他分区内的子链广播所述新区块之后,还包括:
其他分区内的子链通过PBFT共识的方法验证所述新区块内的交易信息是否有效,并在PBFT共识的确认阶段向所述主节点返回是否对所述新区块签名确认的结果,其中,在其他分区内的子链中所有验证节点均验证所述新区块内的交易有效的情况下,该子链在PBFT共识的确认阶段向所述主节点返回对所述新区块签名确认的结果。
在PBFT共识的commit(签名阶段)阶段,可返回子链对该区块的确认签名,当所有子链都已经确认交易之后,确认新区块的交易有效,在目标子链中保留新区块。其中所有子链里面的新区块的验证节点都确认过了交易有效,就可以认为这个子链确认了交易。
在所有节点都是诚实节点的前提下,上述实施例中的效率非常高,但是如果出现异常,如非诚实节点、破坏性节点(不为自己获益,只为了破坏共识)后,本实施例将按照以下几个场景进行处理。
场景一:
具体实施时,可选的,其他分区内的子链验证所述新区块内的交易信息是否有效之前,还包括:
其他分区内的子链中的记账节点将已存子链中最新区块高度和所述新区块高度进行对比;
若已存区块链中最新区块高度大于所述新区块高度,则记账节点从其他子链的记账节点中同步区块信息。
此时,在PBFT共识过程中,如果某个记账节点发现自己所在的子链的区块高度和新的区块高度不一致:(新区块的高度)-(子链中最新区块的高度)>0;说明了该记账节点丢失了区块数据,那么该记账节点应该从其它节点同步区块信息后,再把新的区块加入到链表中。有利于提高联盟链中各子链的区块记录交易信息的准确性。
具体实施时,可选的,其他分区内的子链中的记账节点将已存子链中最新区块高度和所述新区块高度进行对比之后,还包括:
若已存子链中最新区块高度小于所述新区块高度,则记账节点放弃所述新区块,并在所有子链网络中同步所在子链的区块信息。
此时,(新区块的高度)-(链中最新区块的高度)<0;说明了系统出现分叉,则放弃当前区块交易,进行全网同步本子链的区块,等全网同步区块完成后,系统再继续工作。有利于提高联盟链中各子链的区块记录交易信息的准确性。
理论上,已存子链中最新区块高度等于新区块高度,当已存子链中最新区块高度大于或小于新区块高度时,表示记账节点出现异常或者作恶。本发明实施例中,当已存子链中最新区块高度大于新区块高度时,说明了区块链出现分叉,放弃当前区块交易,进行全网同步区块,等全网同步区块完成后,系统再继续工作;当已存区块链中最新区块高度小于新区块高度时,说明该记账节点丢失了新区块数据,那么该节点应该从其它节点同步新区块信息后,再把新区块加入到链表中。确保了区块同步的正确性和安全性。
场景二:
具体实施时,可选的,将所述新区块在所述目标子链内进行共识时,还包括:
目标子链的记账节点检测到所述新区块中有无效交易时,发起重新选取主节点的请求;
若主节点为拜占庭节点,则响应所述请求,重新选取主节点;
若主节点所在子链的记账节点为拜占庭节点,则忽略所述请求,放弃重新选取主节点。
有利于保证区块的有效性,提高资源利用率。
本发明实施例中,在PBFT共识过程中,如果记账节点发现区块内有无效交易(诚实节点的数量超过半数),且子链中的主节点是拜占庭节点,那么所有其它诚实节点会放弃当前区块交易,重新发起选举主节点的申请,这样系统会重新选举新的诚实的节点作为主节点,继续工作。如果记账节点发现区块内有无效交易(诚实节点的数量超过半数),且子链中的记账节点是拜占庭节点,它同样会放弃当前区块交易,发起重新选举主节点的申请,但是由于拜占庭的节点的数量无法超过半数,所以该申请无效,系统会继续工作。
经过实际测试,在局域网络和相同硬件环境下,本发明实施例基于有向无环图DAG的区块链共识方法能够提升共识效率达到5倍于已经有的PBFT线性存取方案。根据业务需要,可以动态增加子链的数量,达到更大的并行,以满足特定业务的需求。
如图2,本实施例的一种区块链共识系统,包括:
区块构建模块,用于使用主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链;其中区块链网络通过有向无环图的方式布局多个分区,每个分区包括至少一条子链;
共识广播模块,用于将所述新区块在所述目标子链内进行共识,共识通过后,向除所述目标子链外的其他分区内的子链广播所述新区块,使得其他分区内的子链验证所述新区块内的交易信息是否有效;
区块操作模块,用于若其他分区内的子链返回验证所述新区块中的交易信息有效的信息,则在所述目标子链上保留所述新区块,否则在所述目标子链上删除所述新区块。
本发明首先通过主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链,并将新区块分别在主节点所在分区的目标子链、其他分区内的子链进行共识和验证,能够达到并行计算共识的目的,有利于提高共识效率,且通过多方验证提高了共识的准确性,保证了交易安全性。
具体实施时,可选的,所述共识广播模块包括:
广播子模块,用于在其他分区内的子链中选取头部节点和多个中间节点作为所述新区块的验证节点,向所述新区块的验证节点广播所述新区块。
具体实施时,可选的,其他分区内的子链中所述新区块的验证节点的数量大于或等于子链验证节点总数量的一半。
具体实施时,可选的,本实施例的区块链共识系统包括:
子链共识模块,用于使用其他分区内的子链通过PBFT共识的方法验证所述新区块内的交易信息是否有效,并在PBFT共识的确认阶段向所述主节点返回是否对所述新区块签名确认的结果,其中,在其他分区内的子链中所有新区块的验证节点均验证所述新区块内的交易有效的情况下,该子链在PBFT共识的确认阶段向所述主节点返回对所述新区块签名确认的结果。
具体实施时,可选的,所述区块链共识系统还包括:
对比模块,用于其他分区内的子链中的记账节点将已存子链中最新区块高度和所述新区块高度进行对比;
第一同步模块,用于若已存区块链中最新区块高度大于所述新区块高度,则记账节点从其他子链的记账节点中同步区块信息。
具体实施时,可选的,所述区块链共识系统还包括:
第二同步模块,用于若已存子链中最新区块高度小于所述新区块高度,则记账节点放弃所述新区块,并在所有子链网络中同步所在子链的区块信息。
具体实施时,可选的,所述区块链共识系统还包括:
请求模块,用于目标子链的记账节点检测到所述新区块中有无效交易时,发起重新选取主节点的请求;
选取模块,用于若主节点为拜占庭节点,则响应所述请求,重新选取主节点;
放弃模块,用于若主节点所在子链的记账节点为拜占庭节点,则忽略所述请求,放弃重新选取主节点。
本实施例的区块链共识方法及共识系统,经过实际测试,在局域网络和相同硬件环境下,本实施例的区块链共识方法及共识系统能够提升共识效率达到5倍于已经有的PBFT线性存取方案。优选的,根据业务需要,可以动态增加子链的数量,达到更大的并行,以满足特定业务的需求。
本发明主要针对基于交易的PBFT共识策略提出的,采用DAG(Directed AcyclicGraph,有向无环图,是不同于主流区块链的一种分布式账本技术,一种有顶点和边的图结构,它可以保证从一个顶点沿着若干边前进(有向),但永远不能回到原点(无环))区块结构,能够提升交易确认和区块打包效率,从而显著提升TPS(每秒交易量)。本发明通过有向无环图的方式布局多个分区,从而达到并行计算共识的目的,可以极大的提升联盟链中节点的共识效率。
本发明方法实施例中的改进和有益效果也适用于本发明系统实施例。
本发明一实施例还提供了一种智能合约执行系统,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现如下步骤:
主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链;其中区块链网络通过有向无环图的方式布局多个分区,每个分区包括至少一条子链;
将所述新区块在所述目标子链内进行共识,共识通过后,向除所述目标子链外的其他分区内的子链广播所述新区块,使得其他分区内的子链验证所述新区块内的交易信息是否有效;
若其他分区内的子链返回验证所述新区块中的交易信息有效的信息,则在所述目标子链上保留所述新区块,否则在所述目标子链上删除所述新区块。
可选的,该计算机程序被处理器执行时还实现如下步骤:
在其他分区内的子链中选取头部节点和多个中间节点作为所述新区块的验证节点,向所述新区块的验证节点广播所述新区块。
可选的,该计算机程序被处理器执行时还实现如下步骤:
其他分区内的子链通过PBFT共识的方法验证所述新区块内的交易信息是否有效,并在PBFT共识的确认阶段向所述主节点返回是否对所述新区块签名确认的结果,其中,在其他分区内的子链中所有新区块的验证节点均验证所述新区块内的交易有效的情况下,该子链在PBFT共识的确认阶段向所述主节点返回对所述新区块签名确认的结果。
可选的,该计算机程序被处理器执行时还实现如下步骤:
其他分区内的子链通过PBFT共识的方法验证所述新区块内的交易信息是否有效,并在PBFT共识的确认阶段向所述主节点返回是否对所述新区块签名确认的结果,其中,在其他分区内的子链中所有新区块的验证节点均验证所述新区块内的交易有效的情况下,该子链在PBFT共识的确认阶段向所述主节点返回对所述新区块签名确认的结果。
可选的,该计算机程序被处理器执行时还实现如下步骤:
其他分区内的子链通过PBFT共识的方法验证所述新区块内的交易信息是否有效,并在PBFT共识的确认阶段向所述主节点返回是否对所述新区块签名确认的结果,其中,在其他分区内的子链中所有新区块的验证节点均验证所述新区块内的交易有效的情况下,该子链在PBFT共识的确认阶段向所述主节点返回对所述新区块签名确认的结果。
可选的,该计算机程序被处理器执行时还实现如下步骤:
主节点所在子链的记账节点检测到所述新区块中有无效交易时,发起重新选取主节点的请求;
若主节点为拜占庭节点,则响应所述请求,重新选取主节点;
若主节点所在子链的记账节点为拜占庭节点,则忽略所述请求,放弃重新选取主节点。
本发明一实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,上述计算机程序被处理器执行时实现上述区块链共识方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种区块链共识方法,其特征在于,包括以下步骤:
主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链;其中区块链网络通过有向无环图的方式布局多个分区,每个分区包括至少一条子链;
将所述新区块在所述目标子链内进行共识,共识通过后,向除所述目标子链外的其他分区内的子链广播所述新区块,使得其他分区内的子链验证所述新区块内的交易信息是否有效;
若其他分区内的子链返回验证所述新区块中的交易信息有效的信息,则在所述目标子链上保留所述新区块,否则在所述目标子链上删除所述新区块。
2.根据权利要求1所述的区块链共识方法,其特征在于,向除所述目标子链外的其他分区内的子链广播所述新区块的步骤包括:
在其他分区内的子链中选取头部节点和多个中间节点作为所述新区块的验证节点,向所述新区块的验证节点广播所述新区块。
3.根据权利要求2所述的区块链共识方法,其特征在于,其他分区内的子链中所述新区块的验证节点的数量大于或等于子链验证节点总数量的一半。
4.根据权利要求2所述的区块链共识方法,其特征在于,向除所述目标子链外的其他分区内的子链广播所述新区块之后,还包括:
其他分区内的子链通过PBFT共识的方法验证所述新区块内的交易信息是否有效,并在PBFT共识的确认阶段向所述主节点返回是否对所述新区块签名确认的结果,其中,在其他分区内的子链中所有验证节点均验证所述新区块内的交易有效的情况下,该子链在PBFT共识的确认阶段向所述主节点返回对所述新区块签名确认的结果。
5.根据权利要求1所述的区块链共识方法,其特征在于,其他分区内的子链验证所述新区块内的交易信息是否有效之前,还包括:
其他分区内的子链中的记账节点将已存子链中最新区块高度和所述新区块高度进行对比;
若已存区块链中最新区块高度大于所述新区块高度,则记账节点从其他子链的记账节点中同步区块信息。
6.根据权利要求5所述的区块链共识方法,其特征在于,其他分区内的子链中的记账节点将已存子链中最新区块高度和所述新区块高度进行对比之后,还包括:
若已存子链中最新区块高度小于所述新区块高度,则记账节点放弃所述新区块,并在所有子链网络中同步所在子链的区块信息。
7.根据权利要求1所述的区块链共识方法,其特征在于,将所述新区块在所述目标子链内进行共识时,还包括:
目标子链的记账节点检测到所述新区块中有无效交易时,发起重新选取主节点的请求;
若主节点为拜占庭节点,则响应所述请求,重新选取主节点;
若主节点所在子链的记账节点为拜占庭节点,则忽略所述请求,放弃重新选取主节点。
8.一种区块链共识系统,其特征在于,包括:
区块构建模块,用于使用主节点判断接收到的交易信息是否有效,若有效,则将该交易信息打包成新区块,并将该新区块加入所述新区块所在分区内的目标子链;其中区块链网络通过有向无环图的方式布局多个分区,每个分区包括至少一条子链;
共识广播模块,用于将所述新区块在所述目标子链内进行共识,共识通过后,向除所述目标子链外的其他分区内的子链广播所述新区块,使得其他分区内的子链验证所述新区块内的交易信息是否有效;
区块操作模块,用于若其他分区内的子链返回验证所述新区块中的交易信息有效的信息,则在所述目标子链上保留所述新区块,否则在所述目标子链上删除所述新区块。
9.根据权利要求8所述的区块链共识系统,其特征在于,所述共识广播模块包括:
广播子模块,用于在其他分区内的子链中选取头部节点和多个中间节点作为所述新区块的验证节点,向所述新区块的验证节点广播所述新区块。
10.根据权利要求9所述的区块链共识系统,其特征在于,所述区块链共识系统还包括:
子链共识模块,用于使用其他分区内的子链通过PBFT共识的方法验证所述新区块内的交易信息是否有效,并在PBFT共识的确认阶段向所述主节点返回是否对所述新区块签名确认的结果,其中,在其他分区内的子链中所有新区块的验证节点均验证所述新区块内的交易有效的情况下,该子链在PBFT共识的确认阶段向所述主节点返回对所述新区块签名确认的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910099605.3A CN109886681B (zh) | 2019-01-31 | 2019-01-31 | 区块链共识方法及共识系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910099605.3A CN109886681B (zh) | 2019-01-31 | 2019-01-31 | 区块链共识方法及共识系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109886681A true CN109886681A (zh) | 2019-06-14 |
CN109886681B CN109886681B (zh) | 2021-06-18 |
Family
ID=66927639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910099605.3A Expired - Fee Related CN109886681B (zh) | 2019-01-31 | 2019-01-31 | 区块链共识方法及共识系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109886681B (zh) |
Cited By (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110445684A (zh) * | 2019-08-09 | 2019-11-12 | 中国信息通信研究院 | 一种区块链性能基准测试方法和装置 |
CN110471329A (zh) * | 2019-07-10 | 2019-11-19 | 山东开创云软件有限公司 | 一种基于区块链系统的水质监管方法及装置、设备、介质 |
CN110557266A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 寻人启事发布方法、装置、设备和计算机可读存储介质 |
CN110569305A (zh) * | 2019-08-27 | 2019-12-13 | 网易(杭州)网络有限公司 | 区块同步方法、装置、介质和计算设备 |
CN110597912A (zh) * | 2019-09-17 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 一种区块存储方法及装置 |
CN110599139A (zh) * | 2019-08-19 | 2019-12-20 | 杭州秘猿科技有限公司 | 一种区块链共识算法中的出块方法和装置 |
CN110648140A (zh) * | 2019-09-12 | 2020-01-03 | 广州蚁比特区块链科技有限公司 | 一种基于区块链的多链配合方法及装置 |
CN110928953A (zh) * | 2019-12-03 | 2020-03-27 | 上海墨珩网络科技有限公司 | 一种基于区块链技术的数据同步方法和系统 |
CN111049658A (zh) * | 2019-12-12 | 2020-04-21 | 北京信息科技大学 | 一种基于dag的全网统一信任锚系统、建立方法和认证方法 |
CN111080445A (zh) * | 2019-10-28 | 2020-04-28 | 北京大学 | 一种基于图结构的可信存证方法与系统 |
CN111369358A (zh) * | 2020-02-10 | 2020-07-03 | 杭州溪塔科技有限公司 | 一种区块链共识方法、装置和电子设备 |
CN111524010A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 平行链共识方法、设备和存储介质 |
CN111597268A (zh) * | 2020-05-21 | 2020-08-28 | 昆明大棒客科技有限公司 | 一种区块链扩展方法、区块链节点及区块链系统 |
CN111598565A (zh) * | 2020-04-24 | 2020-08-28 | 广西电网有限责任公司电力科学研究院 | 一种基于pbft区块链技术的仓储构建方法及系统 |
CN111711526A (zh) * | 2020-06-16 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 一种区块链节点的共识方法及系统 |
CN112187490A (zh) * | 2019-07-01 | 2021-01-05 | 深圳法大大网络科技有限公司 | 一种拜占庭容错共识方法及系统 |
CN112527800A (zh) * | 2020-12-18 | 2021-03-19 | 山大地纬软件股份有限公司 | 树形链式账本结构、高性能并行共识方法及系统 |
WO2021073452A1 (zh) * | 2019-10-15 | 2021-04-22 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
CN113269645A (zh) * | 2021-05-28 | 2021-08-17 | 中邮信息科技(北京)有限公司 | 一种区块链的交易信息调度方法、装置、介质及电子设备 |
CN113761068A (zh) * | 2021-09-15 | 2021-12-07 | 虎彩印艺股份有限公司 | 一种提升区块链网络并发处理能力的方法 |
CN114003552A (zh) * | 2021-12-30 | 2022-02-01 | 中科声龙科技发展(北京)有限公司 | 工作量证明运算方法、工作量证明芯片及上位机 |
CN115001809A (zh) * | 2022-05-31 | 2022-09-02 | 深圳壹账通智能科技有限公司 | 区块链网络共识方法、装置、设备及介质 |
JP2022541581A (ja) * | 2019-08-01 | 2022-09-26 | ブルーム・テクノロジー・インコーポレイテッド | Bft確定合意方式のdag‐awtc元帳システム |
US20220400152A1 (en) * | 2021-06-23 | 2022-12-15 | Beijing University Of Posts And Telecommunications | Data synchronization method and device |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及系统 |
CN107360206A (zh) * | 2017-03-29 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法、设备及系统 |
CN107391320A (zh) * | 2017-03-10 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种共识方法及装置 |
CN107807984A (zh) * | 2017-10-31 | 2018-03-16 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区共识的方法 |
US20180096349A1 (en) * | 2016-10-05 | 2018-04-05 | The Toronto-Dominion Bank | Distributed electronic ledger with metadata |
CN108023729A (zh) * | 2017-10-13 | 2018-05-11 | 中国银联股份有限公司 | 区块链网络及其交易方法 |
CN108122165A (zh) * | 2017-12-15 | 2018-06-05 | 北京中电普华信息技术有限公司 | 一种区块链共识方法及系统 |
CN108492103A (zh) * | 2018-02-07 | 2018-09-04 | 北京大学深圳研究生院 | 一种联盟区块链共识方法 |
CN108777704A (zh) * | 2018-05-16 | 2018-11-09 | 横琴密达科技有限责任公司 | 一种区块链共识方法及系统 |
CN108985757A (zh) * | 2017-11-27 | 2018-12-11 | 北京京东金融科技控股有限公司 | 信息处理方法、装置及系统、存储介质、电子设备 |
CN108985740A (zh) * | 2018-07-07 | 2018-12-11 | 夸克链科技(深圳)有限公司 | 高性能共识算法的实现方法 |
CN109150598A (zh) * | 2018-08-10 | 2019-01-04 | 上交所技术有限责任公司 | 一种基于块片的bft共识算法带宽使用率改进方法 |
US20190028471A1 (en) * | 2016-03-28 | 2019-01-24 | Black Gold Coin, Inc. | SYSTEMS AND METHODS FOR PROVIDING BLOCK CHAIN-BASED MULTlFACTOR PERSONAL IDENTITY VERIFICATION |
-
2019
- 2019-01-31 CN CN201910099605.3A patent/CN109886681B/zh not_active Expired - Fee Related
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190028471A1 (en) * | 2016-03-28 | 2019-01-24 | Black Gold Coin, Inc. | SYSTEMS AND METHODS FOR PROVIDING BLOCK CHAIN-BASED MULTlFACTOR PERSONAL IDENTITY VERIFICATION |
US20180096349A1 (en) * | 2016-10-05 | 2018-04-05 | The Toronto-Dominion Bank | Distributed electronic ledger with metadata |
CN106656974A (zh) * | 2016-10-17 | 2017-05-10 | 江苏通付盾科技有限公司 | 区块链的分组共识方法及系统 |
CN107391320A (zh) * | 2017-03-10 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 一种共识方法及装置 |
CN107360206A (zh) * | 2017-03-29 | 2017-11-17 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法、设备及系统 |
CN108023729A (zh) * | 2017-10-13 | 2018-05-11 | 中国银联股份有限公司 | 区块链网络及其交易方法 |
CN107807984A (zh) * | 2017-10-31 | 2018-03-16 | 上海分布信息科技有限公司 | 一种分区的区块链网络及其实现分区共识的方法 |
CN108985757A (zh) * | 2017-11-27 | 2018-12-11 | 北京京东金融科技控股有限公司 | 信息处理方法、装置及系统、存储介质、电子设备 |
CN108122165A (zh) * | 2017-12-15 | 2018-06-05 | 北京中电普华信息技术有限公司 | 一种区块链共识方法及系统 |
CN108492103A (zh) * | 2018-02-07 | 2018-09-04 | 北京大学深圳研究生院 | 一种联盟区块链共识方法 |
CN108777704A (zh) * | 2018-05-16 | 2018-11-09 | 横琴密达科技有限责任公司 | 一种区块链共识方法及系统 |
CN108985740A (zh) * | 2018-07-07 | 2018-12-11 | 夸克链科技(深圳)有限公司 | 高性能共识算法的实现方法 |
CN109150598A (zh) * | 2018-08-10 | 2019-01-04 | 上交所技术有限责任公司 | 一种基于块片的bft共识算法带宽使用率改进方法 |
Non-Patent Citations (2)
Title |
---|
甘俊 等: ""区块链实用拜占庭容错共识算法的改进"", 《计算机应用》 * |
高丽芬 等: ""区块链共识机制之拜占庭算法"", 《数字通信世界》 * |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187490A (zh) * | 2019-07-01 | 2021-01-05 | 深圳法大大网络科技有限公司 | 一种拜占庭容错共识方法及系统 |
CN112187490B (zh) * | 2019-07-01 | 2023-04-07 | 深圳法大大网络科技有限公司 | 一种拜占庭容错共识方法及系统 |
CN110471329A (zh) * | 2019-07-10 | 2019-11-19 | 山东开创云软件有限公司 | 一种基于区块链系统的水质监管方法及装置、设备、介质 |
JP7318104B2 (ja) | 2019-08-01 | 2023-07-31 | ブルーム・テクノロジー・インコーポレイテッド | Bft確定合意方式のdag‐awtc元帳システム |
JP2022541581A (ja) * | 2019-08-01 | 2022-09-26 | ブルーム・テクノロジー・インコーポレイテッド | Bft確定合意方式のdag‐awtc元帳システム |
CN110445684A (zh) * | 2019-08-09 | 2019-11-12 | 中国信息通信研究院 | 一种区块链性能基准测试方法和装置 |
CN110599139A (zh) * | 2019-08-19 | 2019-12-20 | 杭州秘猿科技有限公司 | 一种区块链共识算法中的出块方法和装置 |
CN110569305B (zh) * | 2019-08-27 | 2021-09-03 | 网易(杭州)网络有限公司 | 区块同步方法、装置、介质和计算设备 |
CN110569305A (zh) * | 2019-08-27 | 2019-12-13 | 网易(杭州)网络有限公司 | 区块同步方法、装置、介质和计算设备 |
CN110557266A (zh) * | 2019-09-06 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 寻人启事发布方法、装置、设备和计算机可读存储介质 |
CN110648140A (zh) * | 2019-09-12 | 2020-01-03 | 广州蚁比特区块链科技有限公司 | 一种基于区块链的多链配合方法及装置 |
CN110597912B (zh) * | 2019-09-17 | 2024-01-16 | 深圳前海微众银行股份有限公司 | 一种区块存储方法及装置 |
CN110597912A (zh) * | 2019-09-17 | 2019-12-20 | 深圳前海微众银行股份有限公司 | 一种区块存储方法及装置 |
KR20210046659A (ko) * | 2019-10-15 | 2021-04-28 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 블록체인 네트워크에 기반한 데이터 처리 방법 및 장치, 전자 디바이스, 및 저장 매체 |
KR102566194B1 (ko) * | 2019-10-15 | 2023-08-14 | 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 | 블록체인 네트워크에 기반한 데이터 처리 방법 및 장치, 전자 디바이스, 및 저장 매체 |
WO2021073452A1 (zh) * | 2019-10-15 | 2021-04-22 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 |
US11386076B2 (en) | 2019-10-15 | 2022-07-12 | Tencent Technology (Shenzhen) Company Limited | Data processing method and apparatus based on blockchain network, electronic device, and storage medium |
CN111080445B (zh) * | 2019-10-28 | 2022-06-17 | 北京大学 | 一种基于图结构的可信存证方法与系统 |
CN111080445A (zh) * | 2019-10-28 | 2020-04-28 | 北京大学 | 一种基于图结构的可信存证方法与系统 |
CN110928953A (zh) * | 2019-12-03 | 2020-03-27 | 上海墨珩网络科技有限公司 | 一种基于区块链技术的数据同步方法和系统 |
CN111049658A (zh) * | 2019-12-12 | 2020-04-21 | 北京信息科技大学 | 一种基于dag的全网统一信任锚系统、建立方法和认证方法 |
CN111049658B (zh) * | 2019-12-12 | 2022-09-16 | 北京信息科技大学 | 一种基于dag的全网统一信任锚系统、和建立方法 |
CN111369358A (zh) * | 2020-02-10 | 2020-07-03 | 杭州溪塔科技有限公司 | 一种区块链共识方法、装置和电子设备 |
CN111369358B (zh) * | 2020-02-10 | 2023-09-12 | 杭州溪塔科技有限公司 | 一种区块链共识方法、装置和电子设备 |
CN111598565B (zh) * | 2020-04-24 | 2022-08-19 | 广西电网有限责任公司电力科学研究院 | 一种基于pbft区块链技术的仓储构建方法及系统 |
CN111598565A (zh) * | 2020-04-24 | 2020-08-28 | 广西电网有限责任公司电力科学研究院 | 一种基于pbft区块链技术的仓储构建方法及系统 |
CN111524010A (zh) * | 2020-05-06 | 2020-08-11 | 杭州复杂美科技有限公司 | 平行链共识方法、设备和存储介质 |
CN111597268B (zh) * | 2020-05-21 | 2023-09-12 | 昆明大棒客科技有限公司 | 一种区块链扩展方法、区块链节点及区块链系统 |
CN111597268A (zh) * | 2020-05-21 | 2020-08-28 | 昆明大棒客科技有限公司 | 一种区块链扩展方法、区块链节点及区块链系统 |
CN111711526B (zh) * | 2020-06-16 | 2024-03-26 | 深圳前海微众银行股份有限公司 | 一种区块链节点的共识方法及系统 |
CN111711526A (zh) * | 2020-06-16 | 2020-09-25 | 深圳前海微众银行股份有限公司 | 一种区块链节点的共识方法及系统 |
CN112527800B (zh) * | 2020-12-18 | 2022-07-22 | 山大地纬软件股份有限公司 | 树形链式账本结构、高性能并行共识方法及系统 |
CN112527800A (zh) * | 2020-12-18 | 2021-03-19 | 山大地纬软件股份有限公司 | 树形链式账本结构、高性能并行共识方法及系统 |
CN113269645B (zh) * | 2021-05-28 | 2024-05-17 | 中邮信息科技(北京)有限公司 | 一种区块链的交易信息调度方法、装置、介质及电子设备 |
CN113269645A (zh) * | 2021-05-28 | 2021-08-17 | 中邮信息科技(北京)有限公司 | 一种区块链的交易信息调度方法、装置、介质及电子设备 |
US11606428B2 (en) * | 2021-06-23 | 2023-03-14 | Beijing University Of Posts And Telecommunications | Data synchronization method and device |
US20220400152A1 (en) * | 2021-06-23 | 2022-12-15 | Beijing University Of Posts And Telecommunications | Data synchronization method and device |
CN113761068A (zh) * | 2021-09-15 | 2021-12-07 | 虎彩印艺股份有限公司 | 一种提升区块链网络并发处理能力的方法 |
CN114003552A (zh) * | 2021-12-30 | 2022-02-01 | 中科声龙科技发展(北京)有限公司 | 工作量证明运算方法、工作量证明芯片及上位机 |
CN115001809A (zh) * | 2022-05-31 | 2022-09-02 | 深圳壹账通智能科技有限公司 | 区块链网络共识方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109886681B (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109886681A (zh) | 区块链共识方法及共识系统 | |
US11177962B2 (en) | Optimizations for verification of interactions system and method | |
Sonnino et al. | Replay attacks and defenses against cross-shard consensus in sharded distributed ledgers | |
CN109859047A (zh) | 一种区块链更新方法和区块链更新系统 | |
Wüst et al. | ACE: Asynchronous and concurrent execution of complex smart contracts | |
CN109002725A (zh) | 基于区块链的数据处理系统 | |
CN108648078A (zh) | 一种交易预处理方法、装置及电子设备 | |
CN108269072A (zh) | 用于区块链的交易处理方法和网络节点 | |
CN111861482B (zh) | 一种区块链对账方法和系统 | |
CN113568981B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN108984789A (zh) | 分布式记账的方法、装置、存储介质及电子设备 | |
CN109033475A (zh) | 一种文件存储方法、装置、设备及存储介质 | |
CN109951547A (zh) | 事务请求并行处理方法、装置、设备和介质 | |
CN109408595A (zh) | 区块链记账方法、设备及计算机可读存储介质 | |
WO2023279972A1 (zh) | 区块链一致性处理方法、区块链节点和区块链系统 | |
CN112118107B (zh) | 一种实现数据可信的自适应执行方法 | |
CN111161078A (zh) | 一种一对多的区块链转账实现方法 | |
CN110992035A (zh) | 区块链节点管理方法、装置及系统 | |
CN110321219A (zh) | 一种事务请求的并行执行方法、装置、设备和介质 | |
WO2023040453A1 (zh) | 一种交易信息处理方法及装置 | |
CN111861481A (zh) | 一种区块链对账方法和系统 | |
CN112887436B (zh) | 一种共识方法、共识节点和流水线方式的区块链系统 | |
CN112991067B (zh) | 一种区块链共识方法、装置和系统 | |
CN111083221B (zh) | 一种交易验证方法及装置 | |
CN113810185A (zh) | 一种抗陷门泄露的链上数据修复系统及方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210618 Termination date: 20220131 |
|
CF01 | Termination of patent right due to non-payment of annual fee |