CN110225044A - 在区块链上的验证方法及装置 - Google Patents
在区块链上的验证方法及装置 Download PDFInfo
- Publication number
- CN110225044A CN110225044A CN201910519269.3A CN201910519269A CN110225044A CN 110225044 A CN110225044 A CN 110225044A CN 201910519269 A CN201910519269 A CN 201910519269A CN 110225044 A CN110225044 A CN 110225044A
- Authority
- CN
- China
- Prior art keywords
- node
- block
- numerical value
- cryptographic hash
- hash
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例涉及一种在区块链上的验证方法及装置。包括:生成第一待验证区块,根据第一待验证区块进行第一哈希运算得到第一哈希值;向多个出块节点中的其他节点发送第一哈希值;确定多个出块节点的第一数值;根据多个出块节点的第一数值的大小,选择指定数量个第一数值;对指定数量个第一数值进行第二哈希运算,得到第二哈希值;根据第二哈希值以及预设的随机规则,在多个验证节点中选择目标验证节点;向目标验证节点发送第一待验证区块。以此,可以选择出块节点以外的部分节点对区块进行验证,该部分节点的选择具有一定的随机性和可验证性,可以降低区块链被攻击成功的可能,并且提高了区块链节点网络的验证效率,进而提高了记账效率。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种在区块链上的验证方法及装置。
背景技术
区块链网络中的每一个节点,就相当于存储所有区块数据的每一台电脑或者服务器终端。所有新区块的生产,以及交易的验证与记帐,并将其广播给全网同步,都由节点来完成。
节点,就是我们俗称的矿工。每个矿工的不同算力,决定了它能分配到多少记帐权,收获多少奖励。
区块链第一代共识机制叫POW,就是工作量证明共识机制,俗称挖矿。要想生产新的区块,就必须进行成千上万次哈希碰撞的运算。而这些运算,会消耗很多电力,造成能源浪费,因此也倍受垢病。更让大家担心的是,一旦大部分算力被垄断,去中心化就受到威胁。
第二代共识机制叫POS,就是权益证明共识机制,它是根据持币数量与时间来决定谁拥有更多的记帐权。这种共识机制的优点是可以避免能源消耗,但缺点是话语权都被持币大户所掌控,形成中央集权的特征,也与区块链去中心化的初衷背道而驰。
第三代共识机制就是DPOS,其最大的特征,就是在POS权益证明的基础之上,加入了选举制度。经过所有持币用户投票选举诞生的最终获得记帐权的超级节点进行记账,可以极大地降低了能源的浪费,但是,由于运算都集中的超级节点上,对超级节点的算力要求较高,且超级节点的效率直接影响记账的效率,这就导致,该种方式应对大规模数据的能力不强,发展受到制约。
发明内容
基于上述问题,本发明实施例提供了一种在区块链上的验证方法及装置。
第一方面,本发明实施例提供了一种在区块链上的验证方法。所述区块链节点网络包括多个出块节点和多个验证节点,所述方法适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述方法包括:
生成第一待验证区块,根据所述第一待验证区块进行第一哈希运算得到第一哈希值;
向所述多个出块节点中的其他节点发送所述第一哈希值;
确定所述多个出块节点的第一数值,每个出块节点的第一数值基于该出块节点对所述第一哈希值的签名确定;
根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值;
根据所述第二哈希值以及预设的随机规则,在所述多个验证节点中选择目标验证节点;
向所述目标验证节点发送所述第一待验证区块,以便所述目标验证节点验证所述第一待验证区块。
在一些实施例中,所述方法还包括:
对所述第一哈希值进行签名,得到所述第一出块节点的第一数字签名;
对所述第一出块节点的第一数字签名进行第三哈希运算得到所述第一出块节点的第一数值。
在一些实施例中,还包括:
接收第二出块节点发送的第三哈希值,所述第三哈希值为所述第二出块节点对第二待验证区块进行第一哈希运算得到;
对所述第三哈希值进行签名,得到所述第一出块节点的第二数字签名;
对所述第一出块节点的第二数字签名进行第三哈希运算得到所述第一出块节点的第二数值;
向所述第二出块节点发送的所述第一出块节点的第二数值。
第二方面,提供了一种在区块链上的验证方法。所述区块链节点网络包括多个出块节点和多个验证节点,所述方法适用于当前验证节点,所述当前验证节点为所述多个验证节点中的任意一个,所述方法包括:
确定第一出块节点生成的第一待验证区块、第一出块节点的公钥、第一出块节点的第一数字签名和所述多个出块节点的第一数值;
使用第一出块节点所述公钥对所述第一出块节点的第一数字签名进行验证,得到第一出块节点的第一哈希值;
对所述第一待验证区块进行第一哈希运算得到第四哈希值;
如果所述第一哈希值和所述第四哈希值相同,根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值;
根据所述第二哈希值以及预设的随机规则,确定目标验证节点的序号;
如果所述目标验证节点的序号为所述当前验证节点的序号,对所述第一待验证区块进行验证,并将验证结果在所述区块链节点网络中进行广播。
第三方面,提供了一种在区块链上的验证装置。所述区块链节点网络包括多个出块节点和多个验证节点,所述装置适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述装置包括:
哈希单元,用于生成第一待验证区块,根据所述第一待验证区块进行第一哈希运算得到第一哈希值;
发送单元,用于向所述多个出块节点中的其他节点发送所述第一哈希值;
确定单元,用于确定所述多个出块节点的第一数值,每个出块节点的第一数值基于该出块节点对所述第一哈希值的签名确定;
第一选择单元,用于根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
所述哈希单元还用于,对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值;
第二选择单元,用于根据所述第二哈希值以及预设的随机规则,在所述多个验证节点中选择目标验证节点;
所述发送单元还用于,向所述目标验证节点发送所述第一待验证区块,以便所述目标验证节点验证所述第一待验证区块。
在一些实施例中,所述装置还包括:
签名单元,用于对所述第一哈希值进行签名,得到所述第一出块节点的第一数字签名;
所述哈希单元还用于,对所述第一出块节点的第一数字签名进行第三哈希运算得到所述第一出块节点的第一数值。
在一些实施例中,还包括:
接收单元,用于接收第二出块节点发送的第三哈希值,所述第三哈希值为所述第二出块节点对第二待验证区块进行第一哈希运算得到;
签名单元,用于对所述第三哈希值进行签名,得到所述第一出块节点的第二数字签名;
所述哈希单元还用于,对所述第一出块节点的第二数字签名进行第三哈希运算得到所述第一出块节点的第二数值;
发送单元,用于向所述第二出块节点发送的所述第一出块节点的第二数值。
第四方面,提供了一种在区块链上的验证装置。所述区块链节点网络包括多个出块节点和多个验证节点,所述方法适用于当前验证节点,所述当前验证节点为所述多个验证节点中的任意一个,所述装置包括:
第一确定单元,用于确定第一出块节点生成的第一待验证区块、第一出块节点的公钥、第一出块节点的第一数字签名和所述多个出块节点的第一数值;
第一验证单元,用于使用第一出块节点所述公钥对所述第一出块节点的第一数字签名进行验证,得到第一出块节点的第一哈希值;
哈希单元用于,对所述第一待验证区块进行第一哈希运算得到第四哈希值;
选择单元,用于如果所述第一哈希值和所述第四哈希值相同,根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
所述哈希单元还用于,对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值;
第二确定单元,用于根据所述第二哈希值以及预设的随机规则,确定目标验证节点的序号;
第二验证单元,如果所述目标验证节点的序号为所述当前验证节点的序号,用于对所述第一待验证区块进行验证,并将验证结果在所述区块链节点网络中进行广播。
在一些实施例中,所述对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值,包括:
将所述指定数量个第一数值和第三数值进行第二哈希运算得到第二哈希值,所述第三数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
在一些实施例中,所述预设的随机规则包括:
将所述第二哈希值转换为10进制,并取第四数值的余数,所述第四数值根据所述多个验证节点的数量确定;
确定所述余数对应的验证节点为所述目标验证节点。
第五方面,本说明书实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现前述第一方面或第二方面中任意一方面或多方面的方法步骤。
第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面或第二方面中任意一方面或多方面所述的方法。
第七方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述第一方面或第二方面中任意一方面或多方面所述的方法。
通过本发明实施例,可以选择出块节点以外的部分节点对区块进行验证,该部分节点的选择具有一定的随机性和可验证性,可以降低区块链被攻击成功的可能,并且提高了区块链节点网络的验证效率,进而提高了记账效率,使得区块链节点网络可以应该数据规模更大的服务场景。
附图说明
图1应用本申请提供的实施例的示例性架构;
图2为本发明实施例提供的一种在区块链上的验证方法的流程图;
图3为本发明实施例提供的另一种在区块链上的验证方法的流程图;
图4为本发明实施例提供的一种基于区块链的发布信息的装置的结构示意图;
图5为本发明实施例提供的一种基于区块链的发布信息的装置的结构示意图;
图6示出了本说明书实施例所提供的一种计算机设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种在区块链上的验证方法及装置。图1示出了应用本申请提供的实施例的示例性架构。
如图1所示,该示例性架构可以包括多个区块链节点,该多个区块链节点可以包括多个出块节点101和多个验证节点102。在一个示例中,该出块节点可以为通过选举机制选择的多个超级节点,该超级节点的数量可以根据实际需要确定,该超级节点的数量可以为奇数个,例如21个。在另一个示例中,该多个验证节点可以为备选节点,其中,该超级节点可以为从备选节点中选取,该备选节点的数量也可以根据实际需要确定,例如,可以为100个,其中,备选节点可以根据预设的随机规则进行选择,例如,算力最高的指定数量个节点可以作为备选节点。在另一个示例中,验证节点还可以为除出块节点以外的全部或部分节点。其中,区块链节点可以以软件形式实现,也可以以硬件形式实现。当实现为硬件时,其可以是笔记本电脑,台式电脑以及移动终端等等。
出块节点主要用于基于共识机制,将系统中指定时间段内的数据生产区块,也就是主要用于记账。验证节点主要用于基于共识机制,对出块节点产生的区块进行验证,通过验证的区块会被记录在区块链中。节点之间可以进行通信以便同步区块链等数据。例如,节点之间可以基于D2D协议进行通信。
为便于对本发明实施例的理解,下面将结合附图以具体实施例作进一步的解释说明,实施例并不构成对本发明实施例的限定。
图2为本发明提供的一种在区块链上的验证方法的流程图。该区块链节点网络包括多个出块节点和多个验证节点,例如图1所示的示例性架构中的区块链节点网络,该方法适用于第一出块节点,该第一出块节点为多个出块节点中的任意一个。如图2所示,该方法具体包括:
S210,生成第一待验证区块,根据所述第一待验证区块进行第一哈希运算得到第一哈希值。
其中,区块链节点网络中的各个节点基于共识机制运行。该共识机制被预先定义,该共识机制可以包括出块共识机制、验证共识机制等等。
区块链节点网络中的出块节点可以根据出块共识机制确定第一出块节点,该第一出块节点可以将系统中指定时间段内的数据生成区块。该指定时间段可以根据实际需要确定,例如可以为1秒、10秒或10分钟等等。该系统可以为该区块链节点网络对应的整个区块链系统。其中,区块链是有多个区块构成的,每个区块可以携带有上一个区块的标识已形成链式的存储结构。
当前区块链节点在生成新的区块需要需要经过验证之后才能上链,该新的区块可以称为第一待验证区块。
为了增加节点的验证效率、降低系统的负担,可以选择一定数量个验证节点进行验证。
在选择验证节点时,可以对第一待验证区块进行第一哈希运算,得到第一哈希值。其中,验证共识机制可以包括预定义的第一哈希运算,该第一哈希运算可以根据实际需要确定,例如,第一哈希运算可以为SHA-256等。
S220,向多个出块节点中的其他节点发送第一哈希值。
该多个出块节点可以为全部的出块节点。
S230,确定所述多个出块节点的第一数值,每个出块节点的第一数值基于该出块节点对所述第一哈希值的签名确定。
每个出块节点对第一哈希值进行签名,得到该出块节点的第一数字签名;该出块节点的第一数字签名,可以作为该出块节点的第一数值。或者,每个出块节点对该出块节点的第一数字签名进行第三哈希运算得到该出块节点的第一数值。
在一个示例中,第一出块节点可以对第一哈希值进行签名,得到第一出块节点的第一数字签名;该第一出块节点对第一出块节点的第一数字签名进行第三哈希运算得到该第一出块节点的第一数值。
每个区块链节点可以包括至少一个秘钥对,每个秘钥对包括一个公钥和一个私钥,该私钥可以存储在本地,该公钥可以发送给其他区块链节点。
当前出块节点在确定第一哈希值后,可以对该第一哈希值进行签名,得到第一数字签名。该出块节点的第一签名可以使用该出块节点的私钥进行签名,使用该私钥对应的公钥可以验证该出块节点的第一签名。
S240,根据多个出块节点的第一数值的大小,选择指定数量个第一数值。
其中,可以对多个出块节点的第一数值进行排序,选择数值较大或较小的指定数量个第一数值。该指定数量可以根据实际需要确定,例如,该指定数量可以为2个。
S250,对指定数量个第一数值进行第二哈希运算,得到第二哈希值。
在选择验证节点时,可以对指定数量个第一数字签名进行第二哈希运算,得到第二哈希值。其中,验证共识机制可以包括预定义的第二哈希运算,该第二哈希运算可以根据实际需要确定,例如,第二哈希运算可以为SHA-256等。其中,第一哈希运算与第二哈希运算可以为相同的哈希运算可以为不同的哈希运算。
S260,根据所述第二哈希值以及预设的随机规则,在所述多个验证节点中选择目标验证节点。该目标验证节点可以包括一个或多个。
在选择验证节点时,可以根据第二哈希值进行选择。其中,验证共识机制可以包括选择依据的预设的随机规则,该预设的随机规则具有一定的随机性和可验证性。
在一个示例中,该预设的随机规则可以包括:
将第二哈希值转换为10进制,并取第四数值的余数;
确定该余数对应的验证节点为目标验证节点。
其中,该第四数值可以根据验证节点的数量确定。例如,验证节点的数量可以为100,该第四数值可以为100。
其中,第二哈希值保证了随机性,第二哈希值的确定以及预设的随机规则,保证了该目标验证节点的可验证性。
S270,向所述目标验证节点发送所述第一待验证区块,以便所述目标验证节点验证所述第一待验证区块。
第一出块节点可以将第一待验证区块发送至目标验证节点进行验证。在向目标验证节点发送第一待验证区块时,可以将目标验证节点发送第一数字签名和公钥。其中,发送该公钥的形式可以包括多种。在一个示例中,可以根据该公钥生成该出块节点的地址,该地址可以作为交易的转出或转入地址,该目标验证节点可以根据该出块节点的地址确定该出块节点的公钥。在另一个示例中,该公钥可以携带在第一待验证区块中进行发送。
目标验证节点在接收到第一待验证区块后,首先可以验证第一出块节点的身份,该出块节点的身份可以通过第一出块节点的公钥对第一出块节点的第一数字签名进行验证实现。在验证通过后,目标验证节点可以对自身的验证身份进行验证,该验证验证过程可以基于出块节点选择目标验证节点相同的规则进行验证,以验证目标验证节点是否包括其自身。在上述两个验证过程都通过后,目标验证节点再对第一待验证区块进行验证,并将验证结果进行全网同步。其中,对于第一待验证区块的验证,主要是验证出块节点记账是否正确,具体验证方式可以包括多种,此处不再赘述。
通过本发明实施例,可以选择出块节点以外的部分节点对区块进行验证,该部分节点的选择具有一定的随机性和可验证性,可以降低区块链被攻击成功的可能,并且提高了区块链节点网络的验证效率,进而提高了记账效率,使得区块链节点网络可以应该数据规模更大的服务场景。
在一些实施例中,上述步骤S230具体可以通过如下步骤实现:
将所述第一数字签名和第三数值进行第二哈希运算得到第二哈希值。
其中,第三数值为1-n等预定义的固定值,该n为任意值。
该第三数值还可以为第一出块节点的序列号,或者根据第一出块节点的序列号确定的数值。通过该第三值,可以进一步实现出块节点选择的随机性。
在一些实施例中,该方法还包括如下步骤:
1)接收第二出块节点发送的第三哈希值。
其中,该第三哈希值为第二出块节点对第二待验证区块进行第一哈希运算得到;该第二待验证区块可以为第二出块节点新生成的区块。
2)对第三哈希值进行签名,得到第一出块节点的第二数字签名;
3)对第一出块节点的第二数字签名进行第三哈希运算得到第一出块节点的第二数值;
4)向第二出块节点发送的所述第一出块节点的第二数值。
图3为本发明提供的另一种在区块链上的验证方法的流程图。该区块链节点网络包括多个出块节点和多个验证节点,例如图1所示的示例性架构中的区块链节点网络,该方法适用于当前验证节点,该当前验证节点为所述多个验证节点中的任意一个,如图3所示,该方法具体包括::
S310,确定第一出块节点生成的第一待验证区块、第一出块节点的公钥、第一出块节点的第一数字签名和所述多个出块节点的第一数值。
可以接收第一出块节点发送的第一待验证区块、第一出块节点的公钥和第一出块节点的第一数字签名。
其中,第一待验证区块可以为第一出块节点新生成的区块。该第一数字签名可以根据该第一待验证区块确定。具体地,该当前区块可以对该第一待验证区块进行第一哈希运算得到第一哈希值,并使用私钥对该第一哈希值进行签名得到第一数字签名。具体可以参见前述图2所示的实施例此处不再赘述。
当前验证节点还可以确定第一出块节点的公钥,该公钥可以根据该第一出块节点的地址确定,也可以获取携带在带验证区块中的公钥。
其中,每个节点可以包括至少一个非对称加密的秘钥对,每个秘钥对包括一个公钥和一个私钥。
其中,区块链节点网络中的各个节点基于共识机制运行。该共识机制被预先定义,该共识机制可以包括出块共识机制、验证共识机制等等。该验证节点主要用于执行验证共识机制。
目标验证节点在接收到第一待验证区块后,首先可以验证第一出块节点的身份,该出块节点的身份可以通过下述步骤S320-S330实现。
S320,使用第一出块节点所述公钥对所述第一出块节点的第一数字签名进行验证,得到第一出块节点的第一哈希值。
S330,对所述第一待验证区块进行第一哈希运算得到第四哈希值;
其中,第一哈希运算为出块节点生成第一哈希值的运算。该第一哈希运算可以预定义在验证共识机制中。
当前验证节点可以比对第一哈希值和第四哈希值是否相同,如果相同,这说明该第一数字签名为该出块节点的数字签名,也即验证通过。如果不同,则验证未通过。
在上述验证通过后,当前验证节点可以对自身的验证身份进行验证,该验证验证过程可以通过步骤S340至S360实现。
S340,如果所述第一哈希值和所述第四哈希值相同,根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
对于该指定数量个第一数值的选择可以结合前述图2所示的实施例中的描述,此处不再赘述。
S350,对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值。
其中,第二哈希运算为出块节点生成第二哈希值的运算。该第二哈希运算可以预定义在验证共识机制中。该第一哈希运算与第二哈希运算可以为相同的运算,也可以是不同的运算。该第一哈希运算和第二哈希运算可以结合前述图2所示的实施例中的论述,此处不再赘述。
S360,根据所述第二哈希值以及预设的随机规则,确定目标验证节点的序号。
其中,预设的随机规则为出块节点选择目标验证节点的规则。该预设的随机规则可以预定义在验证共识机制中。该预设的随机规则可以结合前述图2所示的实施例中的论述,此处不再赘述。
在确定目标验证节点的序号后,可以确定该目标验证节点的序号是否包括自身。如果包括,则需执行步骤S370,如果不包括,则结束验证流程。
S370,如果所述目标验证节点的序号为所述当前验证节点的序号,对所述第一待验证区块进行验证,并将验证结果在所述区块链节点网络中进行广播。
在上述两个验证过程都通过后,当前验证节点需要对第一待验证区块进行验证,并将验证结果进行全网同步。其中,对于第一待验证区块的验证,主要是验证出块节点记账是否正确,具体验证方式可以包括多种,此处不再赘述。
通过本发明实施例,可以选择出块节点以外的部分节点对区块进行验证,该部分节点的选择具有一定的随机性和可验证性,可以降低区块链被攻击成功的可能,并且提高了区块链节点网络的验证效率,进而提高了记账效率,使得区块链节点网络可以应该数据规模更大的服务场景。
图4为本发明实施例提供的一种在区块链上的验证装置结构示意图。该区块链节点网络包括多个出块节点和多个验证节点,例如图1所示的示例性架构中的区块链节点网络,所述装置适用于当前出块节点,所述当前出块节点为所述多个出块节点中的任意一个,所述装置包括:
哈希单元401,用于生成第一待验证区块,根据所述第一待验证区块进行第一哈希运算得到第一哈希值;
发送单元402,用于向所述多个出块节点中的其他节点发送所述第一哈希值;
确定单元403,用于确定所述多个出块节点的第一数值,每个出块节点的第一数值基于该出块节点对所述第一哈希值的签名确定;
第一选择单元404,用于根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
所述哈希单元401还用于,对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值;
第二选择单元405,用于根据所述第二哈希值以及预设的随机规则,在所述多个验证节点中选择目标验证节点;
所述发送单元402还用于,向所述目标验证节点发送所述第一待验证区块,以便所述目标验证节点验证所述第一待验证区块。
在一些实施例中,所述装置还包括:
签名单元,用于对所述第一哈希值进行签名,得到所述第一出块节点的第一数字签名;
所述哈希单元还用于,对所述第一出块节点的第一数字签名进行第三哈希运算得到所述第一出块节点的第一数值。
在一些实施例中,还包括:
接收单元,用于接收第二出块节点发送的第三哈希值,所述第三哈希值为所述第二出块节点对第二待验证区块进行第一哈希运算得到;
签名单元,用于对所述第三哈希值进行签名,得到所述第一出块节点的第二数字签名;
所述哈希单元还用于,对所述第一出块节点的第二数字签名进行第三哈希运算得到所述第一出块节点的第二数值;
发送单元,用于向所述第二出块节点发送的所述第一出块节点的第二数值。
可以理解,本实施例的基于区块链的在区块链上的验证装置与图2所示的方法实施例相对应,因此,以上关于图2所示的方法实施例的描述同样适用于本实施例的装置,在此不再赘述。
图5为本发明实施例提供的一种在区块链上的验证装置结构示意图。该区块链节点网络包括多个出块节点和多个验证节点,例如图1所示的示例性架构中的区块链节点网络,该装置适用于当前验证节点,所述当前验证节点为所述多个验证节点中的任意一个,所述装置包括:
第一确定单元501,用于确定第一出块节点生成的第一待验证区块、第一出块节点的公钥、第一出块节点的第一数字签名和所述多个出块节点的第一数值;
第一验证单元502,用于使用第一出块节点所述公钥对所述第一出块节点的第一数字签名进行验证,得到第一出块节点的第一哈希值;
哈希单元503,于对所述第一待验证区块进行第一哈希运算得到第四哈希值;
选择单元504如果所述第一哈希值和所述第四哈希值相同,根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
所述哈希单元503还用于,对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值;
第二确定单元505,用于根据所述第二哈希值以及预设的随机规则,确定目标验证节点的序号;
第二验证单元506,如果所述目标验证节点的序号为所述当前验证节点的序号,用于对所述第一待验证区块进行验证,并将验证结果在所述区块链节点网络中进行广播。
可以理解,本实施例的在区块链上的验证装置与图3所示的方法实施例相对应,因此,以上关于图3所示的方法实施例的描述同样适用于本实施例的装置,在此不再赘述。
图6示出了本说明书实施例所提供的一种计算机设备结构示意图,该计算机设备可以包括:处理器610、存储器620、输入/输出接口630、通信接口640和总线650。其中处理器640、存储器620、输入/输出接口630和通信接口640通过总线650实现彼此之间在设备内部的通信连接。
处理器610可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器620可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器620可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器620中,并由处理器610来调用执行。
输入/输出接口630用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口640用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线650包括一通路,在设备的各个组件(例如处理器610、存储器620、输入/输出接口630和通信接口640)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器610、存储器620、输入/输出接口630、通信接口640以及总线650,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的范围之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种在区块链上的验证方法,其特征在于,区块链节点网络包括多个出块节点和多个验证节点,所述方法适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述方法包括:
生成第一待验证区块,根据所述第一待验证区块进行第一哈希运算得到第一哈希值;
向所述多个出块节点中的其他节点发送所述第一哈希值;
确定所述多个出块节点的第一数值,每个出块节点的第一数值基于该出块节点对所述第一哈希值的签名确定;
根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值;
根据所述第二哈希值以及预设的随机规则,在所述多个验证节点中选择目标验证节点;
向所述目标验证节点发送所述第一待验证区块,以便所述目标验证节点验证所述第一待验证区块。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述第一哈希值进行签名,得到所述第一出块节点的第一数字签名;
对所述第一出块节点的第一数字签名进行第三哈希运算得到所述第一出块节点的第一数值。
3.根据权利要求2所述的方法,其特征在于,还包括:
接收第二出块节点发送的第三哈希值,所述第三哈希值为所述第二出块节点对第二待验证区块进行第一哈希运算得到;
对所述第三哈希值进行签名,得到所述第一出块节点的第二数字签名;
对所述第一出块节点的第二数字签名进行第三哈希运算得到所述第一出块节点的第二数值;
向所述第二出块节点发送的所述第一出块节点的第二数值。
4.根据权利要求1所述的方法,其特征在于,所述对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值,包括:
将所述指定数量个第一数值和第三数值进行第二哈希运算得到第二哈希值,所述第三数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
5.根据权利要求1所述的方法,其特征在于,所述预设的随机规则包括:
将所述第二哈希值转换为10进制,并取第四数值的余数,所述第四数值根据所述多个验证节点的数量确定;
确定所述余数对应的验证节点为所述目标验证节点。
6.一种在区块链上的验证方法,其特征在于,所述区块链节点网络包括多个出块节点和多个验证节点,所述方法适用于当前验证节点,所述当前验证节点为所述多个验证节点中的任意一个,所述方法包括:
确定第一出块节点生成的第一待验证区块、第一出块节点的公钥、第一出块节点的第一数字签名和所述多个出块节点的第一数值;
使用第一出块节点所述公钥对所述第一出块节点的第一数字签名进行验证,得到第一出块节点的第一哈希值;
对所述第一待验证区块进行第一哈希运算得到第四哈希值;
如果所述第一哈希值和所述第四哈希值相同,根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值;
根据所述第二哈希值以及预设的随机规则,确定目标验证节点的序号;
如果所述目标验证节点的序号为所述当前验证节点的序号,对所述第一待验证区块进行验证,并将验证结果在所述区块链节点网络中进行广播。
7.根据权利要求6所述的方法,其特征在于,所述对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值,包括:
将所述指定数量个第一数值和第三数值进行第二哈希运算得到第二哈希值,所述第三数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
8.根据权利要求6所述的方法,其特征在于,所述预设的随机规则包括:
将所述第二哈希值转换为10进制,并取第二数值的余数,所述第二数值根据所述多个验证节点的数量确定;
确定所述余数对应的验证节点为所述目标验证节点。
9.一种在区块链上的验证装置,其特征在于,所述区块链节点网络包括多个出块节点和多个验证节点,所述装置适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述装置包括:
哈希单元,用于生成第一待验证区块,根据所述第一待验证区块进行第一哈希运算得到第一哈希值;
发送单元,用于向所述多个出块节点中的其他节点发送所述第一哈希值;
确定单元,用于确定所述多个出块节点的第一数值,每个出块节点的第一数值基于该出块节点对所述第一哈希值的签名确定;
第一选择单元,用于根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
所述哈希单元还用于,对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值;
第二选择单元,用于根据所述第二哈希值以及预设的随机规则,在所述多个验证节点中选择目标验证节点;
所述发送单元还用于,向所述目标验证节点发送所述第一待验证区块,以便所述目标验证节点验证所述第一待验证区块。
10.一种在区块链上的验证装置,其特征在于,所述区块链节点网络包括多个出块节点和多个验证节点,所述装置适用于当前验证节点,所述当前验证节点为所述多个验证节点中的任意一个,所述装置包括:
第一确定单元,用于确定第一出块节点生成的第一待验证区块、第一出块节点的公钥、第一出块节点的第一数字签名和所述多个出块节点的第一数值;
第一验证单元,用于使用第一出块节点所述公钥对所述第一出块节点的第一数字签名进行验证,得到第一出块节点的第一哈希值;
哈希单元用于,对所述第一待验证区块进行第一哈希运算得到第四哈希值;
选择单元,用于如果所述第一哈希值和所述第四哈希值相同,根据所述多个出块节点的第一数值的大小,选择指定数量个第一数值;
所述哈希单元还用于,对所述指定数量个第一数值进行第二哈希运算,得到第二哈希值;
第二确定单元,用于根据所述第二哈希值以及预设的随机规则,确定目标验证节点的序号;
第二验证单元,如果所述目标验证节点的序号为所述当前验证节点的序号,用于对所述第一待验证区块进行验证,并将验证结果在所述区块链节点网络中进行广播。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910519269.3A CN110225044B (zh) | 2019-06-17 | 2019-06-17 | 在区块链上的验证方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910519269.3A CN110225044B (zh) | 2019-06-17 | 2019-06-17 | 在区块链上的验证方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110225044A true CN110225044A (zh) | 2019-09-10 |
CN110225044B CN110225044B (zh) | 2020-11-27 |
Family
ID=67817180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910519269.3A Active CN110225044B (zh) | 2019-06-17 | 2019-06-17 | 在区块链上的验证方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110225044B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881147A (zh) * | 2019-12-13 | 2020-11-03 | 深圳数字生命研究院 | 计算任务的处理方法和装置、存储介质及处理器 |
CN113300889A (zh) * | 2020-12-31 | 2021-08-24 | 恬家(上海)信息科技有限公司 | 链宽调节方法及区块链网络系统 |
CN113904869A (zh) * | 2021-11-10 | 2022-01-07 | 深圳前海微众银行股份有限公司 | 一种区块链中恶意节点的检测方法及区块链 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789908A (zh) * | 2016-11-23 | 2017-05-31 | 江苏通付盾科技有限公司 | 区块链中区块共识建立方法及系统 |
CN106980488A (zh) * | 2017-03-14 | 2017-07-25 | 腾讯科技(深圳)有限公司 | 随机数生成方法及装置 |
CN107005574A (zh) * | 2016-12-23 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | 区块生成方法、装置和区块链网络 |
CN107078910A (zh) * | 2016-12-23 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 生成区块链区块的方法、装置、节点、签名设备及系统 |
CN107450981A (zh) * | 2017-05-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及设备 |
CN107807951A (zh) * | 2017-09-18 | 2018-03-16 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及系统 |
CN108596621A (zh) * | 2018-04-28 | 2018-09-28 | 深圳市优学链科技有限公司 | 区块链记账节点生成方法、装置、计算机设备及存储介质 |
CN108881303A (zh) * | 2018-08-06 | 2018-11-23 | 罗伯特·博世有限公司 | 具有计算功能的节点、安全验证网络和安全验证方法 |
CN108964879A (zh) * | 2018-07-20 | 2018-12-07 | 杭州复杂美科技有限公司 | 一种抽签方法、共识方法、设备和存储介质 |
CN109067516A (zh) * | 2018-07-20 | 2018-12-21 | 杭州复杂美科技有限公司 | 一种抽签方法、共识方法、设备和存储介质 |
CN109087111A (zh) * | 2018-08-31 | 2018-12-25 | 深圳付贝科技有限公司 | 基于区块链的共识验证方法、挖矿机及区块链系统 |
CN109559122A (zh) * | 2018-12-07 | 2019-04-02 | 北京瑞卓喜投科技发展有限公司 | 区块链数据传输方法及区块链数据传输系统 |
CN109684798A (zh) * | 2019-01-04 | 2019-04-26 | 深圳银链科技有限公司 | 一种基于公有区块链的共识算法、设备及存储介质 |
CN109743173A (zh) * | 2018-12-20 | 2019-05-10 | 弗洛格(武汉)信息科技有限公司 | 区块链中出块节点确定方法、区块验证方法及区块链系统 |
CN109785130A (zh) * | 2018-12-17 | 2019-05-21 | 金蝶软件(中国)有限公司 | 区块链随机共识方法、装置、计算机设备和存储介质 |
US20190158272A1 (en) * | 2017-11-17 | 2019-05-23 | International Business Machines Corporation | Peer voting on a blockchain |
-
2019
- 2019-06-17 CN CN201910519269.3A patent/CN110225044B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106789908A (zh) * | 2016-11-23 | 2017-05-31 | 江苏通付盾科技有限公司 | 区块链中区块共识建立方法及系统 |
CN107005574A (zh) * | 2016-12-23 | 2017-08-01 | 深圳前海达闼云端智能科技有限公司 | 区块生成方法、装置和区块链网络 |
CN107078910A (zh) * | 2016-12-23 | 2017-08-18 | 深圳前海达闼云端智能科技有限公司 | 生成区块链区块的方法、装置、节点、签名设备及系统 |
CN106980488A (zh) * | 2017-03-14 | 2017-07-25 | 腾讯科技(深圳)有限公司 | 随机数生成方法及装置 |
CN107450981A (zh) * | 2017-05-31 | 2017-12-08 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法及设备 |
CN107807951A (zh) * | 2017-09-18 | 2018-03-16 | 联动优势科技有限公司 | 一种区块链生成方法、数据验证方法、节点及系统 |
US20190158272A1 (en) * | 2017-11-17 | 2019-05-23 | International Business Machines Corporation | Peer voting on a blockchain |
CN108596621A (zh) * | 2018-04-28 | 2018-09-28 | 深圳市优学链科技有限公司 | 区块链记账节点生成方法、装置、计算机设备及存储介质 |
CN108964879A (zh) * | 2018-07-20 | 2018-12-07 | 杭州复杂美科技有限公司 | 一种抽签方法、共识方法、设备和存储介质 |
CN109067516A (zh) * | 2018-07-20 | 2018-12-21 | 杭州复杂美科技有限公司 | 一种抽签方法、共识方法、设备和存储介质 |
CN108881303A (zh) * | 2018-08-06 | 2018-11-23 | 罗伯特·博世有限公司 | 具有计算功能的节点、安全验证网络和安全验证方法 |
CN109087111A (zh) * | 2018-08-31 | 2018-12-25 | 深圳付贝科技有限公司 | 基于区块链的共识验证方法、挖矿机及区块链系统 |
CN109559122A (zh) * | 2018-12-07 | 2019-04-02 | 北京瑞卓喜投科技发展有限公司 | 区块链数据传输方法及区块链数据传输系统 |
CN109785130A (zh) * | 2018-12-17 | 2019-05-21 | 金蝶软件(中国)有限公司 | 区块链随机共识方法、装置、计算机设备和存储介质 |
CN109743173A (zh) * | 2018-12-20 | 2019-05-10 | 弗洛格(武汉)信息科技有限公司 | 区块链中出块节点确定方法、区块验证方法及区块链系统 |
CN109684798A (zh) * | 2019-01-04 | 2019-04-26 | 深圳银链科技有限公司 | 一种基于公有区块链的共识算法、设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
朱建明,等: ""基于许可链的SWIFT系统分布式架构"", 《软件学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111881147A (zh) * | 2019-12-13 | 2020-11-03 | 深圳数字生命研究院 | 计算任务的处理方法和装置、存储介质及处理器 |
CN111881147B (zh) * | 2019-12-13 | 2023-09-22 | 深圳数字生命研究院 | 计算任务的处理方法和装置、存储介质及处理器 |
CN113300889A (zh) * | 2020-12-31 | 2021-08-24 | 恬家(上海)信息科技有限公司 | 链宽调节方法及区块链网络系统 |
CN113904869A (zh) * | 2021-11-10 | 2022-01-07 | 深圳前海微众银行股份有限公司 | 一种区块链中恶意节点的检测方法及区块链 |
CN113904869B (zh) * | 2021-11-10 | 2024-04-19 | 深圳前海微众银行股份有限公司 | 一种区块链中恶意节点的检测方法及区块链 |
Also Published As
Publication number | Publication date |
---|---|
CN110225044B (zh) | 2020-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222537A (zh) | 应用于区块链节的验证方法及装置 | |
CN110210865A (zh) | 基于区块链的打包方法及装置 | |
CN110223070A (zh) | 基于区块链节点网络的验证方法及装置 | |
CN110247753A (zh) | 基于区块链节点网络的出块方法及装置 | |
CN110225044A (zh) | 在区块链上的验证方法及装置 | |
JP2019536398A (ja) | システムアーキテクチャ及びこの中のデータの処理方法 | |
CN110222538A (zh) | 涉及区块链的验证方法及装置 | |
CN110233722A (zh) | 在区块链上的出块方法及装置 | |
CN109918445A (zh) | 基于区块链的挖矿装置及方法 | |
CN110224839A (zh) | 应用于区块链上的验证方法及装置 | |
CN109818965A (zh) | 个人身份验证装置及方法 | |
CN110223069A (zh) | 基于区块链节点网络的打包方法及装置 | |
CN111262707B (zh) | 数字签名方法及验证方法、设备、存储介质 | |
CN110224813A (zh) | 基于区块链的出块方法及装置 | |
CN110022327B (zh) | 一种短信认证测试方法和装置 | |
CN110247773A (zh) | 在区块链上的打包方法及装置 | |
CN111831669A (zh) | 根据区块链上互联网投票数据的存储方法及其装置 | |
CN110245949A (zh) | 涉及区块链的打包方法及装置 | |
CN110245950A (zh) | 涉及区块链的出块方法及装置 | |
CN110225043A (zh) | 应用于区块链的打包方法及装置 | |
CN110224840A (zh) | 基于区块链的打包方法及装置 | |
CN110060159A (zh) | 基于超级节点的数据处理方法及装置 | |
CN111831670A (zh) | 涉及区块链上互联网评论数据的存储方法及其装置 | |
CN111835815A (zh) | 区块链上互联网自媒体数据的同步存储方法及其装置 | |
CN111831729A (zh) | 涉及区块链上互联网学位证数据的存储方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information |
Address after: 100085 No. 108, 1st Floor, No. 9, Shangdi Jiujie, Haidian District, Beijing Applicant after: Beijing ruice Technology Co.,Ltd. Address before: 100085 No. 108, 1st Floor, No. 9, Shangdi Jiujie, Haidian District, Beijing Applicant before: BEIJING AIMO RUICE TECHNOLOGY Co.,Ltd. |
|
CB02 | Change of applicant information | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |