生成区块链区块的方法、装置、节点、签名设备及系统与流程

文档序号:11532282阅读:283来源:国知局
生成区块链区块的方法、装置、节点、签名设备及系统与流程

本公开涉及区块链领域,具体地,涉及一种生成区块链区块的方法、装置、节点、签名设备及系统。



背景技术:

区块链技术是一种分布式、无中心、无信任的网络数据共识存储技术。基于独特的区块生成机制,如pow(proofofwork,工作量证明)、pos(proofofstake,权益证明),以及p2p(peertopeer,对等)网络通信机制来实现。

通常意义上,在区块链形成过程中,每一个参与计算的节点均享有相同的权限,包括转账、计算区块(俗称挖矿)等。在区块产生机制中,有效区块的产生是基于正确解出一个需要计算量的数学难题的工作,任何节点都可以产生区块,并能够被其它节点所认可,且区块中的信息与区块产生者无关。但是,这种区块产生机制给区块链网络的安全带来了一定隐患。



技术实现要素:

本公开提供了一种生成区块链区块的方法、装置、节点、签名设备及系统,以实现提高区块链网络的安全性的目的。

根据本公开实施例的第一方面,提供了一种生成区块链区块的方法,应用于区块链网络中的第一节点,所述方法包括:根据区块链协议生成原始区块;对所述原始区块进行数字签名操作,生成签名区块;将所述签名区块在所述区块链网络中进行广播。

根据本公开实施例的第二方面,提供了一种生成区块链区块的装置,配置于区块链网络中的第一节点,所述装置包括:原始区块生成模块,被配置为根据区块链协议生成原始区块。签名模块,被配置为对所述原始区块生成模块生成的原始区块进行数字签名操作,生成签名区块。广播模块,被配置为将所述签名模块生成的签名区块在所述区块链网络中进行广播。

根据本公开实施例的第三方面,提供了一种生成区块链区块的方法,应用于签名设备,所述方法包括:接收区块链网络中的第一节点发送的中间签名,其中,所述中间签名由所述第一节点使用所述第一节点的私钥对所述第一节点生成的原始区块的哈希值进行数字签名操作而生成;对所述中间签名进行验证;在所述中间签名验证通过的情况下,使用所述签名设备的私钥,对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作,生成原始区块签名;将所述原始区块签名发送给所述第一节点,其中,所述原始区块签名,用于使所述第一节点将所述原始区块签名附加给所述原始区块,生成签名区块。

根据本公开实施例的第四方面,提供了一种生成区块链区块的装置,配置于签名设备,所述装置包括:中间签名接收模块,被配置为接收区块链网络中的第一节点发送的中间签名。其中,所述中间签名由所述第一节点使用所述第一节点的私钥对所述第一节点生成的原始区块的哈希值进行数字签名操作而生成。中间签名验证模块,被配置为对所述中间签名接收模块接收的中间签名进行验证。原始签名生成模块,被配置为在所述中间签名验证模块对中间签名验证通过的情况下,使用所述签名设备的私钥,对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作,生成原始区块签名。原始签名发送模块,被配置为将所述原始签名生成模块生成的原始区块签名发送给所述第一节点,其中,所述原始区块签名,用于使所述第一节点将所述原始区块签名附加给所述原始区块,生成签名区块。

根据本公开实施例的第五方面,提供了一种生成区块链区块的方法,应用于区块链网络中的第二节点,所述方法包括:接收区块链网络中的第一节点广播的签名区块,其中,所述签名区块由所述第一节点对原始区块进行数字签名操作而生成,所述原始区块由所述第一节点根据区块链协议生成;对所述签名区块的签名进行验证;在对所述签名区块的签名验证通过的情况下,将所述签名区块添加到所述区块链网络中。

根据本公开实施例的第六方面,提供了一种生成区块链区块的装置,配置于区块链网络中的第二节点,所述装置包括:签名区块接收模块,被配置为接收区块链网络中的第一节点广播的签名区块。其中,所述签名区块由所述第一节点对原始区块进行数字签名操作而生成,所述原始区块由所述第一节点根据区块链协议生成。签名区块验证模块,被配置为对所述签名区块接收模块接收的签名区块的签名进行验证。签名区块添加模块,被配置为在所述签名区块验证模块对所述签名区块的签名验证通过的情况下,将所述签名区块添加到所述区块链网络中。

