首页 / 专利库 / 资料储存系统 / 工作量证明 / 区块生成方法、装置、存储介质、区块链网络

生成方法、装置、存储介质、区块链网络

阅读:858发布:2020-07-31

专利汇可以提供生成方法、装置、存储介质、区块链网络专利检索,专利查询,专利分析的服务。并且一种区 块 生成方法、装置、存储介质、 区块链 网络,用以解决现有区块链网络中区块生成装置的算 力 差异过大的问题。所述方法包括:根据所述区块生成装置内置的私钥信息对所述区块生成装置生成的区块进行签名,得到签名区块;将所述签名区块发布到所述区块链网络中,其中,所述签名区块在被签名认证通过后,表明所述签名区块是所述区块生成装置生成的。,下面是生成方法、装置、存储介质、区块链网络专利的具体信息内容。

1.一种区生成方法,其特征在于,所述方法应用于区块生成装置,所述方法包括:
根据所述区块生成装置内置的私钥信息对所述区块生成装置生成的区块进行签名,得到签名区块;
将所述签名区块发布到所述区块链网络中,所述区块链网络中接收到所述签名区块的节点设备用于对所述签名区块进行签名认证,其中,若对所述签名区块的签名认证成功,则表明所述签名区块是合法的区块生成装置生成的。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述区块生成装置内置的私钥信息对所述区块生成装置生成的区块进行签名,得到签名区块之前,所述方法还包括:
获取区块数据,所述区块数据是基于区块链网络中的交易数据生成的;
根据特定随机数产生方法生成随机数;
根据所述特定随机数产生方法产生的目标随机数与所述区块数据生成区块,所述区块链网络中的节点设备可验证所述目标随机数是否为根据所述特定随机数产生方法产生的。
3.根据权利要求2所述的方法,其特征在于,所述特定随机数产生方法包括:根据所述区块链网络当前产生区块的速度,设定一随机数范围,所述目标随机数为位于所述随机数范围内的随机数。
4.根据权利要求1所述的方法,其特征在于,在所述根据所述区块生成装置内置的私钥信息对所述区块生成装置生成的区块进行签名,得到签名区块之前,所述方法还包括:
获取区块数据,所述区块数据是基于区块链网络中的交易数据生成的;
根据所述区块链网络当前产生区块的速度,设定生成随机数的速率;
根据所述速率生成随机数,并在生成的随机数与区块头数据的哈希值满足预设条件时,将所述随机数作为所述目标随机数,将所述目标随机数,所述区块头数据以及所述区块数据组成所述区块。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述区块生成装置包括密钥处理器以及随机数生成器,所述区块生成装置的私钥信息内置在所述密钥处理器中,所述随机数生成器内置有另一私钥信息,所述方法还包括:
在所述随机数生成器开始生成随机数之前,所述随机数生成器与所述密钥处理器之间进行双向认证,以验证双方身份的合法性。
6.一种区块生成方法,其特征在于,所述方法应用于区块生成装置,所述方法包括:
获取区块链网络中的签名区块;
根据公钥信息对所述签名区块进行签名认证;
在签名认证成功后,对所述签名区块进行工作量证明验证;
根据工作量证明验证结果确定是否将所述签名区块添加到区块链。
7.根据权利要求6所述的方法,其特征在于,所述对所述签名区块进行工作量证明验证,包括:
验证所述签名区块中的目标随机数是否为根据特定随机数产生方法产生的,若所述目标随机数是根据所述特定随机数产生方法产生的,则确定工作量证明验证通过。
8.根据权利要求7所述的方法,其特征在于,所述验证所述签名区块中的目标随机数是否为根据特定随机数产生方法产生的,包括:
根据所述区块链网络当前产生区块的速度,确定一随机数范围;
判断所述目标随机数是否位于所述随机数范围内,若所述目标随机数位于所述随机数范围内,则确定所述目标随机数是根据所述特定随机数产生方法产生的。
9.一种区块生成装置,其特征在于,所述区块生成装置内置有私钥信息,所述区块生成装置包括:
密钥处理模块,用于根据所述私钥信息对所述区块生成装置生成的区块进行签名,得到签名区块;
发布模块,用于将所述签名区块发布到所述区块链网络中,所述区块链网络中接收到所述签名区块的节点设备用于对所述签名区块进行签名认证,其中,若对所述签名区块的签名认证成功,则表明所述签名区块是合法的区块生成装置生成的。
10.根据权利要求9所述的装置,其特征在于,还包括:
第一获取模块,用于获取区块数据,该区块数据是基于区块链网络中的交易数据生成的;
第一随机数生成模块,用于根据特定随机数产生方法生成随机数;
第一区块生成模块,用于根据所述特定随机数产生方法产生的目标随机数与所述区块数据生成区块,所述区块链网络中的节点设备可验证所述目标随机数是否为根据所述特定随机数产生方法产生的。
11.根据权利要求10所述的装置,其特征在于,所述第一随机数生成模块还用于:
根据所述区块链网络当前产生区块的速度,设定一随机数范围,所述目标随机数为位于所述随机数范围内的随机数。
12.根据权利要求9所述的装置,其特征在于,还包括:
第二获取模块,用于获取区块数据,该区块数据是基于区块链网络中的交易数据生成的;
第二随机数生成模块,用于根据所述区块链网络当前产生区块的速度,设定生成随机数的速率;
第二区块生成模块,用于根据所述速率生成随机数,并在生成的随机数与区块头数据的哈希值满足预设条件时,将所述随机数作为所述目标随机数,将所述目标随机数,所述区块头数据以及所述区块数据组成所述区块。
13.一种区块生成装置,其特征在于,包括:
获取模块,用于获取区块链网络中的签名区块;
签名认证模块,用于根据公钥信息对所述签名区块进行签名认证;
工作量证明模块,用于在签名认证成功后,对所述签名区块进行工作量证明验证;
区块添加模块,用于根据工作量证明验证结果确定是否将所述签名区块添加到区块链。
14.根据权利要求13所述的装置,其特征在于,所述工作量证明模块用于:
验证所述签名区块中的目标随机数是否为根据特定随机数产生方法产生的,若所述目标随机数是根据所述特定随机数产生方法产生的,则确定工作量证明验证通过。
15.根据权利要求14所述的装置,其特征在于,所述工作量证明模块用于:
根据所述区块链网络当前产生区块的速度,确定一随机数范围;
判断所述目标随机数是否位于所述随机数范围内,若所述目标随机数位于所述随机数范围内,则确定所述目标随机数是根据所述特定随机数产生方法产生的。
16.一种区块生成装置,其特征在于,包括:
至少一个处理器单元、通信接口存储器和通信总线;所述至少一个处理器单元、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器被配置为存储程序代码;
所述至少一个处理器单元被配置为运行所述程序代码以实现权利要求1至4中任一项所述的方法。
17.根据权利要求16所述的装置,其特征在于,所述通信接口用于与所述区块链网络中的节点设备建立通信连接,以便所述区块生成装置从所述节点设备获取到所述区块数据,并通过所述节点设备将所述签名区块发布到所述区块链网络中。
18.根据权利要求16或17所述的装置,其特征在于,所述区块生成装置还包括密钥处理器以及随机数生成器,所述区块生成装置的私钥信息内置在所述密钥处理器中,所述随机数生成器内置有另一私钥信息;
在所述随机数生成器开始生成随机数之前,所述随机数生成器与所述密钥处理器之间进行双向认证,以验证双方身份的合法性。
19.一种区块生成装置,其特征在于,包括:
至少一个处理器单元、通信接口、存储器和通信总线;所述至少一个处理器单元、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
所述存储器被配置为存储程序代码;
所述至少一个处理器单元被配置为运行所述程序代码以实现权利要求6至8中任一项所述的方法。
20.根据权利要求19所述的装置,其特征在于,所述通信接口用于与所述区块链网络中的节点设备建立通信连接,以便所述区块生成装置从所述节点设备获取到所述签名区块。
21.一种区块链网络,其特征在于,所述区块链网络包括至少两个节点设备;
所述至少两个节点设备包括第一节点设备,所述第一节点设备包括如权利要求16所述的区块生成装置;
所述至少两个节点设备包括第二节点设备,所述第二节点设备包括如权利要求19所述的区块生成装置。
22.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序包括用于执行权利要求1至5中任一项所述的方法的指令。
23.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序包括用于执行权利要求6至8中任一项所述的方法的指令。

