CN114331430B - 区块链共识方法、装置、设备和介质 - Google Patents
区块链共识方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN114331430B CN114331430B CN202111599589.8A CN202111599589A CN114331430B CN 114331430 B CN114331430 B CN 114331430B CN 202111599589 A CN202111599589 A CN 202111599589A CN 114331430 B CN114331430 B CN 114331430B
- Authority
- CN
- China
- Prior art keywords
- node
- secret
- sub
- accounting
- secrets
- 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.)
- Active
Links
Images
Landscapes
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书一个或多个实施例提供一种区块链共识方法、装置、设备和介质,所述方法应用于区块链网络中的节点设备,包括:接收所述区块链网络中的当前记账周期的记账节点分配的子秘密;其中,所述子秘密包括由所述记账节点基于秘密共享算法,对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的秘密分片;将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密;基于所述秘密共享算法和收集到的子秘密,对所述主秘密进行恢复,并在恢复出所述主秘密时,确定本节点设备恢复出所述主秘密的时刻是否早于其它各节点设备恢复出所述主秘密的时刻;如果是,确定本节点设备为下一轮记账周期的记账节点。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种区块链共识方法、装置、设备和介质。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式智能数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步、支持分布式程序的一致性执行等特性,使得区块链技术已在众多的领域中广泛的进行应用。
发明内容
本说明书提出一种区块链共识方法,所述方法应用于区块链网络中的节点设备;所述方法包括:
接收所述区块链网络中的当前记账周期的记账节点分配的子秘密;其中,所述子秘密包括由所述记账节点基于秘密共享算法,对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的秘密分片;
将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密;
基于所述秘密共享算法和收集到的子秘密,对所述主秘密进行恢复,并在恢复出所述主秘密时,确定本节点设备恢复出所述主秘密的时刻是否早于其它各节点设备恢复出所述主秘密的时刻;
如果是,确定本节点设备为下一轮记账周期的记账节点。
本说明书还提出一种区块链共识装置,所述装置应用于区块链网络中的节点设备;所述装置包括:
接收模块,用于接收所述区块链网络中的当前记账周期的记账节点分配的子秘密;其中,所述子秘密包括由所述记账节点基于秘密共享算法,对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的秘密分片;
收集模块,用于将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密;
恢复模块,用于基于所述秘密共享算法和收集到的子秘密,对所述主秘密进行恢复,并在恢复出所述主秘密时,确定本节点设备恢复出所述主秘密的时刻是否早于其它各节点设备恢复出所述主秘密的时刻;
确定模块,用于在本节点设备恢复出所述主秘密的时刻早于其它各节点设备恢复出所述主秘密的时刻时,确定本节点设备为下一轮记账周期的记账节点。
本说明书还提出一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如上述任一项所述方法的步骤。
本说明书还提出一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如上述任一项所述方法的步骤。
在上述技术方案中,可以由区块链网络中的当前记账周期的记账节点将对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的若干子秘密分配给该区块链网络中的各节点设备,各节点设备可以将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密,以基于收集到的子秘密对该主秘密进行恢复,从而可以将最早恢复出该主秘密的节点设备确定为下一轮记账周期的记账节点。
采用这样的方式,一方面,与PoW、PoS、DPoS等共识算法相比,可以减少区块链共识阶段的计算量,从而可以减少算力消耗,同时,可以缩短区块链中的节点设备达成共识的用时时长,从而可以缩短区块链出块间隔,提高区块链吞吐率,并缩短交易的确认时延;另一方面,由于通过秘密共享算法,使区块链中的节点设备只有在获取到满足特定条件的子秘密时才能恢复出主秘密,因此可以提高区块链共识机制的安全性和可靠性。
附图说明
图1是本说明书一示例性实施例示出的一种区块链网络的示意图;
图2是本说明书一示例性实施例示出的一种区块链共识方法的流程图;
图3是本说明书一示例性实施例示出的另一种区块链共识方法的流程图;
图4是本说明书一示例性实施例示出的一种候选区块的示意图;
图5是本说明书一示例性实施例示出的一种区块链共识装置所在电子设备的硬件结构图;
图6是本说明书一示例性实施例示出的一种区块链共识装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain)、私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还可以有上述多种类型的结合,比如私有链与联盟链的结合、联盟链与公有链的结合等。
其中,去中心化程度最高的是公有链。加入公有链的参与方(也可以称为区块链中的节点)可以读取链上的数据记录、参与交易、竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
私有链则相反,网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以视为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
联盟链则介于公有链以及私有链之间,可以实现“部分去中心化”。联盟链中各个节点通常有与之对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链的运行。
在区块链网络中,节点是逻辑上的通信实体;不同类型的多个区块链节点可以运行在同一个物理服务器上,也可以运行在不同的物理服务器上。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于链外产生的数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链网络中的节点设备对该交易进行共识,并在达成共识后,由区块链网络中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
其中,区块链中支持的共识算法可以包括:
第一类共识算法,即节点设备需要争夺每一轮记账周期的记账权的共识算法;例如,工作量证明(Proof of Work,PoW)、股权证明(Proof of Stake,PoS)、委任权益证明(Delegated Proof of Stake,DPoS)等共识算法;
第二类共识算法,即预先为每一轮记账周期选举记账节点(不需要争夺记账权)的共识算法;例如,实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)等共识算法。
在采用第一类共识算法的区块链网络中,争夺记账权的节点设备,都可以在接收到交易后执行该笔交易。争夺记账权的节点设备中可能有一个节点设备在本轮争夺记账权的过程中胜出,成为记账节点。记账节点可以将收到的交易与其它交易一起打包以生成候选区块,并将生成的候选区块或者该候选区块的区块头发送至其它节点设备进行共识。
在采用第二类共识算法的区块链网络中,具有记账权的节点设备在本轮记账前已经商定好。因此,节点设备在接收到交易后,如果自身不是本轮的记账节点,则可以将该交易发送至记账节点。对于本轮的记账节点,在将该交易与其它交易一起打包以生成候选区块的过程中或者之前,可以执行该交易。记账节点在生成候选区块后,可以将该候选区块或者该候选区块的区块头发送至其它节点设备进行共识。
如上所述,无论区块链采用以上示出的哪种共识算法,本轮的记账节点都可以将接收到的交易打包以生成候选区块,并将生成的候选区块或者该候选区块的区块头发送至其它节点设备进行共识验证。如果其它节点设备接收到候选区块或者该候选区块的区块头后,经验证没有问题,可以将该候选区块作为最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块或区块头的过程中,也可以执行该区块中的包含的交易。
然而,相关技术中常用的上述共识算法,通常存在区块链共识阶段的计算量大、区块链中的节点设备达成共识的用时长的问题。以PoW共识算法为例,区块链中的节点设备需要通过工作量来证明其贡献值,以竞争记账权,因此共识阶段的计算量较大,达成共识的用时较长;此外,由于算力通常是由计算机硬件提供的,因此就需要消耗大量的电力资源,不符合节能、环保的发展趋势。
为了解决上述问题,本说明书提出了一种区块链共识方法、装置、设备和介质。
请参考图1,图1是本说明书一示例性实施例示出的一种区块链网络的示意图。
在该区块链网络中,可以包括多个节点设备;其中,各节点设备之间可以进行交互。在每一轮记账周期中,竞争到记账权的节点设备成为记账节点,将用于生成最新区块的交易打包,以生成候选区块,并发起针对该候选区块的共识;在针对该候选区块的共识通过后,即可将该候选区块在该区块链中进行存储。
请参考图2,图2是本说明书一示例性实施例示出的一种区块链共识方法的流程图。
如图2所示的区块链共识方法可以应用于区块链网络中的节点设备。需要说明的是,对于一个区块链网络而言,该区块链网络中的任一节点设备都有可能争夺到某一轮记账周期的记账权,成为记账节点,因此该区块链共识方法可以应用于区块链网络中的任一节点设备。
上述区块链共识方法可以包括如下步骤:
步骤201:接收所述区块链网络中的当前记账周期的记账节点分配的子秘密;其中,所述子秘密包括由所述记账节点基于秘密共享算法,对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的秘密分片。
在本实施例中,对于上述区块链网络而言,作为当前记账周期(下面将该当前记账周期称为第N轮记账周期)的记账节点的节点设备(下面将该节点设备称为节点设备A),可以生成用于竞争下一轮记账周期(即为第N+1轮记账周期)的记账权的秘密(可称为主秘密),并基于秘密共享算法,对生成的该主秘密进行分割,得到若干秘密分片(可称为子秘密)。
其中,上述秘密共享算法可以是常用的秘密共享算法;例如,Shamir秘密共享方案、Feldman可验证的秘密共享方案等秘密共享算法;本说明书对此不作限制。
在示出的一种实施方式中,上述节点设备A对用于竞争上述第N+1轮记账周期的记账权的主秘密进行分割,得到的子秘密的数量,应当不大于上述区块链网络中的节点设备的数量。举例来说,假设该区块链网络中一共有5台节点设备,则节点设备A通过对该主秘密进行分割,最多可以得到5个子秘密。
在示出的一种实施方式中,上述节点设备A在生成用于竞争上述第N+1轮记账周期的记账权的主秘密时,具体可以基于与上述第N轮记账周期对应的候选区块的区块特征生成。
进一步地,在示出的一种实施方式中,上述区块特征可以包括区块头中的区块体根哈希值。
在一个例子中,可以基于单向哈希函数,对上述区块特征进行计算,并将计算得到的固定长度的输出串作为上述主秘密。
上述节点设备A在得到了上述若干子秘密的情况下,可以将这若干子秘密分别发送至该区块链网络中的各节点设备,从而使该区块链网络中的各节点设备可以接收到节点设备A分配的子秘密。
步骤202:将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密。
在本实施例中,对于上述区块链网络中的任一节点设备(下面将该节点设备称为节点设备X)而言,一方面,节点设备X可以将接收到的子秘密广播发送至该区块链网络中的其它各节点设备;另一方面,节点设备X可以收集该区块链网络中的其它各节点设备发送的子秘密。
在示出的一种实施方式中,为了保障子秘密的数据安全,避免出现伪造或篡改子秘密的情况,上述节点设备X在广播发送接收到的子秘密时,具体可以对该子秘密进行数字签名,并将该子秘密和针对该子秘密的数字签名广播发送至该区块链网络中的其它各节点设备。
在上述情况下,上述节点设备X在接收到其它各节点设备广播发送的子秘密和针对该子秘密的数字签名时,可以先对该数字签名进行验证,再在该数字签名验证通过后,收集该子秘密。相应地,如果该数字签名验证未通过,则可以认为接收到的该子秘密存在异常,因此可以不收集该子秘密。
步骤203:基于所述秘密共享算法和收集到的子秘密,对所述主秘密进行恢复,并在恢复出所述主秘密时,确定本节点设备恢复出所述主秘密的时刻是否早于其它各节点设备恢复出所述主秘密的时刻。
在本实施例中,上述节点设备X可以基于上述秘密共享算法,以及收集到的子秘密,对用于竞争上述第N+1轮记账周期的记账权的主秘密进行恢复,以尝试通过收集到的子恢复出该主秘密。
而在通过收集到的子恢复出上述主秘密的情况下,上述节点设备X可以确定本节点设备(即节点设备X)恢复出该主秘密的时刻,是否早于上述区块链网络中的其它各节点设备恢复出该主秘密的时刻。
在一个例子中,上述区块链网络中的节点设备在恢复出主秘密时,可以向其它各节点设备广播发送用于指示恢复出主秘密的通知消息。在这种情况下,在恢复出上述主秘密的情况下,上述节点设备X可以检测是否已经接收到其它任一节点设备发送的用于指示恢复出该主秘密的通知消息,如果否,则可以确定本节点设备恢复出该主秘密的时刻,早于该区块链网络中的其它各节点设备恢复出该主秘密的时刻。
步骤204:如果是,确定本节点设备为下一轮记账周期的记账节点。
在本实施例中,如果上述节点设备X恢复出用于竞争上述第N+1轮记账周期的记账权的主秘密的时刻,早于上述区块链网络中的其它各节点设备恢复出该主秘密的时刻,则节点设备X可以确定本节点设备(即节点设备X)为上述第N+1轮记账周期的记账节点。
下面以Shamir秘密共享方案为例,对如图2所示的区块链共识方法进行举例说明。
结合如图1所示的区块链网络,假设该区块链网络中一共有5台节点设备,分别为节点设备X1、节点设备X2、节点设备X3、节点设备X4和节点设备X5;其中,节点设备X1为该区块链网络中的第N轮记账周期的记账节点。
上述节点设备X1可以生成用于竞争第N+1轮记账周期的记账权的主秘密S,并基于Shamir秘密共享算法,对主秘密S进行分割,得到4份子秘密,分别为:子秘密S1、子秘密S2、子秘密S3和子秘密S4。
后续,上述节点设备X1可以将子秘密S1发送至上述节点设备X2,将子秘密S2发送至上述节点设备X3,将子秘密S3发送至上述节点设备X4,并将子秘密S4发送至上述节点设备X5。
而节点设备X2一方面可以接收到节点设备X1分配的子秘密S1,另一方面可以将子秘密S1广播发送至节点设备X3、节点设备X4和节点设备X5;节点设备X3一方面可以接收到节点设备X1分配的子秘密S2,另一方面可以将子秘密S2广播发送至节点设备X2、节点设备X4和节点设备X5;节点设备X4一方面可以接收到节点设备X1分配的子秘密S3,另一方面可以将子秘密S3广播发送至节点设备X2、节点设备X3和节点设备X5;节点设备X5一方面可以接收到节点设备X1分配的子秘密S4,另一方面可以将子秘密S4广播发送至节点设备X2、节点设备X3和节点设备X4。这样,使得各节点设备可以收集到其它各节点设备广播发送的子秘密。
需要说明的是,在Shamir秘密共享方案中,可以预先设置门限值n。在这种情况下,如果将主分割成了m(m≥n)份,则需要至少获得这m份子秘密中的n份,才能基于获得的这n份子恢复出该主秘密;如果仅获得少于n份的子秘密,则无法恢复出该主秘密。
因此,假设预先设置的门限值为3,则以上述节点设备X2为例,除上述子秘密S1外,节点设备X2在收集到子秘密S2、子秘密S3和子秘密S4中的任意两份子秘密时,即可基于Shamir秘密共享算法和收集到的3份子秘密,对主秘密S进行恢复。
在恢复出主秘密S时,节点设备X2可以确定恢复出主秘密S的时刻,是否早于节点设备X3、节点设备X4和节点设备X5中的任一节点设备恢复出主秘密的时刻。如果是,则可以确定节点设备X2为第N+1轮记账周期的记账节点。
在上述技术方案中,可以由区块链网络中的当前记账周期的记账节点将对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的若干子秘密分配给该区块链网络中的各节点设备,各节点设备可以将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密,以基于收集到的子秘密对该主秘密进行恢复,从而可以将最早恢复出该主秘密的节点设备确定为下一轮记账周期的记账节点。
采用这样的方式,一方面,与PoW、PoS、DPoS等共识算法相比,可以减少区块链共识阶段的计算量,从而可以减少算力消耗,同时,可以缩短区块链中的节点设备达成共识的用时时长,从而可以缩短区块链出块间隔,提高区块链吞吐率,并缩短交易的确认时延;另一方面,由于通过秘密共享算法,使区块链中的节点设备只有在获取到满足特定条件的子秘密时才能恢复出主秘密,因此可以提高区块链共识机制的安全性和可靠性。
请参考图3,图3是本说明书一示例性实施例示出的另一种区块链共识方法的流程图。
如图3所示的区块链公式方法可以视为如图2所示的区块链共识方法的一种具体实现方法。
上述区块链共识方法可以包括如下步骤:
步骤301:接收所述区块链网络中的当前记账周期的记账节点分配的子秘密;其中,所述子秘密包括由所述记账节点基于秘密共享算法,对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的秘密分片。
步骤302:将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密。
步骤303:基于所述秘密共享算法和收集到的子秘密,对所述主秘密进行恢复,并在恢复出所述主秘密时,确定本节点设备恢复出所述主秘密的时刻是否早于其它各节点设备恢复出所述主秘密的时刻。
步骤304:如果是,确定本节点设备为下一轮记账周期的记账节点。
上述步骤301-304的具体实施可以参考前述步骤201-204;本说明书在此不再赘述。
步骤305:生成与下一轮记账周期对应的候选区块,并发起针对所述候选区块的共识。
在本实施例中,上述节点设备X在确定本节点设备为上述第N+1轮记账周期的记账节点的情况下,可以将用于生成最新区块的交易打包,以生成与第N+1轮记账周期对应的候选区块,并在上述区块链网络中发起针对该候选区块的共识。
在示出的一种实施方式中,为了对用于竞争上述第N轮记账周期的记账权的主秘密,以及对该主秘密进行分割得到的子秘密进行保存,上述节点设备X在生成与上述第N+1轮记账周期对应的候选区块时,可以将收集到的子秘密和恢复出的主秘密写入该候选区块的区块头。
举例来说,上述候选区块中的具体内容可以如图4所示。
步骤306:在针对所述候选区块的共识通过后,将所述候选区块在所述区块链中进行存储。
在本实施例中,在针对与上述第N+1轮记账周期对应的候选区块的共识通过后,即可将该候选区块在上述区块链中进行存储。
在示出的一种实施方式中,为了保障主秘密的数据安全,避免出现伪造或篡改主秘密的情况,上述节点设备A在生成用于竞争上述第N轮记账周期的记账权的主秘密时,可以对生成的该主秘密进行数字签名;而在对上述主秘密进行分割时,具体可以对该主秘密和针对该主秘密的数字签名进行分割,得到若干子秘密。
在上述情况下,可以在针对与上述第N+1轮记账周期对应的候选区块的共识通过,并且对针对上述主秘密的数字签名验证通过后,将该候选区块在上述区块链中进行存储。
继续参考图4,上述节点设备X可以将针对上述主秘密的数字签名也写入与上述第N+1轮记账周期对应的候选区块的区块头。结合前述步骤202,节点设备X还可以将针对收集到的子秘密的数字签名也写入该候选区块的区块头。
步骤307:生成用于竞争再下一轮记账周期的记账权的主秘密,并基于所述秘密共享算法,对所述主秘密进行分割,得到若干子秘密。
在本实施例中,上述节点设备X可以进一步生成用于竞争再下一轮记账周期(即为第N+2轮记账周期)的记账权的主秘密,并基于上述秘密共享算法,对生成的该主秘密进行分割,得到若干子秘密。
步骤308:将所述若干子秘密分别发送至所述区块链网络中的各节点设备,以由所述区块链网络中的各节点设备接收本节点设备分配的子秘密。
在本实施例中,上述节点设备X在得到了上述若干子秘密的情况下,可以将这若干子秘密分别发送至上述区块链网络中的各节点设备,从而使该区块链网络中的各节点设备可以接收到节点设备X分配的子秘密,而最早通过收集到的子恢复出该主秘密的节点设备,即可成为上述第N+2轮记账周期的记账节点。
以此类推,在上述区块链网络中,对于每一轮记账周期而言,该区块链网络中的所有节点设备可以通过上述区块链共识方法,竞争这一轮记账周期的记账权。
需要说明的是,在示出的一种实施方式中,如果用于竞争上述第N+1轮记账周期的记账权的主秘密基于与上述第N轮记账周期对应的候选区块的区块特征生成,则对于创世区块(即区块链中的第一个区块)而言,由于创世区块即为与第一轮记账周期对应的候选区块,因此无法生成用于竞争第一轮记账周期的记账权的主秘密。
上述节点设备X可以基于预设的区块链共识算法,确定本节点设备(即节点设备X)是否为第一轮记账周期的记账节点。如果是,则节点设备X可以生成与第一轮记账周期对应的创世区块,并在上述区块链网络中发起针对该创世区块的共识。在针对上述创世区块的共识通过后,即可将该创世区块在上述区块链中进行存储。
其中,上述区块链共识算法可以是无需利用与上述第N轮记账周期对应的候选区块即可确定第N+1轮记账周期的记账节点的区块链共识算法,具体可以是常用的区块链共识算法;例如,PoW共识算法、PoS共识算法、DPoS共识算法、PBFT共识算法等共识算法;本说明书对此不作限制。
后续,上述节点设备X可以基于上述创世区块的区块特征,生成用于竞争第二轮记账周期的记账权的主秘密,并基于上述秘密共享算法,对生成的该主秘密进行分割,得到若干子秘密,并将这若干子秘密分别发送至上述区块链网络中的各节点设备,从而使该区块链网络中的各节点设备可以接收到节点设备X分配的子秘密,而最早通过收集到的子恢复出该主秘密的节点设备,即可成为第二轮记账周期的记账节点。
在实际应用中,用于竞争上述第N+1轮记账周期的记账权的主秘密也可以是在上述区块链网络中随机生成的随机数。在这种情况下,上述创世区块也可以通过如图2和图3所示的区块链共识方法生成。
在上述技术方案中,可以由区块链网络中的当前记账周期的记账节点将对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的若干子秘密分配给该区块链网络中的各节点设备,各节点设备可以将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密,以基于收集到的子秘密对该主秘密进行恢复,从而可以将最早恢复出该主秘密的节点设备确定为下一轮记账周期的记账节点。
采用这样的方式,一方面,与PoW、PoS、DPoS等共识算法相比,可以减少区块链共识阶段的计算量,从而可以减少算力消耗,同时,可以缩短区块链中的节点设备达成共识的用时时长,从而可以缩短区块链出块间隔,提高区块链吞吐率,并缩短交易的确认时延;另一方面,由于通过秘密共享算法,使区块链中的节点设备只有在获取到满足特定条件的子秘密时才能恢复出主秘密,因此可以提高区块链共识机制的安全性和可靠性。
与前述区块链共识方法的实施例相对应,本说明书还提供了区块链共识装置的实施例。
本说明书区块链共识装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书区块链共识装置所在电子设备的一种硬件结构图,除了如图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该区块链共识的实际功能,还可以包括其他硬件,对此不再赘述。
参考图6,图6是本说明书一示例性实施例示出的一种区块链共识装置的框图。
上述区块链共识装置可以应用于如图5所示的电子设备;该电子设备可以作为区块链网络中的节点设备。
上述区块链共识装置可以包括:
接收模块601,用于接收所述区块链网络中的当前记账周期的记账节点分配的子秘密;其中,所述子秘密包括由所述记账节点基于秘密共享算法,对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的秘密分片;
收集模块602,用于将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密;
恢复模块603,用于基于所述秘密共享算法和收集到的子秘密,对所述主秘密进行恢复,并在恢复出所述主秘密时,确定本节点设备恢复出所述主秘密的时刻是否早于其它各节点设备恢复出所述主秘密的时刻;
确定模块604,用于在本节点设备恢复出所述主秘密的时刻早于其它各节点设备恢复出所述主秘密的时刻时,确定本节点设备为下一轮记账周期的记账节点。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(Flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(Transitory Media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (12)
1.一种区块链共识方法,其特征在于,所述方法应用于区块链网络中的节点设备;所述方法包括:
接收所述区块链网络中的当前记账周期的记账节点分配的子秘密;其中,所述子秘密包括由所述记账节点基于秘密共享算法,对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的秘密分片;
将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密;
基于所述秘密共享算法和收集到的子秘密,对所述主秘密进行恢复,并在恢复出所述主秘密时,确定本节点设备恢复出所述主秘密的时刻是否早于其它各节点设备恢复出所述主秘密的时刻;
如果是,确定本节点设备为下一轮记账周期的记账节点。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
生成与下一轮记账周期对应的候选区块,并发起针对所述候选区块的共识;
在针对所述候选区块的共识通过后,将所述候选区块在所述区块链中进行存储;
生成用于竞争再下一轮记账周期的记账权的主秘密,并基于所述秘密共享算法,对所述主秘密进行分割,得到若干子秘密;
将所述若干子秘密分别发送至所述区块链网络中的各节点设备,以由所述区块链网络中的各节点设备接收本节点设备分配的子秘密。
3.根据权利要求2所述的方法,其特征在于,所述主秘密由当前记账周期的记账节点进行数字签名;
所述在针对所述候选区块的共识通过后,将所述候选区块在所述区块链中进行存储,包括:
在针对所述候选区块的共识通过,并且对针对所述主秘密的数字签名验证通过后,将所述候选区块在所述区块链中进行存储。
4.根据权利要求2所述的方法,其特征在于,所述生成与下一轮记账周期对应的候选区块,包括:
将收集到的子秘密和恢复出的主秘密写入所述候选区块的区块头。
5.根据权利要求1所述的方法,其特征在于,对所述主秘密进行分割得到的子秘密的数量不大于所述区块链网络中的节点设备的数量。
6.根据权利要求1所述的方法,其特征在于,所述主秘密由所述当前记账周期的记账节点,基于与当前记账周期对应的候选区块的区块特征生成。
7.根据权利要求6所述的方法,其特征在于,所述区块特征包括区块头中的区块体根哈希值。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于预设的区块链共识算法,确定本节点设备是否为第一轮记账周期的记账节点;
如果是,生成与第一轮记账周期对应的创世区块,并发起针对所述创世区块的共识;
在针对所述创世区块的共识通过后,将所述创世区块在所述区块链中进行存储;
生成用于竞争第二轮记账周期的记账权的主秘密,并基于所述秘密共享算法,对所述主秘密进行分割,得到若干子秘密;
将所述若干子秘密分别发送至所述区块链网络中的各节点设备,以由所述区块链网络中的各节点设备接收本节点设备分配的子秘密。
9.根据权利要求1所述的方法,其特征在于,所述将接收到的子秘密广播发送至其它各节点设备,包括:
对接收到的子秘密进行数字签名,并所述子秘密和针对所述子秘密的数字签名广播发送至其它各节点设备;
所述收集其它各节点设备广播发送的子秘密,包括:
在接收到其它各节点设备广播发送的子秘密和针对所述子秘密的数字签名时,对所述数字签名进行验证,并在所述数字签名验证通过后,收集所述子秘密。
10.一种区块链共识装置,其特征在于,所述装置应用于区块链网络中的节点设备;所述装置包括:
接收模块,用于接收所述区块链网络中的当前记账周期的记账节点分配的子秘密;其中,所述子秘密包括由所述记账节点基于秘密共享算法,对生成的用于竞争下一轮记账周期的记账权的主秘密进行分割,得到的秘密分片;
收集模块,用于将接收到的子秘密广播发送至其它各节点设备,并收集其它各节点设备广播发送的子秘密;
恢复模块,用于基于所述秘密共享算法和收集到的子秘密,对所述主秘密进行恢复,并在恢复出所述主秘密时,确定本节点设备恢复出所述主秘密的时刻是否早于其它各节点设备恢复出所述主秘密的时刻;
确定模块,用于在本节点设备恢复出所述主秘密的时刻早于其它各节点设备恢复出所述主秘密的时刻时,确定本节点设备为下一轮记账周期的记账节点。
11.一种电子设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111599589.8A CN114331430B (zh) | 2021-12-24 | 2021-12-24 | 区块链共识方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111599589.8A CN114331430B (zh) | 2021-12-24 | 2021-12-24 | 区块链共识方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114331430A CN114331430A (zh) | 2022-04-12 |
CN114331430B true CN114331430B (zh) | 2023-03-31 |
Family
ID=81013805
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111599589.8A Active CN114331430B (zh) | 2021-12-24 | 2021-12-24 | 区块链共识方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114331430B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098697A (zh) * | 2021-06-08 | 2021-07-09 | 清华大学 | 一种区块链数据写入、访问方法及装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2568661T3 (es) * | 2006-11-07 | 2016-05-03 | Security First Corp. | Sistemas y métodos para distribuir y garantizar datos |
JP6567683B2 (ja) * | 2015-10-16 | 2019-08-28 | 国立大学法人東北大学 | 情報処理システム、情報処理装置、情報処理方法、及び、プログラム |
US11469886B2 (en) * | 2019-05-22 | 2022-10-11 | Salesforce.Com, Inc. | System or method to implement record level access on metadata driven blockchain using shared secrets and consensus on read |
WO2021163960A1 (zh) * | 2020-02-20 | 2021-08-26 | 深圳市汇尊区块链技术有限公司 | 基于区块链的随机数生成方法、系统及存储介质 |
CN112329051B (zh) * | 2020-10-23 | 2023-09-19 | 中国科学院数据与通信保护研究教育中心 | 一种安全高效的共识机制实现方法及系统 |
CN112468302B (zh) * | 2020-10-23 | 2024-05-24 | 湖南天河国云科技有限公司 | 基于可验证多方秘密分享的可编辑区块链 |
CN112734576B (zh) * | 2021-01-19 | 2022-09-20 | 广东工业大学 | 一种区块链的共识系统及方法 |
-
2021
- 2021-12-24 CN CN202111599589.8A patent/CN114331430B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113098697A (zh) * | 2021-06-08 | 2021-07-09 | 清华大学 | 一种区块链数据写入、访问方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114331430A (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110800250B (zh) | 受控加密私钥的发布 | |
CN108182581B (zh) | 一种区块链的记账方法及装置 | |
EP3812992B1 (en) | Block chain transaction method and apparatus | |
CN110046996B (zh) | 数据处理方法和装置 | |
CN107465505B (zh) | 一种密钥数据处理方法、装置及服务器 | |
RU2708358C1 (ru) | Криптографическая интегральная схема специального назначения, включающая в себя закодированную в цепи функцию преобразования | |
CN111383021B (zh) | 基于区块链网络的节点管理方法、装置、设备及介质 | |
EP3857373A1 (en) | Blockchain-based resource allocation method and apparatus | |
CN108647965B (zh) | 跨链交易方法、装置、存储介质及电子设备 | |
CN111556007B (zh) | 基于区块链的身份校验方法、装置、设备及存储介质 | |
CN112907369B (zh) | 基于区块链的数据共识方法及装置、电子设备、存储介质 | |
CN110189122B (zh) | 为区块链上的数据锚定时间的方法及装置、电子设备 | |
CN109064325B (zh) | 一种基于区块链的智能合约实现方法和装置 | |
CN111753335A (zh) | 区块内容的编辑方法及装置 | |
CN108985644A (zh) | 权益分配方法及装置、电子设备 | |
CN109242676B (zh) | 区块发布方法及装置、电子设备 | |
CN106650496B (zh) | 一种数据处理方法及装置 | |
CN109815289A (zh) | 用于区块链网络的区块生成方法、计算设备、存储介质 | |
CN111931195A (zh) | 一种基于区块链的用户私钥管理方法、设备及介质 | |
CN108765159A (zh) | 一种基于区块链的上链与状态处理方法、装置及互联系统 | |
US11250438B2 (en) | Blockchain-based reimbursement splitting | |
CN109587131A (zh) | 一种区块链网络间数据通信方法和装置 | |
CN109102113A (zh) | 事件预测方法及装置、电子设备 | |
CN109146146A (zh) | 事件预测方法及装置、电子设备 | |
CN109117994A (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 |