根据本公开实施例的第七方面,提供了一种非临时性计算机可读存储介质,所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行本公开实施例第一方面中任一实施例所述的方法。

根据本公开实施例的第八方面,提供了一种区块链网络节点。所述区块链网络节点包括:本公开实施例第七方面所述的非临时性计算机可读存储介质;以及,一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。

根据本公开实施例的第九方面,提供了一种非临时性计算机可读存储介质。所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于本公开第三方面任一实施例所述的生成区块链区块的方法。

根据本公开实施例的第十方面,提供了一种签名设备。所述签名设备包括:本公开实施例第八方面所述的非临时性计算机可读存储介质;以及,一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。

根据本公开实施例的第十一方面,提供了一种非临时性计算机可读存储介质。所述非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行本公开第五方面任一实施例所述的生成区块链区块的方法。

根据本公开实施例的第十二方面,提供了一种区块链网络节点。所述区块链网络节点包括:本公开实施例第十一方面所述的非临时性计算机可读存储介质;以及,一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。

根据本公开实施例的第十三方面,提供了一种生成区块链区块的系统。该系统可以包括:至少一个本公开实施例第八方面所述的区块链网络节点,至少一个本公开实施例第十方面所述的签名设备,以及,至少一个本公开实施例第十二方面所述的区块链网络节点。其中,本公开实施例第八方面所述的区块链网络节点以及本公开实施例第十二方面所述的区块链网络节点属于同一区块链网络。

通过上述技术方案一个方面,区块链网络中的第一节点根据区块链协议生成原始区块,对所述原始区块进行数字签名操作,生成签名区块,将该签名区块在区块链网络中进行广播,从而区块链网络中的区块可以通过其数字签名被确认区块产生者,为区块链网络的安全提供了可验证的信息。

通过上述技术方案的另一个方面,根据本公开实施例的签名设备接收区块链网络中的第一节点发送的中间签名,对中间签名进行验证,在中间签名验证通过的情况下,使用签名设备的私钥对所述中间签名进行数字签名操作,生成原始区块签名,使所述第一节点将所述原始区块签名附加给所述第一节点生成的原始区块,生成签名区块,从而区块链网络中的区块可以通过其数字签名被确认区块产生者,为区块链网络的安全提供了可验证的信息。

通过上述技术方案的又一个方面,区块链网络中的第二节点接收区块链网络中的第一节点广播的签名区块,在对该签名区块签名验证通过的情况下,将该签名区块添加到所述区块链网络中,从而能够对区块的产生者进行控制,只有通过验证的区块产生者发布的区块,才能够被其他节点接受,为区块链网络的安全提供了一定保障。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据本公开一示例性实施例示出的实施环境示意图。

图2是根据本公开第一方面的一示例性实施例示出的一种生成区块链区块的方法的流程图。

图3是根据本公开的一示例性实施例示出的一种生成区块链区块的方法的信令交互示意图。

图4是根据本公开第二方面的一示例性实施例示出的一种生成区块链区块的装置的框图。

图5是根据本公开第三方面的一示例性实施例示出的一种生成区块链区块的方法的流程图。

图6是根据本公开第四方面的一示例性实施例示出的一种生成区块链区块的装置的框图。

图7是根据本公开第五方面的一示例性实施例示出的一种生成区块链区块的方法的流程图。

图8是根据本公开第六方面的一示例性实施例示出的一种生成区块链区块的装置的框图。

具体实施方式

以下结合附图对本公开的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本公开,并不用于限制本公开。

图1是根据本公开一示例性实施例示出的实施环境示意图。如图1所示,该实施环境可以包括:由若干个节点组成的区块链网络110以及签名设备120。其中,云主机1101、云主机1102分别为区块链网络110中的两个节点。签名设备120可以为智能手机、平板电脑等移动终端。

可以理解的是,图1所示实施环境仅用于示意本发明实施例提供的方法,并不构成对本公开实施例的限制。例如,区块链网络110中可以包括两个或两个以上的节点,节点可以为云主机,也可以为其他具有相应计算能力的设备,本公开对此并不进行限制。签名设备120可以为一个,也可以为多个。节点与签名设备之间可以通过p2p网络进行通信,也可以通过其他结构的网络进行通信,本公开对此并不进行限制。

