一种区块链共识方法、装置及存储介质转让专利

申请号 : CN202110413117.2

文献号 : CN112822013B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 向舜

申请人 : 卓尔智联(武汉)研究院有限公司

摘要 :

本申请提供一种区块链共识方法,包括:确认区块链在第一时间区间内的第一领导节点;基于所述第一领导节点的身份信息确认第一关键区块;交易发生时,所述第一领导节点基于所述第一关键区块生成第一普通区块;所述第一普通区块对应的第一普通节点记录交易数据。本申请还提供一种区块链共识装置和存储介质,通过本申请提供的区块链共识方法、装置和存储介质,可以提升区块链的共识效率。

权利要求 :

1.一种区块链共识方法,其特征在于,所述方法包括:确认区块链在第一时间区间内的第一领导节点;

基于所述第一领导节点的身份信息确认第一关键区块;

交易发生时,所述第一领导节点基于所述第一关键区块生成第一普通区块;

所述第一普通区块对应的第一普通节点记录交易数据;

其中,所述确认区块链在第一时间区间内的第一领导节点包括:若所述区块链中的第一节点在第二时间区间内最先获得第二领导节点对应的工作量证明机制POW难题的解,则确定所述第一节点为所述第一领导节点;所述第二时间区间与所述第一时间区间相邻,且所述第二时间区间位于所述第一时间区间之前;

在确认第一领导节点后,所述方法还包括:检测所述第二时间区间内所述第二领导节点发送至至少两个普通区块的私钥是否相同;

若所述第二领导节点发送至至少两个普通区块的私钥相同,确定所述第二领导节点为恶意节点;

所述第一领导节点广播所述第二领导节点的恶意操作。

2.根据权利要求1所述的方法,其特征在于,所述基于所述第一领导节点的身份信息确定第一关键区块,包括:

所述第一领导节点将所述第一领导节点的身份信息存储至所述第一关键区块的区块头,并将所述第一关键区块连接至所述区块链中;

和/或,所述第一领导节点将所述第一领导节点的公钥存储至所述第一关键区块的区块头,并将所述第一关键区块连接至所述区块链中。

3.根据权利要求1所述的方法,其特征在于,所述第一领导节点基于所述第一关键区块生成第一普通区块,包括:

交易发生时,所述第一领导节点基于所述第一关键区块中存储的所述第一领导节点的公钥生成第一私钥,并将所述第一私钥存储至第一空白区块的区块头;将所述交易数据存储至所述第一空白区块的区块体;

确定所述第一空白区块为所述第一普通区块,所述第一空白区块由所述区块链生成。

4.根据权利要求1至3任一项所述的方法,其特征在于,所述第一领导节点用于在当前共识持续的第一时间区间内生成至少一个普通区块。

5.根据权利要求4所述的方法,其特征在于,所述方法还包括:所述第一领导节点生成第一选举区块;所述第一选举区块的区块头包括所述第一领导节点的私钥;所述第一选举区块的区块体包括所述第二领导节点对应的POW难题和所述第一领导节点的解题时长。

6.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述第二领导节点发送至至少两个普通区块的私钥相同,所述第一领导节点基于所述第一领导节点的身份信息确认第二关键区块;

基于所述第二关键区块和所述第二时间区间内的交易数据,重新生成至少一个普通区块。

7.一种区块链共识装置,其特征在于,所述装置包括:确认单元,用于确认区块链在第一时间区间内的第一领导节点;基于所述第一领导节点的身份信息确认第一关键区块;

生成单元,用于在交易发生时,基于所述第一关键区块生成第一普通区块;

所述第一普通区块对应的第一普通节点记录交易数据;

其中,所述确认 单元,具体用于:若所述区块链中的第一节点在第二时间区间内最先获得第二领导节点对应的工作量证明机制POW难题的解,则确定所述第一节点为所述第一领导节点;所述第二时间区间与所述第一时间区间相邻,且所述第二时间区间位于所述第一时间区间之前;

所述装置还包括检测单元和广播单元,其中,所述检测单元,用于检测所述第二时间区间内所述第二领导节点发送至至少两个普通区块的私钥是否相同;若所述第二领导节点发送至至少两个普通区块的私钥相同,确定所述第二领导节点为恶意节点;所述广播单元,用于广播所述第二领导节点的恶意操作。