说明书全文

生成方法、装置、存储介质、区块链网络

技术领域

[0001] 本公开涉及区块链技术领域,尤其涉及一种区块生成方法、装置、存储介质、区块链网络。

背景技术

[0002] 区块链技术是一种分布式、去中心、去信任的网络数据共识存储技术,其基于独特的区块(Block)生成机制和P2P(Point to Point,点对点)网络通信机制实现了分布式计算的同步性问题。
[0003] 相关技术中,参与区块计算的节点的计算能参差不齐,为了提高产生区块的几率,计算区块的节点使用的硬件也从CPU(Central Processing Unit,中央处理器)、GPU(Graphics Processing Unit,图形处理器)、FPGA(Field Programmable Gate Array,现场可编程逻辑阵列)一直演化到ASIC(Application-specific integrated circuit,专用芯片)。
[0004] 由于未对区块生成装置的算力进行限制,导致不同的区块生成装置的算力差异巨大,但是,区块链涉及一个“51%攻击”的场景,即理论上超过51%计算能力的节点或者多个节点,能够对区块链进行“51%攻击”,阻碍区块链的正常运行,对区块链的数据进行破坏。目前,随着单个节点的计算能力的增长,单一或者少数节点一起可以拥有极大的计算能力,这样,在整个区块链网络中各节点的计算能力差异较大的情况下,形成“51%攻击”的条件已经不难达成,威胁了区块链网络的安全性。
发明内容
[0005] 本公开的主要目的是提供一种区块生成方法、装置、存储介质、区块链网络,用以解决现有区块链网络中区块生成装置的算力差异过大的问题。
[0006] 为了实现上述目的,本公开第一方面提供一种区块生成方法,所述方法应用于区块生成装置,所述方法包括:
[0007] 根据所述区块生成装置内置的私钥信息对所述区块生成装置生成的区块进行签名,得到签名区块;
[0008] 将所述签名区块发布到所述区块链网络中,所述区块链网络中接收到所述签名区块的节点设备用于对所述签名区块进行签名认证,其中,若对所述签名区块的签名认证成功,则表明所述签名区块是合法的区块生成装置生成的。
[0009] 本公开第二方面提供一种区块生成方法,所述方法应用于区块生成装置,所述方法包括:
[0010] 获取区块链网络中的签名区块;
[0011] 根据公钥信息对所述签名区块进行签名认证;
[0012] 在签名认证成功后,对所述签名区块进行工作量证明验证;
[0013] 根据工作量证明验证结果确定是否将所述签名区块添加到区块链。
[0014] 本公开第三方面提供一种区块生成装置,所述区块生成装置内置有私钥信息,所述区块生成装置包括:
[0015] 密钥处理模块,用于根据所述私钥信息对所述区块生成装置生成的区块进行签名,得到签名区块;
[0016] 发布模块,用于将所述签名区块发布到所述区块链网络中,所述区块链网络中接收到所述签名区块的节点设备用于对所述签名区块进行签名认证,其中,若对所述签名区块的签名认证成功,则表明所述签名区块是合法的区块生成装置生成的。
[0017] 本公开第四方面提供一种区块生成装置,包括:
[0018] 获取模块,用于获取区块链网络中的签名区块;
[0019] 签名认证模块,用于根据公钥信息对所述签名区块进行签名认证;
[0020] 工作量证明模块,用于在签名认证成功后,对所述签名区块进行工作量证明验证;
[0021] 区块添加模块,用于根据工作量证明验证结果确定是否将所述签名区块添加到区块链。
[0022] 本公开第五方面提供一种区块生成装置,包括:
[0023] 至少一个处理器单元、通信接口存储器和通信总线;所述至少一个处理器单元、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
[0024] 所述存储器被配置为存储程序代码;
[0025] 所述至少一个处理器单元被配置为运行所述程序代码以实现第一方面所述的方法。
[0026] 本公开第六方面提供一种区块生成装置,包括:
[0027] 至少一个处理器单元、通信接口、存储器和通信总线;所述至少一个处理器单元、所述通信接口和所述存储器通过所述通信总线完成相互间的通信;
[0028] 所述存储器被配置为存储程序代码;
[0029] 所述至少一个处理器单元被配置为运行所述程序代码以实现第二方面所述的方法。
[0030] 本公开第七方面提供一种区块链网络,所述区块链网络包括至少两个节点设备;
[0031] 所述至少两个节点设备包括第一节点设备,所述第一节点设备包括第三方面或者第五方面所述的区块生成装置;
[0032] 所述至少两个节点设备包括第二节点设备,所述第二节点设备包括第四方面或者第六方面所述的区块生成装置。
[0033] 本公开第八方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序包括用于执行第一方面所述的方法的指令。
[0034] 本公开第九方面提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序包括用于执行第二方面所述的方法的指令。
[0035] 采用上述技术方案,区块生成装置生成区块后,对区块进行私钥签名,得到签名区块,并将所述签名区块发布到区块链网络中,所述区块链网络中接收到所述签名区块的节点设备用于对所述签名区块进行签名认证,其中,若对所述签名区块的签名认证成功,则表明所述签名区块是合法的区块生成装置生成的。这样,相比现有技术中仅通过区块链账户的私钥对区块进行签名以便对账户进行身份认证,本公开提供的技术方案对生成区块的硬件装置也可以进行身份认证,也就是说,区块链网络中的节点设备可以通过对签名区块的签名认证验证该区块生成装置的身份,从而对于非法的区块生成装置,区块链网络可以拒绝在区块链中添加其生成的区块,保证了区块链的安全性。附图说明
[0036] 为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037] 图1为本公开实施例提供的一种区块生成方法的流程示意图;
[0038] 图2为本公开实施例提供的区块生成装置一种生成区块的流程示意图;
[0039] 图3为本公开实施例提供的区块生成装置另一种生成区块的流程示意图;
[0040] 图4为本公开实施例提供的另一种区块生成方法的流程示意图;
[0041] 图5为本公开实施例提供的一种实施环境的示意图;
[0042] 图6为图5所示的实施环境中区块生成侧的方法流程示意图;
[0043] 图7为图5所示的实施环境中区块验证侧的方法流程示意图;
[0044] 图8为本公开实施例提供的一种区块生成装置的结构示意图;
[0045] 图9为本公开实施例提供的另一种区块生成装置的结构示意图;
[0046] 图10为本公开实施例提供的另一种区块生成装置的结构示意图;
[0047] 图11为本公开实施例提供的另一种区块生成装置的结构示意图;
[0048] 图12为本公开实施例提供的另一种区块生成装置的结构示意图。