为了使本公开实施例更加易于理解,再对区块链网络进行简单介绍。如图1所示的区块链网络,是由若干节点所组成的基于p2p的对等网络。区块链网络中的每个节点都维护着一串使用密码学方法相关联产生的区块链。各个节点之间通过广播来获取最新的区块,从而保证各个节点之间的区块是同步维护的。因此,如图1所示的云主机1101以及云主机1102同步维护着各自的区块链。

图2是根据本公开第一方面的一示例性实施例示出的一种生成区块链区块的方法的流程图。该方法可以应用于区块链网络中的第一节点。可以理解的是,该第一节点可以为区块链网络中的任意节点。例如,该第一节点可以为图1所示的云主机1101。该方法包括:

在步骤210中,根据区块链协议生成原始区块。

例如,第一节点可以接收全网transaction(交易)的广播并对接收到的交易根据区块链协议进行处理后生成原始区块。相应地,该原始区块中含有交易和协议规定的数据。

在步骤220中,对所述原始区块进行数字签名操作,生成签名区块。

一种可能的实施方式中,在步骤220中,可以使用所述第一节点的私钥,对所述原始区块的哈希值进行数字签名操作,生成原始区块签名,将所述原始区块签名附加给所述原始区块,生成签名区块。

另一种可能的实施方式中,在步骤220中,可以使用所述第一节点的私钥对所述原始区块的哈希值进行数字签名操作,生成中间签名,将所述中间签名发送给签名设备,接收所述签名设备发送的原始区块签名。其中,所述原始区块签名,可以由所述签名设备在对所述中间签名验证通过的情况下,使用所述签名设备的私钥对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成。将所述原始区块签名附加给所述原始区块,生成签名区块。

原始区块例如,计算该哈希值可以采用如sha-256等算法。该算法计算出的哈希值数据量极小,仅32字节。再例如,可以采用如ecdsa签名算法进行数字签名操作。该ecdsa签名算法在256bit密钥长度的情况下,其签名仅64字节。

需要说明的是,本公开对签名设备验证中间签名的实施方式不限。

例如,可以在签名设备中预存所有合法节点的公钥,从而签名设备利用合法节点的公钥对中间签名进行验证。

再例如,签名设备可以预存有与其具有对应关系的合法节点的公钥。可以理解的是,在该实施方式中,允许有不同节点对应不同的签名设备。从而第一节点可以将中间签名发送给与第一节点具有对应关系的签名设备,由该签名设备利用具有对应关系的合法节点的公钥对中间签名进行验证,进而在确定该中间签名为具有对应关系的第一节点的签名的情况下,使用所述签名设备的私钥进行数字签名操作生成原始区块签名。通过该实施方式,可以使不同签名设备分别为自身对应的合法的节点进行签名,实现对不同类型的区块产生者进行分别控制,更进一步保证了区块链网络的安全。

其中,第一节点与签名设备之间的对应关系可以设置在区块链中。例如,如图1所示实施环境中,区块链网络110的每个节点所维护的区块链中均保存有节点与签名设备之间的对应关系。例如,云主机1101与签名设备120之间具有对应关系,则云主机1101可以在其维护的区块链中查询到云主机1101与签名设备120之间的对应关系。

需要说明的是,节点与签名设备之间的对应关系可以为一对多,多对一,或者,多对多的关系,本公开对此并不进行限制。

例如,当节点与签名设备之间的对应关系为一对多的关系时,由于可以有多个签名设备为同一节点进行签名,从而在因某个签名设备的网络连接问题、自身其它问题导致的不能签名情况下,仍有相当的系统冗余度。即使签名设备出现部分被攻击或破坏的情况,也不会对区块链产生影响。可见,该实施方式适用于多人拥有签名权限的场景,比如企业控制节点,由指定员工控制签名设备。

再例如,当节点与签名设备之间的对应关系为多对一的关系时,多个节点产生的区块可以供签名设备进行签名,从而对节点掉线或其他错误可以有更高的冗余度。在部分节点被攻击或破坏的情况下,仍能够保证区块产生的成功率。

又例如,当节点与签名设备之间的对应关系为多对多的关系时,例如,可以有多个节点组,多个签名设备组,而且每个节点组中包括多个节点,每个签名设备组中包括多个签名设备,一个节点组可以对应一个签名设备组,则节点组中任意节点产生的区块都能够被对应的签名设备组内任意的签名设备签名。该实施方式综合了上述两种方式的优点,节点以及签名设备都具有良好的系统冗余度。例如,不同签名组可以代表不同组织机构。