8.一种存储介质,存储有可执行程序,其特征在于,所述可执行程序被处理器执行时,实现权利要求1至6任一项所述的区块链共识方法。

9.一种区块链共识装置,包括存储器、处理器及存储在存储器上并能够由所述处理器运行的可执行程序,其特征在于,所述处理器运行所述可执行程序时执行如权利要求1至6任一项所述的区块链共识方法的步骤。

说明书 :

一种区块链共识方法、装置及存储介质

技术领域

[0001] 本申请涉及区块链技术领域,尤其涉及一种区块链共识方法、装置及存储介质。

背景技术

[0002] 区块链的数字货币应用中,往往通过共识算法来得到新的区块,常用的共识算法为工作量证明机制(Proof‑of‑Work,POW)算法;相关技术中,区块的大小和区块的生成速度
影响POW算法的效率,因此,如何提升区块链的共识效率,是亟需解决的技术问题。

发明内容

[0003] 本申请实施例提供一种区块链共识方法、装置及存储介质,可以提升区块链的共识效率。
[0004] 本申请实施例的技术方案是这样实现的:
[0005] 第一方面,本申请实施例提供一种区块链共识方法,包括:
[0006] 确认区块链在第一时间区间内的第一领导节点;
[0007] 基于所述第一领导节点的身份信息确认第一关键区块;
[0008] 交易发生时,所述第一领导节点基于所述第一关键区块生成第一普通区块;
[0009] 所述第一普通区块对应的第一普通节点记录交易数据。
[0010] 上述方案中,所述基于所述第一领导节点的身份信息确定第一关键区块,包括:
[0011] 所述第一领导节点将所述第一领导节点的身份信息存储至所述第一关键区块的区块头,并将所述第一关键区块连接至所述区块链中;
[0012] 和/或,所述第一领导节点将所述第一领导节点的公钥存储至所述第一关键区块的区块头,并将所述第一关键区块连接至所述区块链中。
[0013] 上述方案中,所述第一领导节点基于所述第一关键区块生成第一普通区块,包括:
[0014] 交易发生时,所述第一领导节点基于所述第一关键区块中存储的所述第一领导节点的公钥生成第一私钥,并将所述第一私钥存储至第一空白区块的区块头;将所述交易数
据存储至所述第一空白区块的区块体;
[0015] 确定所述第一空白区块为所述第一普通区块,所述第一空白区块由所述区块链生成。
[0016] 上述方案中,所述确认区块链在第一时间区间内的第一领导节点包括:
[0017] 若所述区块链中的第一节点在第二时间区间内最先获得第二领导节点对应的工作量证明机制POW难题的解,则确定所述第一节点为所述第一领导节点;
[0018] 所述第二时间区间与所述第一时间区间相邻,且所述第二时间区间位于所述第一时间区间之前,所述第一领导节点用于在当前共识持续的第一时间区间内生成至少一个普
通区块。
[0019] 上述方案中,所述方法还包括:
[0020] 所述第一领导节点生成第一选举区块;所述第一选举区块的区块头包括所述第一领导节点的私钥;所述第一选举区块的区块体包括所述第二领导节点对应的POW难题和所
述第一领导节点的解题时长。
[0021] 上述方案中,所述确认第一领导节点后,所述方法还包括:
[0022] 检测所述第二时间区间内所述第二领导节点发送至至少两个普通节点的私钥是否相同;
[0023] 若所述第二领导节点发送至至少两个普通节点的私钥相同,确定所述第二领导节点为恶意节点;
[0024] 所述第一领导节点广播所述第二领导节点的恶意操作。
[0025] 上述方案中,所述方法还包括:
[0026] 若所述第二领导节点发送至至少两个普通节点的私钥相同,所述第一领导节点基于所述第一领导节点的身份信息确认第二关键区块;
[0027] 基于所述第二关键区块和所述第二时间区间内的交易数据,重新生成至少一个普通区块。
[0028] 第二方面,本申请实施例提供一种区块链共识装置,所述装置包括:
[0029] 确认单元,用于确认区块链在第一时间区间内的第一领导节点;基于所述第一领导节点的身份信息确认第一关键区块;
[0030] 生成单元,用于在交易发生时,基于所述第一关键区块生成第一普通区块;
[0031] 所述第一普通区块对应的第一普通节点记录交易数据。
[0032] 第三方面,本申请实施例提供一种存储介质,存储有可执行程序,所述可执行程序被处理器执行时,实现上述区块链共识装置执行的区块链共识方法。
[0033] 第四方面,本申请实施例提供一种区块链共识装置,所述区块链共识装置使得处理器执行上述区块链共识方法。
[0034] 本申请实施例提供的区块链共识方法、装置及存储介质,通过确认区块链在第一时间区间内的第一领导节点;基于所述第一领导节点的身份信息确认第一关键区块;交易
发生时,所述第一领导节点基于所述第一关键区块生成第一普通区块;所述第一普通区块
对应的第一普通节点记录交易数据。可以提升区块链的共识效率。