具体实施方式

[0049] 为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
[0050] 为了使本领域技术人员更容易理解本公开实施例提供的技术方案,下面首先对涉及到的相关技术进行简单介绍。
[0051] 区块链是由区块链网络中所有节点共同参与维护的去中心化分布式数据库系统,它是由一系列基于密码学方法产生的数据块组成,每个数据块即为区块链中的一个区块。根据产生时间的先后顺序,区块被有序地链接在一起,形成一个数据链条,被形象地称为区块链。
[0052] 在基于PoW(Proof of Work,工作量证明)的区块产生机制中,有效区块的产生要求区块生成装置正确解出一个需要计算量的数学难题,一般情况下是对含有Nonce(Number once,非重复的随机数值)的区块头部数据进行哈希运算,通过对Nonce进行调整,使得哈希结果满足特定条件,并要求生成的哈希值满足特定条件,如前n个位为0x0。在计算出满足特定条件的哈希结果后,节点设备将含有Nonce的区块头部数据和区块数据组合成区块进行广播,其它节点设备认可此区块符合协议定义的格式和标准后,即可将该区块添加到区块链上。具体可参照比特币(bitcoin)应用。其中,该区块数据可以包括各个节点设备在转账(Transaction)过程中广播的交易数据。
[0053] 本公开实施例提供一种区块生成方法,该方法应用于区块生成装置,所述区块生成装置内置有私钥信息,如图1所示,该方法包括:
[0054] S101、根据区块生成装置内置的私钥信息对所述区块生成装置生成的区块进行签名,得到签名区块。
[0055] 其中,该区块生成装置可以是区块链网络中的任一节点设备的一部分,也可以是与所述区块链网络中的任一节点设备建立通信连接的一独立装置,具体地,该区块生成装置和节点设备之间可以通过不同的数据总线进行连接,例如,USB(Universal Serial Bus,通用串行总线)、Ethernet(以太网)、Bluetooth(蓝牙)、Wi-Fi(Wireless-Fidelity)等。
[0056] 示例地,区块生成装置与区块链网络中的第一节点设备通信相连。所述第一节点设备是区块链网络中的节点设备,其可以通过网络接口接收区块链网络中的其他节点设备广播的交易数据,该第一节点设备在获取到交易数据后,可以根据该交易数据生成区块数据。这样,该区块生成装置可以从所述第一节点设备获取到区块数据,以生成区块。
[0057] S102、将所述签名区块发布到区块链网络中。
[0058] 所述区块链网络中接收到所述签名区块的节点设备用于对所述签名区块进行签名认证,其中,若对所述签名区块的签名认证成功,则表明所述签名区块是合法的区块生成装置生成的。
[0059] 值得说明的是,区块链网络中的每一区块生成装置内置的私钥信息均不同,并且,区块生成装置可以将自身的公钥信息通过特定的节点设备广播至其他节点设备。这样,在接收到某一节点设备发布的签名区块后,采用相应的公钥进行签名认证,若签名认证成功,则表明发布的签名区块合法,也就是说,该签名区块是合法的区块生成装置生成的。即表明生成该签名区块的区块生成装置具备向区块链中添加新区块的权利,可进一步对区块进行工作量证明验证,以及验证区块是否符合协议定义的格式和标准。若对签名区块签名认证设备,则拒绝在区块链中添加该区块,保证了区块链的安全性,也就是说,在具体实施时,区块链网络可以仅对算力一致或者近似的区块生成装置分配公私钥,并对区块生成装置生成的签名区块进行签名认证,从而确保了各个节点算力的一致性,避免单个节点或者少数节点一起具有超越阈值得计算能力,进而避免了“51%攻击”的形成,提升了区块链的安全性。
[0060] 具体地,区块链网络在初始化时,可以只为采用相同型号和规格的区块生成装置分配私钥和公钥。初始化完毕后,在添加新的区块生成装置时,也可以只允许算力相近的区块生成装置加入,其中,区块链网络添加新的区块生成装置可以通过特定的节点设备进行,由该节点设备动态的向区块链写入新添加的区块生成装置的公钥。
[0061] 另外,区块生成装置还可以通过硬件的方式对生成区块的算法以及自身的私钥进行保护,不易被他人获取。例如,区块生成装置可以包括一区块处理器以及一密钥处理器,该区块处理器单元负责采用特定的算法生成区块,该区块生成装置内置的私钥处于所述密钥处理器内,从而实现利用硬件对签名密钥进行保护,如采用高安全性密码芯片,其密钥的产生,加解密、签名验签等计算过程均在密码芯片内完成,确保签名私钥不离开密码芯片,从而实现对密钥的高强度保护。
[0062] 这样,在具备区块处理器和密钥处理器的情况下,区块生成装置要生成有效的区块,需同时具备特定的算法以及签名密钥,提升了区块链网络的安全性。
[0063] 为了使本领域技术人员更加理解本公开实施例提供的技术方案,下面对区块生成装置生成区块的算法进行举例说明。
[0064] 方式一、采用特定的随机数生成方法,其中,基于该特定的随机数生成方法生成的目标随机数,可以被用于其他节点进行验证,以确认该目标随机数是否为根据所述特定随机数产生方法产生的。示例地,如图2所示,该方法包括:
[0065] S201、获取区块数据,该区块数据是基于区块链网络中的交易数据生成的。
[0066] S202、根据该区块链网络当前产生区块的速度,设定一随机数范围,并产生随机数。
[0067] S203、根据产生的目标随机数与该区块数据生成区块,其中,该目标随机数为位于该随机数范围内的随机数。
[0068] 其中,区块生成装置针对相同的区块产生速度,可以产生相同的随机数范围。这样,与现有的区块链中通常采用的PoW工作量证明机制不同,本公开实施例中,其他区块生成装置在获取到区块中的目标随机数后,即可通过判断该目标随机数是否位于该随机数范围内,若该目标随机数位于该随机数范围内,即可认为区块通过工作量证明验证,若该目标随机数不处于该随机数范围内,即可认为区块未通过工作量证明验证,可拒绝将该区块添加到区块链中。
[0069] 另外,值得说明的是,为了对区块链网络中生成区块的速率进行调控,在当前产生区块的速度过慢时,对应生成的随机数范围可以相对较大,从而提高随机数生成器产生位于该随机数范围的概率,进而提高产生区块的速度;在当前产生区块的速度过快时,对应生成的随机数范围可以相对较小,从而减小随机数生成器产生位于该随机数范围的概率,进而降低产生区块的速度。
[0070] 方式二、限定随机数产生的速率。示例地,如图3所示,该方法包括:
[0071] S301、获取区块数据,该区块数据是基于区块链网络中的交易数据生成的。
[0072] S302、根据所述区块链网络当前产生区块的速度,设定生成随机数的速率。
[0073] S303、根据所述速率生成随机数,并在生成的随机数与区块头数据的哈希值满足预设条件时,将所述随机数作为所述目标随机数,将所述目标随机数,所述区块头数据以及所述区块数据组成所述区块。
[0074] 在方式二的情况下,区块链中的工作量证明仍然可以采用PoW工作证明机制,即对含有随机数的区块头部数据进行哈希运算,通过对随机数进行调整,使得哈希结果满足特定条件,并要求生成的哈希值满足特定条件,如前n个位为0x0。
[0075] 值得说明的是,上述举例说明的产生随机数的算法均可以集成在区块生成装置中的随机数生成器中,保护算法不被轻易获得。并且,在方式二中,为了避免随机数生成器被替换,该随机数生成器还可以内置有一私钥信息,该随机数生成器在开始生成随机数之前,区块生成装置中的密钥处理器可以要求该随机数生成器发送一签名信息,以便验证该随机数生成器是否合法,若对该随机数生成器的签名认证未通过,则该密钥处理器可以拒绝为生成的区块进行签名。同理,该随机数生成器也可以对密钥处理器进行合法性认证。这样,仅破解随机数生成器或者仅破解密钥处理器均是无法产生合法区块的,提高了区块链的安全性。
[0076] 本公开实施例还提供另一区块生成方法,所述方法应用于区块生成装置,如图4所示,所述方法包括:
[0077] S401、获取区块链网络中的签名区块。
[0078] 其中,该区块生成装置自身可以包括网络连接模块用于直接接入区块链网络,以及电池供电模块使此装置能够自行运作,这样,该区块生成装置可以直接从区块链网络中获取到其他节点发送的签名区块。可选地,该区块生成装置可以是与区块链网络中的节点设备通信连接的一独立装置,这样,该区块生成装置可以从该节点设备获取到该节点设备从区块链网络中接收到的签名区块。
[0079] S402、根据公钥信息对所述签名区块进行签名认证。
[0080] 其中,在一种可能的实现方式中,公钥信息可以是该区块生成装置预先储存的,并且,对于具备权限控制的区块链网络,该区块链网络中负责权限分配的节点还可以对预置的公钥配置是否允许产生区块的权限,这样,任一节点在接收到其他节点发送的签名区块后,还可以首先验证该节点的公钥是否具备产生区块的权限,确保了不可冒充。在另一种可能的实现方式中,区块生成装置还可以将自身的公钥信息通过特定的节点设备(例如私有许可链中的管理节点)广播至其他节点设备,其中,该特定的节点设备发布的公钥默认均具备产生区块的权限。
[0081] S403、在签名认证成功后,对所述签名区块进行工作量证明验证。
[0082] S404、根据工作量证明验证结果确定是否将所述签名区块添加到区块链。
[0083] 具体地,若对签名区块的签名认证成功,且对该签名区块的工作量证明验证成功,则将该签名区块写入到区块链中;若对签名区块的签名认证失败,或者对所述签名区块的工作量证明验证失败,则拒绝将该签名区块写入区块链。进一步地,每一节点判断区块是否成功写入区块链的方式可以遵循现有区块链协议,本公开对此不做限定。
[0084] 值得说明的是,签名区块的生成可以参照图1所示的方法,此处不再赘述。
[0085] 另外,参照图2和图3所示的区块生成方式,不同的生成方式对应的工作量证明验证也不同。
[0086] 例如,在采用方式一的情况下,上述对所述签名区块进行工作量证明验证包括:验证所述签名区块中的目标随机数是否为根据特定随机数产生方法产生的,若所述目标随机数是根据所述特定随机数产生方法产生的,则确定工作量证明验证通过。具体地,所述验证所述签名区块中的目标随机数是否为根据特定随机数产生方法产生的,包括:根据所述区块链网络当前产生区块的速度,确定一随机数范围;判断所述目标随机数是否位于所述随机数范围内,若所述目标随机数位于所述随机数范围内,则确定所述目标随机数是根据所述特定随机数产生方法产生的。
[0087] 在采用方式二的情况下,上述对所述签名区块进行工作量证明验证可以为现有的PoW工作量证明方式,或者PoS(ProofofStake,权益证明)机制,本公开对此不做限定。
[0088] 值得说明的是,区块链网络中的每一区块生成装置既能够对其他节点发布的签名区块进行签名验证,还可以计算生成区块。也就是说,同一区块生成装置,既可以应用图1所示的区块生成方法,又可以应用图2所示的区块生成方法。
[0089] 下面结合区块生成侧以及区块验证侧对本公开实施例提供的技术方案进行详细说明。
[0090] 图5是本公开实施例的一种实施环境示意图,如图所示,该实施环境包括第一节点设备51和第二节点设备52,其中,第一节点设备51和第二节点设备52是区块链网络50中的任意两个节点设备。第一节点设备51与区块生成装置511通信相连,第二节点设备52与区块生成装置521通信相连。
[0091] 结合图5,本公开实施例提供的一种区块生成方法如图6和图7所示,如图6所示,区块生成侧的方法包括:
[0092] S601、第一节点设备51从区块链网络50中获取至少一笔交易数据。
[0093] S602、第一节点设备51根据所述交易数据生成区块数据。
[0094] 其中,所述区块数据包括所述至少一笔交易数据。
[0095] S603、区块生成装置511从所述第一节点设备51获取该区块数据。
[0096] S604、区块生成装置511根据当前的区块产生速度,设定一随机数范围,并产生随机数。
[0097] S605、区块生成装置511产生位于该随机数范围内的目标随机数后,根据该目标随机数以及该区块数据生成区块。
[0098] S606、区块生成装置511利用自身的私钥对所述区块进行签名,得到签名区块。
[0099] S607、区块生成装置511将该签名区块发送给第一节点设备51。
[0100] S608、第一节点设备51将该签名区块广播到区块链网络50中。
[0101] 如图7所示,区块验证侧的方法包括:
[0102] S701、第二节点设备52接收到第一节点设备51广播的所述签名区块。
[0103] S702、区块生成装置521从该第二节点设备52获取该签名区块。
[0104] S703、区块生成装置521利用公钥信息对所述签名区块进行签名验证。
[0105] 进一步地,若签名验证成功,则执行步骤S704,若否,则第二节点设备可以丢弃所述签名区块,不再继续处理。
[0106] S704、在签名认证成功后,区块生成装置521根据当前的区块产生速度,确定一随机数范围,并判断签名区块中的目标随机数是否位于该随机数范围内。
[0107] S705、区块生成装置521将判断结果发送给第二节点设备52。
[0108] S706、若该目标随机数是否位于该随机数范围内,则第二节点设备52根据将所述签名区块添加到当前区块链中,若该目标随机数未处于该随机数范围内,则第二节点设备52丢弃所述签名区块,拒绝将其写入区块链。
[0109] 值得说明的是,上述过程中,第二节点设备52的区块生成装置521也可以生成签名区块,并通过第二节点设备52将签名区块广播到第一节点设备51,第一节点设备51的区块生成装置521可以对第一节点设备51接收到的签名区块进行签名验证以及后续的工作量证明验证,具体参照上述方法步骤,此处不再赘述。
[0110] 上述只是举例说明,图5所示的区块生成装置为与节点设备通信的一独立装置,可替换地,区块生成装置也可以属于节点设备的一部分,在此种情况下,图6示出的上述方法步骤中,涉及到区块生成装置与节点设备之间的交互均为节点设备内部的交互。本公开对此不做限定。
[0111] 另外,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本公开所必须的,例如,区块生成装置在未获取到交易数据的情况下,也可以产生区块。
[0112] 在本公开实施例的一种可能的实现方式,该区块生成装置在根据所述区块数据生成区块之前,还可以确定所述区块生成装置最近一次生成的区块与当前区块链中的最新区块之间相差的区块数,在确定所述区块数不小于预设阈值m时,执行生成区块的操作,其中,m为大于或等于1,且小于n的正整数,n是所述区块链网络中所有节点设备的数目。
[0113] 也就是说,区块生成装置在生成一次区块后,需要间隔m个区块后,才能再次生成区块。其中,m具体可以根据实际需求进行设置。例如,m=n-1,即区块生成装置需要间隔n-1区块后才能再次产生区块,在此种情况下,所有n个区块生成装置均必须保持正常工作,否则区块链的区块生成工作会停止。又例如m=1,则区块生成装置每间隔一个区块即可再次生成区块,在此种情况下,m+1个被恶意控制节点即可形成“51%攻击”。
[0114] 这样,基于区块链网络的实际情况,合理设置m的大小,由于同一区块生成装置不能连续产生区块,从而降低了某一区块生成装置的算力过高产生的“51%攻击”的可能性。
[0115] 本公开实施例还提供一种区块生成装置80,用于实施图1提供的一种区块生成方法,所述区块生成装置80内置私钥信息,如图8所示,该区块生成装置80包括:
[0116] 密钥处理模块801,用于根据所述私钥信息对所述区块生成装置生成的区块进行签名,得到签名区块;
[0117] 发布模块802,用于将所述签名区块发布到所述区块链网络中,其中,所述签名区块在被签名认证通过后,表明所述签名区块是所述区块生成装置生成的。
[0118] 采用上述区块生成装置,该区块生成装置生成区块后,对区块进行私钥签名,得到签名区块,并将所述签名区块发布到区块链网络中,其中,所述签名区块在被签名认证通过后,表明所述签名区块是所述区块生成装置生成的。这样,相比现有技术中仅通过区块链账户的私钥对区块进行签名以便对账户进行身份认证,本公开提供的技术方案对生成区块的硬件装置也可以进行身份认证,也就是说,区块链网络中的节点设备可以通过对签名区块的签名认证验证该区块生成装置的身份,从而对于非法的区块生成装置,区块链网络可以拒绝在区块链中添加其生成的区块,保证了区块链的安全性。
[0119] 可选地,该区块生成装置80还包括:
[0120] 第一获取模块803,用于获取区块数据,该区块数据是基于区块链网络中的交易数据生成的;
[0121] 第一随机数生成模块804,用于根据特定随机数产生方法生成随机数;
[0122] 第一区块生成模块805,用于根据所述特定随机数产生方法产生的目标随机数与所述区块数据生成区块,所述区块链网络中的节点设备可验证所述目标随机数是否为根据所述特定随机数产生方法产生的。可选地,所述第一随机数生成模块804还用于:根据所述区块链网络当前产生区块的速度,设定一随机数范围,所述目标随机数为位于所述随机数范围内的随机数。
[0123] 可选地,如图9所示,该区块生成装置80还包括:
[0124] 第二获取模块806,用于获取区块数据,该区块数据是基于区块链网络中的交易数据生成的;
[0125] 第二随机数生成模块807,用于根据所述区块链网络当前产生区块的速度,设定生成随机数的速率;
[0126] 第二区块生成模块808,用于根据所述速率生成随机数,并在生成的随机数与区块头数据的哈希值满足预设条件时,将所述随机数作为所述目标随机数,将所述目标随机数,所述区块头数据以及所述区块数据组成所述区块。
[0127] 所属本领域的技术人员应该清楚地了解到,为描述的方便和简洁,上述描述的区块生成装置的各模块的具体工作过程,可以参考前述方法实施例中对应的过程,此处不再赘述。
[0128] 另外,上述对区块生成装置组成模块进行的划分,仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。并且,各个模块的物理实现也可以有多种方式,本公开对此不做限定。
[0129] 本公开实施例还提供另一种区块生成装置90,用于实施图4提供的一种区块生成方法,如图10所示,该区块生成装置90包括:
[0130] 获取模块901,用于获取区块链网络中的签名区块;
[0131] 签名认证模块902,用于根据公钥信息对所述签名区块进行签名认证;
[0132] 工作量证明模块903,用于在签名认证成功后,对所述签名区块进行工作量证明验证;
[0133] 区块添加模块904,用于根据工作量证明验证结果确定是否将所述签名区块添加到区块链。
[0134] 可选地,所述工作量证明模块903用于:
[0135] 验证所述签名区块中的目标随机数是否为根据特定随机数产生方法产生的,若所述目标随机数是根据所述特定随机数产生方法产生的,则确定工作量证明验证通过。
[0136] 可选地,所述工作量证明模块903用于:
[0137] 根据所述区块链网络当前产生区块的速度,确定一随机数范围;
[0138] 判断所述目标随机数是否位于所述随机数范围内,若所述目标随机数位于所述随机数范围内,则确定所述目标随机数是根据所述特定随机数产生方法产生的。
[0139] 所属本领域的技术人员应该清楚地了解到,为描述的方便和简洁,上述描述的区块生成装置的各单元的具体工作过程,可以参考前述方法实施例中对应的过程,此处不再赘述。
[0140] 另外,上述对区块生成装置组成模块进行的划分,仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。并且,各个模块的物理实现也可以有多种方式,本公开对此不做限定。
[0141] 本公开实施例还提供一种区块生成装置100,如图11所示,该区块生成装置100包括:
[0142] 至少一个处理器单元(如图10示出的处理器单元101)、通信接口102、存储器103和通信总线104;所述至少一个处理器单元、所述通信接口102和所述存储器103通过所述通信总线104完成相互间的通信;
[0143] 所述存储器103被配置为存储程序代码,所述至少一个处理器单元被配置为运行所述程序代码以实现图1所示的区块生成方法,具体参照上述方法实施例针对图1的描述。
[0144] 本公开实施例还提供了一种包括指令的非临时性计算机可读存储介质,例如上述存储器103,上述指令可由装置100的处理器执行以完成用于相应的生成区块的方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0145] 本公开实施例还提供另一种区块生成装置110,如图12所示,所述区块生成装置110包括:
[0146] 至少一个处理器单元(如图12示出的处理器单元111)、通信接口112、存储器113和通信总线114;所述至少一个处理器单元、所述通信接口112和所述存储器113通过所述通信总线114完成相互间的通信;
[0147] 所述存储器113被配置为存储程序代码;
[0148] 所述至少一个处理器单元被配置为运行所述程序代码以实现如下操作图4所示的一种区块生成方法的步骤,具体参照上述方法实施例针对图4的描述。
[0149] 上述只是举例说明,在具体实施时,该区块生成装置110还可以包括其他部件,例如电源等,本公开对此不做限定。
[0150] 本公开实施例还提供了一种包括指令的非临时性计算机可读存储介质,例如上述存储器113,上述指令可由装置110的处理器执行以完成用于相应的生成区块的方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0151] 本公开实施例还提供一种区块链网络,所述区块链网络包括至少两个节点设备。所述至少两个节点设备包括第一节点设备,所述第一节点设备包括如上述区块生成装置80或区块生成装置100;所述至少两个节点设备包括第二节点设备,所述第二节点设备包括上述区块生成装置90或者区块生成装置110。
[0152] 这样,基于公私钥的权限控制,利用算力一致的区块生成装置组成区块链网络,例如,区块链私链。其中,算了一致可以是区块生成装置均采用特定的随机数生成算法,由于各个区块生成装置生成区块的几率大体一致,从而增加了“51%攻击”条件达成的难度,进而提升了区块链的安全性。
[0153] 以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
[0154] 另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
[0155] 此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