在步骤230中,将所述签名区块在所述区块链网络中进行广播。

例如,所述区块链网络中接收到所述广播的第二节点,在对所述签名区块的签名验证通过的情况下,可以将所述签名区块添加到所述区块链网络中。

可见,通过本公开上述实施例提供的技术方案,区块链网络中的第一节点可以根据区块链协议生成原始区块,对所述原始区块进行数字签名操作,生成签名区块,将该签名区块在区块链网络中进行广播,从而区块链网络中的区块可以通过其数字签名被确认区块产生者,为区块链网络的安全提供了可验证的信息。

尤其在一些应用环境中,需要对区块的产生者进行控制,例如仅允许特定的节点产生新的区块,根据本公开实施例提供的方法,区块产生者可以对区块进行数字签名的操作来证明自己是合法的区块产生者,从而只有合法的区块产生者发布的区块,才能够被其它节点接受和认可。

为了使本公开实施例提供的技术方案更加易于理解,下面,再结合本公开实施例一种可能的信令交互方式进行详细说明。图3是根据本公开的一示例性实施例示出的一种生成区块链区块的方法的信令交互示意图。如图3所示,该方法包括:

在步骤310中,第一节点根据区块链协议生成原始区块。

在步骤311中,第一节点使用所述第一节点的私钥对所述原始区块的哈希值进行数字签名操作,生成中间签名。

在步骤312中,第一节点将所述中间签名发送给签名设备。

在步骤320中,签名设备对所述中间签名是否为与所述签名设备具有对应关系的第一节点的签名进行验证。其中,签名设备在确定所述中间签名为与所述签名设备具有对应关系的第一节点的签名的情况下,验证通过。

在步骤321中,签名设备在所述中间签名验证通过的情况下,使用所述签名设备的私钥对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作,生成原始区块签名。

在步骤322中,签名设备将所述原始区块签名发送给所述第一节点。

在步骤330中,第一节点将所述原始区块签名附加给所述原始区块,生成签名区块。

在步骤331中,第一节点将所述签名区块在所述区块链网络中进行广播。

在步骤340中,第二节点接收区块链网络中的第一节点广播的签名区块。

在步骤341中,第二节点使用签名设备的公钥对所述签名区块的原始区块签名进行验证。

在步骤342,在验证通过的情况下,将所述签名区块添加到所述区块链网络中。

可见,在该实施方式中,由于节点与签名设备分别承担了生成区块、签名的角色,因此,签名设备无需接收交易、无需参与原始区块的产生、也无需同步整个区块链,签名设备不涉及如pow等巨大的计算,且传输的签名数据量小,从而降低了对网络稳定性、设备计算能力的要求,适于使用例如移动终端等签名设备来参与区块的签名,适用范围更广。

图4是根据本公开第二方面的一示例性实施例示出的一种生成区块链区块的装置400的框图。该装置可以配置于区块链网络中的第一节点。例如,该第一节点可以为图1所示的云主机1101。该装置包括:原始区块生成模块410、签名模块420、以及广播模块430。

该原始区块生成模块410,可以被配置为根据区块链协议生成原始区块。

该签名模块420,可以被配置为对所述原始区块生成模块410生成的原始区块进行数字签名操作,生成签名区块。

一种可能的实施方式中,所述签名模块420可以被配置为使用所述第一节点的私钥,对所述原始区块的哈希值进行数字签名操作,生成原始区块签名,将所述原始区块签名附加给所述原始区块,生成签名区块。

另一种可能的实施方式中,所述签名模块420可以包括:中间签名生成子模块421、中间签名发送子模块422、原始签名接收子模块423、以及签名区块生成子模块424。

该中间签名生成子模块421,可以被配置为使用所述第一节点的私钥对所述原始区块的哈希值进行数字签名操作,生成中间签名。可选地,所述中间签名生成子模块421可以包括:哈希计算子模块4211,可以被配置为计算所述原始区块的哈希值。哈希签名子模块4212,可以被配置为使用所述第一节点的私钥对所述哈希值进行数字签名操作,生成中间签名。

该中间签名发送子模块422,可以被配置为将所述中间签名发送给签名设备。

该原始签名接收子模块423,可以被配置为接收所述签名设备发送的原始区块签名,其中,所述原始区块签名,由所述签名设备在对所述中间签名验证通过的情况下,使用所述签名设备的私钥,对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成。