附图说明

[0035] 图1示出了本申请实施例提供的区块链共识方法的一种可选流程示意图;
[0036] 图2示出了本申请实施例提供的区块链共识方法的另一种可选流程示意图;
[0037] 图3示出了本申请实施例提供的区块链共识方法的又一种可选流程示意图;
[0038] 图4示出了本申请实施例提供的区块链共识装置的可选结构示意图;
[0039] 图5示出了本申请实施例提供的区块链共识设备的硬件组成结构示意图。

具体实施方式

[0040] 以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
[0041] 区块链的数字货币应用中,往往通过共识算法来得到新的区块,常用的共识算法为POW。例如比特币的生成,POW算法就是用来确认工作端做过一定量工作的证明。POW算法
的主要特征就是工作端需要做一定难度的工作得出一个结果,即消耗大量的算力,而验证
方确很容易通过结果来检查工作端是否做了相应的工作。简单来说,比特币的POW算法就是
用不同的随机数重复计算区块头的哈希值,直到找到一个满足条件的哈希值,该过程俗称
为“挖矿”。
[0042] 为了保障系统的稳定性和安全性,相关技术中,将系统设定为大约每10分钟生成一个区块,并且区块的大小不能超过1兆字节(MB)。然而正是由于这样的一些设定限制了比
特币的吞吐量。比特币的吞吐量大约7tps,但是实际情况下只有3‑4tps,即每秒可以处理大
约3‑4笔交易。这样的吞吐量根本无法匹满足部分应用场景。所以这就意味着如果想要更加
广泛的使用区块链技术,区块链扩容和效率的提升尤为重要。
[0043] 在当前POW算法的情况下,限制比特币吞吐量性能的要素主要有两个:一个是区块的大小,另一个是区块的生成速度。增加区块的大小可以增加一个区块可以容纳的交易数
量,从而增加吞吐量,但是区块的大小增加同时也导致了区块在网络中传输的延迟增加。如
果增加区块的生成速度,可以降低交易的确认延迟,但是这样也会导致分叉更频繁,系统的
安全性大大降低。
[0044] 同时,比特币使用POW算法的作用是选出具有打包资格的节点。在这个过程中,比特币的节点选举和区块的打包是一起完成的,即最快完成POW计算的节点为被选取节点,该
节点获得比特币,并负责打包区块数据,在链上广播更新。比特币转账手续费是交易者付给
矿工的一笔费用,用于激励矿工竞争记账为比特币提供足够的算力从而确保比特币网络的
安全。因此每一次数据变动时,都需要通过POW算法选取节点进行记账,并在确定节点和/或
节点记账后在区块链中进行广播。
[0045] 基于目前共识方法中存在的问题,本申请提出一种区块链共识方法,能够解决现有技术方案中无法解决的技术难题和缺点。
[0046] 图1示出了本申请实施例提供的区块链共识方法的一种可选流程示意图,将根据各个步骤进行说明。
[0047] 步骤S101,确认区块链在第一时间区间内的第一领导节点。
[0048] 在一些实施例中,若所述区块链中的第一节点在第二时间区间内最先获得第二领导节点对应的POW难题的解,则区块链共识装置(以下简称装置)确定所述第一节点为所述
区块链在第一时间区间内的第一领导节点。
[0049] 其中,所述第二时间区间与所述第一时间区间相邻,且所述第二时间区间位于所述第一时间区间之前,所述第一领导节点用于在当前共识持续的第一时间区间内生成至少
一个普通区块。
[0050] 在一些可选实施例中,确认所述第一领导节点后,所述第一领导节点生成第一选举区块;所述第一选举区块的区块头包括所述第一领导节点的私钥;所述第一选举区块的
区块体包括所述第二领导节点对应的POW难题和所述第一领导节点的解题时长。
[0051] 步骤S102,基于所述第一领导节点的身份信息确认第一关键区块。
[0052] 在一些实施例中,所述装置基于所述第一领导节点的身份信息确认第一关键区块。
[0053] 具体实施时,所述第一领导节点将所述第一领导节点的身份信息存储至所述第一关键区块的区块头,并将所述第一关键区块连接至所述区块链中;和/或,所述第一领导节
点将所述第一领导节点的公钥存储至所述第一关键区块的区块头,并将所述第一关键区块
连接至所述区块链中。
[0054] 在一些可选实施例中,所述第一关键区块包括区块头;所述第一关键区块的区块头中包括:所述第一关键区块连接的上一个区块的引用信息、格林威治标准时间
(Greenwich Mean Time,GMT)、支付奖励的交易数据库信息、目标值、随机数和所述第一领
导节点的公钥至少之一。
[0055] 步骤S103,交易发生时,所述第一领导节点基于所述第一关键区块生成第一普通区块。
[0056] 在一些实施例中,交易发生时,所述第一领导节点基于所述第一关键区块生成第一普通区块。
[0057] 具体实施时,所述第一领导节点基于所述第一关键区块中存储的所述第一领导节点的公钥生成第一私钥,并将所述第一私钥存储至第一空白区块的区块头;将所述交易数
据存储至所述第一空白区块的区块体;
[0058] 确定所述第一空白区块为所述第一普通区块,所述第一空白区块由所述区块链生成。
[0059] 在一些可选实施例中,所述第一普通区块包括区块头和区块体;所述第一普通区块的区块体中包括交易记录;所述第一普通区块的区块头中包括:所述第一普通区块连接
的上一个区块的引用信息、格林威治标准时间、所述交易记录的密码学哈希结果、所述交易
记录的密码学签名和第一私钥至少之一;
[0060] 其中,所述密码学签名使用的第一私钥与所述第一领导节点的公钥对应。
[0061] 如此,通过本申请实施例提供的区块链共识方法,通过确认区块链在第一时间区间内的第一领导节点;基于所述第一领导节点的身份信息确认第一关键区块;交易发生时,
所述第一领导节点基于所述第一关键区块生成第一普通区块;所述第一普通区块对应的第
一普通节点记录交易数据,将共识过程和打包并存储交易数据的过程分开,可以提升区块
链的共识效率。
[0062] 图2示出了本申请实施例提供的区块链共识方法的另一种可选流程示意图,将根据各个步骤进行说明。
[0063] 其中,步骤S202至步骤S203可以在步骤S101之后、步骤S102之前执行;或者,步骤S202至步骤S203可以在执行步骤S102至步骤S103的过程中执行,本实施例不做限定。
[0064] 步骤S201,确认区块链在第一时间区间内的第一领导节点。
[0065] 在一些实施例中,若所述区块链中的第一节点在第二时间区间内最先获得第二领导节点对应的POW难题的解,则区块链共识装置确定所述第一节点为所述区块链在第一时
间区间内的第一领导节点。
[0066] 其中,所述第二时间区间与所述第一时间区间相邻,且所述第二时间区间位于所述第一时间区间之前,所述第一领导节点用于在当前共识持续的第一时间区间内生成至少
一个普通区块。
[0067] 在一些可选实施例中,确认所述第一领导节点后,所述第一领导节点生成第一选举区块;所述第一选举区块的区块头包括所述第一领导节点的私钥;所述第一选举区块的
区块体包括所述第二领导节点对应的POW难题和所述第一领导节点的解题时长。
[0068] 步骤S202,判断第二领导节点是否为恶意节点。
[0069] 在一些实施例中,确认所述第一领导节点之后,所述第一领导检测所述第二时间区间内所述第二领导节点发送至至少两个普通节点的私钥是否相同;若所述第二领导节点
发送至至少两个普通节点的私钥相同,确定所述第二领导节点为恶意节点;所述第一领导
节点广播所述第二领导节点的恶意操作。
[0070] 可选的,所述第一领导节点可以获取所述区块链给予的奖励。
[0071] 步骤S203,重新生成至少一个普通区块。
[0072] 在一些实施例中,若所述第二领导节点发送至至少两个普通节点的私钥相同,所述第一领导节点基于所述第一领导节点的身份信息确认第二关键区块;基于所述第二关键
区块和所述第二时间区间内的交易数据,重新生成至少一个普通区块。
[0073] 如此,通过本申请实施例提供的区块链共识方法,可以避免区块链系统中,由于恶意领导节点导致的“分叉”的情况,并及时将交易数据重新打包,提升区块链共识过程的安
全性。
[0074] 图3示出了本申请实施例提供的区块链共识方法的又一种可选流程示意图,将根据各个步骤进行说明。
[0075] 步骤S301,确认区块链在第一时间区间内的第一领导节点。
[0076] 在一些实施例中,区块链共识装置将时间划分成多个时间区间,每个时间区间均选举出一个领导节点。每个时间区间的持续时间可以根据实际需要设置,例如10分钟、20分
钟、30分钟等,此处不做具体限定。
[0077] 具体实施时,区块链中包括第一节点的至少一个节点在第二时间区间内求解第二领导节点对应的POW难题,若所述区块链中的第一节点在第二时间区间内最先获得第二领
导节点对应的所述POW难题的解,则所述装置确定所述第一节点为所述区块链在第一时间
区间内的第一领导节点。
[0078] 在一些可选实施例中,所述第一领导节点生成第一选举区块;所述第一选举区块的区块头包括所述第一领导节点的私钥,和/或所述领导节点的签名信息;所述第一选举区
块的区块体包括所述第二领导节点对应的POW难题和所述第一领导节点的解题时长。所述
第一领导节点还可以发布第一领导节点对应的POW难题。所述第一选举区块用于记录所述
第一领导节点的选取记录数据;后续不同的时间区间确定的不同的领导节点均有对应的选
举区块。
[0079] 在一些可选实施例中,所述装置确定所述第一节点为所述区块链在第一时间区间内的第一领导节点之后,所述第一领导节点可以获得区块中的数字货币作为奖励。
[0080] 在一些实施例中,在当前共识持续的第一时间区间内,所述区块链生成至少一个空白区块;所述空白区块的区块头包括所述空白区块对应的前一个区块的哈希值、时间戳、
所述第一领导节点的私钥。其中,所述第一领导节点的私钥用于与第一关键区块中的公钥
信息进行比对、验证,可以在后续基于所述空白区块生成普通区块后,确定生成所述普通区
块的领导节点。
[0081] 步骤S302,基于所述第一领导节点的身份信息确认第一关键区块。
[0082] 在一些实施例中,所述区块链中的区块可以包括关键区块和普通区块。
[0083] 其中,所述关键区块包括区块头;所述第一关键区块的区块头中包括:所述第一关键区块连接的上一个区块的引用信息、GMT、支付奖励的交易数据库信息、目标值、随机数和
所述第一领导节点的公钥至少之一。所述公钥可以用于认证所述第一领导节点对应的普通
区块和/或选举区块。关键区块连接的前一个区块可以是关键区块也可以是普通区块。
[0084] 所述第一普通区块包括区块头和区块体;所述第一普通区块的区块体中包括交易记录;所述第一普通区块的区块头中包括:所述第一普通区块连接的上一个区块的引用信
息、格林威治标准时间、所述交易记录的密码学哈希结果、所述交易记录的密码学签名和第
一私钥至少之一;其中,所述密码学签名使用的第一私钥与所述第一领导节点的公钥对应。
[0085] 在一些实施例中,所述装置基于所述第一领导节点的身份信息确认第一关键区块。
[0086] 具体实施时,所述第一领导节点将所述第一领导节点的身份信息存储至所述第一关键区块的区块头,并将所述第一关键区块连接至所述区块链中;和/或,所述第一领导节
点将所述第一领导节点的公钥存储至所述第一关键区块的区块头,并将所述第一关键区块
连接至所述区块链中。
[0087] 步骤S303,基于第一关键区块生成第一普通区块。
[0088] 在一些实施例中,每发生一笔交易,区块链生成一个没有填写完整信息的空白区块,区块链生成的空白区块中不包括交易数据,所述第一领导节点基于所述第一关键区块
中存储的所述第一领导节点的公钥生成第一私钥,并将所述第一私钥存储至第一空白区块
的区块头;将所述交易数据存储至所述第一空白区块的区块体;确定所述第一空白区块为
所述第一普通区块,所述第一空白区块由所述区块链生成。
[0089] 在一些实施例中,在第一领导节点对应的第一时间区间内,所述第一领导节点记录和/或打包所述第一时间区间内发生的所有交易的交易数据;其中,所述第一关键区块没
有区块体,不记录数据。
[0090] 每一次交易发生时,所述第一领导节点生成一个与所述第一领导节点的公钥对应的第一私钥,所述交易发生时,所述区块链生成的第一空白区块,所述第一空白区块记录打
包好的交易数据,并将所述第一私钥存入所述第一空白区块的区块头。
[0091] 具体实施时,所述至少一个普通区块由领导节点生成,无需经过POW运算,其生成速度比关键区块快,但有最大值限制,以避免恶意领导节点通过大量生成普通区块对区块
链造成的冲击。
[0092] 步骤S304,确定恶意领导节点。
[0093] 相关技术中,区块链系统中可能出现“分叉”的情况,即同一个交易对应了两个节点。本申请实施例中也有可能因为恶意领导节点导致“分叉”情况的出现,例如用户A只拥有
5个数字币,但是用户A同时将这5个数字币转给用户B和用户C两个人。恶意领导节点将这两
笔交易数据分别打包到普通区块m3和普通区块m3’里并公开,这样造成了分叉。
[0094] 在一些实施例中,确认所述第一领导节点之后,所述第一领导检测所述第二时间区间内所述第二领导节点发送至至少两个普通节点的私钥是否相同;若所述第二领导节点
发送至至少两个普通节点的私钥相同,确定所述第二领导节点为恶意节点;所述第一领导
节点广播所述第二领导节点的恶意操作。
[0095] 可选的,所述第一领导节点可以获取所述区块链给予的奖励。
[0096] 在一些实施例中,若所述第二领导节点发送至至少两个普通节点的私钥相同,所述第一领导节点基于所述第一领导节点的身份信息确认第二关键区块;基于所述第二关键
区块和所述第二时间区间内的交易数据,重新生成至少一个普通区块。
[0097] 具体的,为了防止恶意领导节点,当前的领导节点可以检测上一个领导节点打包过程中,普通区块的私钥,如果发现私钥重复,因为设定每一笔交易对应一个私钥,不能重
复,则之前的领导节点可能存在恶意行为,这样当前的领导节点可以公开恶意行为,获得系
统奖励。如果出现分叉,则在区块链中确定由最多算力挖掘出的关键区块作为新关键块,重
新打包特定时间段交易。
[0098] 如此,通过本申请实施例提供的区块链共识方法,将区块链中达成共识的过程和打包数据的过程分开,让两者以不同的速率工作,提高了共识的效率,可应用于数字货币的
区块链系统。并且,每一笔交易都能找到对应的打包节点(即为领导节点);本申请实施例
中,每隔一定时间区间才执行一次POW算法,而不是每次数据变动记录都要一次POW算法来
选举节点打包。通过奖惩机制防止数据记录错误,影响安全性的同时,提高了区块链的效
率。
[0099] 图4示出了本申请实施例提供的区块链共识装置的可选结构示意图,将根据各个部分进行说明。
[0100] 在一些实施例中,区块链共识装置400包括确认单元401和生成单元402。
[0101] 所述确认单元401,用于确认区块链在第一时间区间内的第一领导节点;基于所述第一领导节点的身份信息确认第一关键区块;
[0102] 所述生成单元402,用于交易发生时,基于所述第一关键区块生成第一普通区块;
[0103] 所述第一普通区块对应的第一普通节点记录交易数据。
[0104] 在一些实施例中,区块链共识装置400还可以包括存储单元403。
[0105] 所述存储单元403,用于将所述第一领导节点的身份信息存储至所述第一关键区块的区块头,并将所述第一关键区块连接至所述区块链中;和/或,将所述第一领导节点的
公钥存储至所述第一关键区块的区块头,并将所述第一关键区块连接至所述区块链中。
[0106] 所述生成单元402,具体用于交易发生时,基于所述第一关键区块中存储的所述第一领导节点的公钥生成第一私钥,并将所述第一私钥存储至第一空白区块的区块头;将所
述交易数据存储至所述第一空白区块的区块体;确定所述第一空白区块为所述第一普通区
块,所述第一空白区块由所述区块链生成。
[0107] 所述确认单元401,还用于若所述区块链中的第一节点在第二时间区间内最先获得第二领导节点对应的工作量证明机制POW难题的解,则确定所述第一节点为所述第一领
导节点;
[0108] 所述第二时间区间与所述第一时间区间相邻,且所述第二时间区间位于所述第一时间区间之前,所述第一领导节点用于在当前共识持续的第一时间区间内生成至少一个普
通区块。
[0109] 所述生成单元402,还用于生成第一选举区块;所述第一选举区块的区块头包括所述第一领导节点的私钥;所述第一选举区块的区块体包括所述第二领导节点对应的POW难
题和所述第一领导节点的解题时长。
[0110] 在一些实施例中,区块链共识装置400还可以包括检测单元404。
[0111] 所述检测单元404,用于检测所述第二时间区间内所述第二领导节点发送至至少两个普通节点的私钥是否相同;
[0112] 若所述第二领导节点发送至至少两个普通节点的私钥相同,确定所述第二领导节点为恶意节点。
[0113] 在一些实施例中,区块链共识装置400还可以包括:广播单元405。
[0114] 所述广播单元405,用于广播所述第二领导节点的恶意操作。
[0115] 所述确认单元401,还用于若所述第二领导节点发送至至少两个普通节点的私钥相同,基于所述第一领导节点的身份信息确认第二关键区块;
[0116] 所述生成单元402,还用于基于所述第二关键区块和所述第二时间区间内的交易数据,重新生成至少一个普通区块。
[0117] 图5是本申请实施例提供的区块链共识设备的硬件组成结构示意图,区块链共识设备700包括:至少一个处理器701、存储器702和至少一个网络接口704。区块链共识设备
700中的各个组件通过总线系统705耦合在一起。可理解,总线系统705用于实现这些组件之
间的连接通信。总线系统705除包括数据总线之外,还包括电源总线、控制总线和状态信号
总线。但是为了清楚说明起见,在图5中将各种总线都标为总线系统705。
[0118] 可以理解,存储器702可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、可编程只读存储器(PROM,
Programmable Read‑Only Memory)、可擦除可编程只读存储器(EPROM,Erasable 
Programmable Read‑Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically 
Erasable Programmable Read‑Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic 
random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘
(CD‑ROM,Compact Disc Read‑Only Memory);磁表面存储器可以是磁盘存储器或磁带存储
器。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速
缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器
(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous 
Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access 
Memory)、同步动态随机存取存储器(SDRAM,Synchronous Dynamic Random Access 
Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double  Data Rate 
Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器
(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存
取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存
储器(DRRAM,Direct Rambus Random Access Memory)。本申请实施例描述的存储器702旨
在包括但不限于这些和任意其它适合类型的存储器。
[0119] 本申请实施例中的存储器702用于存储各种类型的数据以支持区块链共识设备700的操作。这些数据的示例包括:用于在区块链共识设备700上操作的任何计算机程序,如
应用程序722。实现本申请实施例方法的程序可以包含在应用程序722中。
[0120] 所述本申请实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,所述方法的各
步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。所述的处理
器701可以是通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可
编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701可以实现或者执
行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任
何常规的处理器等。结合本申请实施例所公开的方法的步骤,可以直接体现为硬件译码处
理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于
存储介质中,该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件
完成前述方法的步骤。
[0121] 在示例性实施例中,区块链共识设备700可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,
Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic 
Device)、FPGA、通用处理器、控制器、MCU、MPU、或其他电子元件实现,用于执行前述方法。
[0122] 本申请实施例还提供了一种存储介质,用于存储计算机程序。
[0123] 可选的,该存储介质可应用于本申请实施例中的第一客户端,并且该计算机程序使得计算机执行本申请实施例的各个方法中的相应流程,为了简洁,在此不再赘述。
[0124] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流
程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序
指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实
现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0125] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
[0126] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或
其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一
个方框或多个方框中指定的功能的步骤。
[0127] 以上所述,仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护
范围之内。