该签名区块生成子模块424,可以被配置为将所述原始区块签名附加给所述原始区块,生成签名区块。

需要说明的是,本公开对签名设备验证中间签名的实施方式不限。可选地,所述中间签名发送子模块422可以被配置为将所述中间签名发送给与所述第一节点具有对应关系的签名设备。从而,由该签名设备利用具有对应关系的合法节点的公钥对中间签名进行验证,进而在确定该中间签名为具有对应关系的第一节点的签名的情况下,使用所述签名设备的私钥对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作生成原始区块签名。因此,所述原始区块签名,由所述签名设备在确定所述中间签名为具有对应关系的第一节点的签名的情况下,使用所述签名设备的私钥对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成。通过该实施方式,可以使不同签名设备分别为自身对应的合法的节点进行签名,实现对不同类型的区块产生者进行分别控制,更进一步保证了区块链网络的安全。

在上述实施方式中,由于节点与签名设备分别承担了生成区块、签名的角色,因此,签名设备无需接收交易、无需参与原始区块的产生、也无需同步整个区块链,签名设备不涉及如pow等巨大的计算,且传输的签名数据量小,从而降低了对网络稳定性、设备计算能力的要求,适于使用例如移动终端等签名设备来参与区块的签名,适用范围更广。

广播模块430,可以被配置为将所述签名模块420生成的签名区块在所述区块链网络中进行广播。

可选地,所述签名区块,可以用于使所述区块链网络中接收到所述广播的第二节点,在对所述签名区块的签名验证通过的情况下,将所述签名区块添加到所述区块链网络中。

可见,通过本公开上述实施例提供的技术方案,区块链网络中的第一节点可以根据区块链协议生成原始区块,对所述原始区块进行数字签名操作,生成签名区块,将该签名区块在区块链网络中进行广播,从而区块链网络中的区块可以通过其数字签名被确认区块产生者,为区块链网络的安全提供了可验证的信息。

需要注意的是,本公开实施例所述中间签名生成子模块421、所述中间签名发送子模块422、所述原始签名接收子模块423、所述签名区块生成子模块424、所述哈希计算子模块4211、所述哈希签名子模块4212在图4中以虚线绘制,以表示这些子模块不是本公开实施例提供的生成区块链区块的装置的必要模块。

图5是根据本公开第三方面的一示例性实施例示出的一种生成区块链区块的方法的流程图。该方法可以应用于签名设备。例如,该签名设备可以为图1所示的移动终端120。该方法包括:

在步骤510中,接收区块链网络中的第一节点发送的中间签名,其中,所述中间签名由所述第一节点使用所述第一节点的私钥对所述第一节点生成的原始区块的哈希值进行数字签名操作而生成。

在步骤520中,对所述中间签名进行验证。

一种可能的实施方式中,可以在签名设备中预存所有合法节点的公钥,从而签名设备利用合法节点的公钥对中间签名进行验证。

另一种可能的实施方式中,签名设备可以预存有与其具有对应关系的合法节点的公钥。可以理解的是,在该实施方式中,允许有不同节点对应不同的签名设备。因此,在步骤420中,签名设备可以对所述中间签名是否为与所述签名设备具有对应关系的第一节点的签名进行验证,在所述中间签名为与所述签名设备具有对应关系的第一节点的签名的情况下,验证通过。

通过上述实施方式,可以使不同签名设备分别为自身对应的合法的节点进行签名,实现对不同类型的区块产生者进行分别控制,更进一步保证了区块链网络的安全。

在步骤530中,在所述中间签名验证通过的情况下,使用所述签名设备的私钥,对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作,生成原始区块签名。

在步骤540中,将所述原始区块签名发送给所述第一节点,其中,所述原始区块签名,用于使所述第一节点将所述原始区块签名附加给所述第一节点生成的原始区块,生成签名区块。

可见,通过本公开上述实施例提供的技术方案,签名设备可以接收区块链网络中的第一节点发送的中间签名,对中间签名进行验证,在中间签名验证通过的情况下,使用签名设备的私钥对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作,生成原始区块签名,使所述第一节点将所述原始区块签名附加给所述第一节点生成的原始区块,生成签名区块,从而区块链网络中的区块可以通过其数字签名被确认区块产生者,为区块链网络的安全提供了可验证的信息。而且,由于节点与签名设备分别承担了生成区块、签名的角色,签名设备无需接收交易、无需参与原始区块的产生、也无需同步整个区块链,签名设备不涉及如pow等巨大的计算,且传输的签名数据量小,从而降低了对网络稳定性、设备计算能力的要求,适于使用例如移动终端等签名设备来参与区块的签名,适用范围更广。

图6是根据本公开第四方面的一示例性实施例示出的一种生成区块链区块的装置600的框图。该装置可以配置于签名设备。例如,该签名设备可以为图1所示的移动终端120。该装置包括:中间签名接收模块610、中间签名验证模块620、原始签名生成模块630、以及原始签名发送模块640。

该中间签名接收模块610,可以被配置为接收区块链网络中的第一节点发送的中间签名,其中,所述中间签名由所述第一节点使用所述第一节点的私钥对所述第一节点生成的原始区块的哈希值进行数字签名操作而生成。.

该中间签名验证模块620,可以被配置为对所述中间签名接收模块610接收的中间签名进行验证。

一种可能的实施方式中,可以在签名设备中预存所有合法节点的公钥,从而签名设备利用合法节点的公钥对中间签名进行验证。

另一种可能的实施方式中,签名设备可以预存有与其具有对应关系的合法节点的公钥。可以理解的是,在该实施方式中,允许有不同节点对应不同的签名设备。因此,所述中间签名验证模块620可以被配置为对所述中间签名是否为与所述签名设备具有对应关系的第一节点的签名进行验证,在所述中间签名为与所述签名设备具有对应关系的第一节点的签名的情况下,验证通过。

通过上述实施方式,可以使不同签名设备分别为自身对应的合法的节点进行签名,实现对不同类型的区块产生者进行分别控制,更进一步保证了区块链网络的安全。

该原始签名生成模块630,被配置为在所述中间签名验证模块620对中间签名验证通过的情况下,使用所述签名设备的私钥,对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作,生成原始区块签名。

该原始签名发送模块640,可以被配置为将所述原始签名生成模块630生成的原始区块签名发送给所述第一节点,其中,所述原始区块签名,用于使所述第一节点将所述原始区块签名附加给所述第一节点生成的原始区块,生成签名区块。

可见,通过本公开上述实施例提供的技术方案,签名设备可以接收区块链网络中的第一节点发送的中间签名,对中间签名进行验证,在中间签名验证通过的情况下,使用签名设备的私钥对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作,生成原始区块签名,使所述第一节点将所述原始区块签名附加给所述第一节点生成的原始区块,生成签名区块,从而区块链网络中的区块可以通过其数字签名被确认区块产生者,为区块链网络的安全提供了可验证的信息。而且,由于节点与签名设备分别承担了生成区块、签名的角色,签名设备无需接收交易、无需参与原始区块的产生、也无需同步整个区块链,签名设备不涉及如pow等巨大的计算,且传输的签名数据量小,从而降低了对网络稳定性、设备计算能力的要求,适于使用例如移动终端等签名设备来参与区块的签名,适用范围更广。

图7是根据本公开第五方面的一示例性实施例示出的一种生成区块链区块的方法的流程图。该方法可以应用于区块链网络中的第二节点。可以理解的是,该第二节点可以为区块链网络中与第一节点不同的任意节点。例如,该第二节点可以为图1所示的云主机1102。该方法包括:

在步骤710中,接收区块链网络中的第一节点广播的签名区块,其中,所述签名区块由所述第一节点对原始区块进行数字签名操作而生成,其中,所述原始区块由所述第一节点根据区块链协议生成。

在步骤720中,对所述签名区块的签名进行验证。

在步骤730中,在对所述签名区块的签名验证通过的情况下,将所述签名区块添加到所述区块链网络中。

例如,第二节点可以使用签名设备的公钥对所述签名区块的原始区块签名进行验证。其中,所述签名区块,由所述第一节点将原始区块签名附加给所述原始区块而生成。所述原始区块签名,由所述签名设备在中间签名验证通过的情况下,使用所述签名设备的私钥,对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成。所述中间签名,由所述第一节点使用所述第一节点的私钥对所述原始区块的哈希值进行数字签名操作而生成。

再例如,区块链中可以保存有节点与签名设备之间的对应关系。所述原始区块签名,由所述签名设备在确定所述中间签名为具有对应关系的第一节点的签名的情况下,使用所述签名设备的私钥对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成。相应地,第二节点可以使用签名设备的公钥对所述签名区块的原始区块签名进行验证。通过该实施方式,只有与签名设备对应的节点生成的原始区块可以被签名设备签名,并被其他节点验证通过,从而可以使不同签名设备分别为自身对应的合法的节点进行签名,实现对不同类型的区块产生者进行分别控制,更进一步保证了区块链网络的安全。。

可以理解的是,在第二节点对所述签名区块签名验证通过的情况下,还可以在节点间广播将该签名区块添加到区块链网络的消息,从而第一节点也同样将该签名区块添加到区块链网络中,从而使得节点间的区块得到同步更新。在第二节点对所述签名区块的签名验证未通过的情况下,还可以在节点间广播拒绝将该签名区块添加到区块链网络的消息,保障了区块链网络的安全。

可见,通过本公开上述实施例提供的技术方案,区块链网络中的第二节点接收区块链网络中的第一节点广播的签名区块,在对该签名区块签名验证通过的情况下,将该签名区块添加到所述区块链网络中,从而能够对区块的产生者进行控制,只有通过验证的区块产生者发布的区块,才能够被其他节点接受,为区块链网络的安全提供了一定保障。

图8是根据本公开第六方面的一示例性实施例示出的一种生成区块链区块的装置800的框图。该装置可以配置于区块链网络中的第二节点。可以理解的是,该第二节点可以为区块链网络中与第一节点不同的任意节点。例如,该第二节点可以为图1所示的云主机1102。该装置包括:签名区块接收模块810、签名区块验证模块820、以及签名区块添加模块830。

该签名区块接收模块810,可以被配置为接收区块链网络中的第一节点广播的签名区块,其中,所述签名区块由所述第一节点对原始区块进行数字签名操作而生成,所述原始区块由所述第一节点根据区块链协议生成。

该签名区块验证模块820,可以被配置为对所述签名区块接收模块810接收的签名区块的签名进行验证。

例如,所述签名区块验证模块820可以被配置为使用签名设备的公钥对所述签名区块的原始区块签名进行验证。其中,所述签名区块,由所述第一节点将原始区块签名附加给所述原始区块而生成。所述原始区块签名,由所述签名设备在中间签名验证通过的情况下,使用所述签名设备的私钥,对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成。所述中间签名,由所述第一节点使用所述第一节点的私钥对所述原始区块的哈希值进行数字签名操作而生成。

再例如,所述签名设备与所述第一节点具有对应关系。所述原始区块签名,由所述签名设备在确定所述中间签名为具有对应关系的第一节点的签名的情况下,使用所述签名设备的私钥对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成。相应地,所述签名区块验证模块820可以被配置为使用所述签名设备的公钥对所述签名区块的原始区块签名进行验证。

通过该实施方式,只有与签名设备对应的节点生成的原始区块可以被签名设备签名,并被其他节点验证通过,从而可以使不同签名设备分别为自身对应的合法的节点进行签名,实现对不同类型的区块产生者进行分别控制,更进一步保证了区块链网络的安全。。

该签名区块添加模块830,可以被配置为在所述签名区块验证模块820对所述签名区块的签名验证通过的情况下,将所述签名区块添加到所述区块链网络中。

可见,通过本公开上述实施例提供的技术方案,区块链网络中的第二节点接收区块链网络中的第一节点广播的签名区块,在对该签名区块签名验证通过的情况下,将该签名区块添加到所述区块链网络中,从而能够对区块的产生者进行控制,只有通过验证的区块产生者发布的区块,才能够被其他节点接受,为区块链网络的安全提供了一定保障。

本公开实施例第七方面还提供一种非临时性计算机可读存储介质。该非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行本公开第一方面任一实施例所述的生成区块链区块的方法。

本公开实施例第一方面所述的生成区块链区块的方法应用于区块链网络中的第一节点,所述方法包括:根据区块链协议生成原始区块,对所述原始区块进行数字签名操作,生成签名区块,将所述签名区块在所述区块链网络中进行广播。

可选地,所述签名区块,可以用于使所述区块链网络中接收到所述广播的第二节点,在对所述签名区块的签名验证通过的情况下,将所述签名区块添加到所述区块链网络中。

可选地,所述对所述原始区块进行数字签名操作,生成签名区块可以包括:使用所述第一节点的私钥,对所述原始区块的哈希值进行数字签名操作,生成原始区块签名,将所述原始区块签名附加给所述原始区块,生成签名区块。

可选地,所述对所述原始区块进行数字签名操作,生成签名区块可以包括:使用所述第一节点的私钥对所述原始区块的哈希值进行数字签名操作,生成中间签名;将所述中间签名发送给签名设备;接收所述签名设备发送的原始区块签名,其中,所述原始区块签名,由所述签名设备在对所述中间签名验证通过的情况下,使用所述签名设备的私钥,对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成;将所述原始区块签名附加给所述原始区块,生成签名区块。

可选地,所述将所述中间签名发送给签名设备包括:将所述中间签名发送给与所述第一节点具有对应关系的签名设备。所述原始区块签名,由所述签名设备在确定所述中间签名为具有对应关系的第一节点的签名的情况下,使用所述签名设备的私钥对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成。

可选地,所述签名设备为移动设备。

本公开实施例第八方面还提供了一种区块链网络节点。该区块链网络节点可以包括:本公开实施例第七方面所述的非临时性计算机可读存储介质;以及,一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。

本公开实施例第九方面还提供另一种非临时性计算机可读存储介质。该非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行本公开第三方面任一实施例所述的生成区块链区块的方法。

本公开实施例第三方面所述的生成区块链区块的方法应用于签名设备,所述方法包括:接收区块链网络中的第一节点发送的中间签名,其中,所述中间签名由所述第一节点使用所述第一节点的私钥对所述第一节点生成的原始区块的哈希值进行数字签名操作而生成;对所述中间签名进行验证;在所述中间签名验证通过的情况下,使用所述签名设备的私钥,对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作,生成原始区块签名;将所述原始区块签名发送给所述第一节点,其中,所述原始区块签名,用于使所述第一节点将所述原始区块签名附加给所述原始区块,生成签名区块。

可选地,所述对所述中间签名进行验证包括:对所述中间签名是否为与所述签名设备具有对应关系的第一节点的签名进行验证;在所述中间签名为与所述签名设备具有对应关系的第一节点的签名的情况下,验证通过。

可选地,所述签名设备为移动设备。

本公开实施例第十方面还提供了一种签名设备。该签名设备可以包括:本公开实施例第八方面所述的非临时性计算机可读存储介质;以及,一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。

本公开实施例第十一方面还提供又一种非临时性计算机可读存储介质。该非临时性计算机可读存储介质中包括一个或多个程序,所述一个或多个程序用于执行本公开第五方面任一实施例所述的生成区块链区块的方法。

本公开实施例第五方面所述的生成区块链区块的方法应用于区块链网络中的第二节点,所述方法包括:接收区块链网络中的第一节点广播的签名区块,其中,所述签名区块由所述第一节点对原始区块进行数字签名操作而生成,所述原始区块由所述第一节点根据区块链协议生成;对所述签名区块的签名进行验证;在对所述签名区块的签名验证通过的情况下,将所述签名区块添加到所述区块链网络中。

可选地,所述对所述签名区块的签名进行验证包括:使用签名设备的公钥对所述签名区块的原始区块签名进行验证。其中,所述签名区块,由所述第一节点将原始区块签名附加给所述原始区块而生成。所述原始区块签名,由所述签名设备在中间签名验证通过的情况下,使用所述签名设备的私钥,对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成。所述中间签名,由所述第一节点使用所述第一节点的私钥对所述原始区块的哈希值进行数字签名操作而生成。

可选地,所述签名设备与所述第一节点具有对应关系。所述原始区块签名,由所述签名设备在确定所述中间签名为具有对应关系的第一节点的签名的情况下,使用所述签名设备的私钥对所述中间签名中包含的所述原始区块的哈希值进行数字签名操作而生成。所述对所述签名区块的签名进行验证包括:使用所述签名设备的公钥,对所述签名区块的原始区块签名进行验证。

本公开实施例第十二方面还提供了另一种区块链网络节点。该区块链网络节点可以包括:本公开实施例第十一方面所述的非临时性计算机可读存储介质;以及,一个或者多个处理器,用于执行所述非临时性计算机可读存储介质中的程序。

本公开实施例第十三方面还提供了一种生成区块链区块的系统。该系统可以包括:至少一个本公开实施例第八方面所述的区块链网络节点,至少一个本公开实施例第十方面所述的签名设备,以及,至少一个本公开实施例第十二方面所述的区块链网络节点。其中,本公开实施例第八方面所述的区块链网络节点以及本公开实施例第十二方面所述的区块链网络节点属于同一区块链网络。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。

此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。

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