CN110224813B - 基于区块链的出块方法及装置 - Google Patents

基于区块链的出块方法及装置 Download PDF

Info

Publication number
CN110224813B
CN110224813B CN201910519290.3A CN201910519290A CN110224813B CN 110224813 B CN110224813 B CN 110224813B CN 201910519290 A CN201910519290 A CN 201910519290A CN 110224813 B CN110224813 B CN 110224813B
Authority
CN
China
Prior art keywords
block
nodes
node
hash value
digital signatures
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
Application number
CN201910519290.3A
Other languages
English (en)
Other versions
CN110224813A (zh
Inventor
吉建勋
杨慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Ruice Technology Co Ltd
Original Assignee
Beijing Ruice Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Ruice Technology Co Ltd filed Critical Beijing Ruice Technology Co Ltd
Priority to CN201910519290.3A priority Critical patent/CN110224813B/zh
Publication of CN110224813A publication Critical patent/CN110224813A/zh
Application granted granted Critical
Publication of CN110224813B publication Critical patent/CN110224813B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3825Use of electronic signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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

Abstract

本发明实施例涉及一种基于区块链的出块方法及装置。包括:如果生成的第一区块大于第一阈值,将所述第一区块分为第一子区块和至少一个第二子区块;确定指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名;对所述指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值;根据所述第二哈希值以及预设的第一随机规则,在所述多个出块节点中选择第二出块节点分别作为所述至少一个第二子区块的出块节点。以此,可以出块节点可以指定下一出块节点,该指定过程具有一定的随机性和可验证性,可以降低区块链被攻击成功的可能,并且提高了区块链节点网络的出块效率。

Description

基于区块链的出块方法及装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于区块链的出块方法及装置。
背景技术
区块链网络中的每一个节点,就相当于存储所有区块数据的每一台电脑或者服务器终端。所有新区块的生产,以及交易的验证与记帐,并将其广播给全网同步,都由节点来完成。
节点,就是我们俗称的矿工。每个矿工的不同算力,决定了它能分配到多少记帐权,收获多少奖励。
区块链第一代共识机制叫POW,就是工作量证明共识机制,俗称挖矿。要想生产新的区块,就必须进行成千上万次哈希碰撞的运算。而这些运算,会消耗很多电力,造成能源浪费,因此也倍受垢病。更让大家担心的是,一旦大部分算力被垄断,去中心化就受到威胁。
第二代共识机制叫POS,就是权益证明共识机制,它是根据持币数量与时间来决定谁拥有更多的记帐权。这种共识机制的优点是可以避免能源消耗,但缺点是话语权都被持币大户所掌控,形成中央集权的特征,也与区块链去中心化的初衷背道而驰。
第三代共识机制就是DPOS,其最大的特征,就是在POS权益证明的基础之上,加入了选举制度。经过所有持币用户投票选举诞生的最终获得记帐权的超级节点进行记账,可以极大地降低了能源的浪费,但是,由于运算都集中的超级节点上,对超级节点的算力要求较高,且超级节点的效率直接影响记账的效率,这就导致,该种方式应对大规模数据的能力不强,发展受到制约。
发明内容
基于上述问题,本发明实施例提供了一种基于区块链的出块方法及装置。
第一方面,本发明实施例提供了一种基于区块链的出块方法。所述区块链节点网络包括多个出块节点,所述方法适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述方法包括:
如果生成的第一区块大于第一阈值,将所述第一区块分为第一子区块和至少一个第二子区块,其中,所述第一出块节点作为第一子区块的出块节点;
确定指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名,每个出块节点的第一数字签名通过该出块节点对第一哈希值进行签名得到,所述第一哈希值根据第一区块进行第一哈希运算得到;
对所述指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值;
根据所述第二哈希值以及预设的第一随机规则,在所述多个出块节点中选择第二出块节点分别作为所述至少一个第二子区块的出块节点。
在一些实施例中,所述对所述指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值,包括:
将所述指定数量个出块节点的第一数字签名、所述第一出块节点的第一数字签名和第一数值进行第二哈希运算得到第二哈希值,所述第一数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
在一些实施例中,所述预设的第一随机规则包括:
将所述第二哈希值转换为10进制,并取第二数值的余数,所述第二数值根据所述多个出块节点的数量确定;
确定所述余数对应的验证节点为所述第二出块节点。
在一些实施例中,还包括:
确定第一区块,对所述第一区块进行第一哈希运算得到第一哈希值;
向所述指定数量个出块节点发送所述第一哈希值;
分别接收所述指定数量个出块节点发送的第一数字签名;
对所述第一哈希值进行签名得到第一出块节点的第一数字签名。
在一些实施例中,还包括:
根据预设的第二随机规则,在所述多个出块节点选择指定数量个出块节点。
在一些实施例中,还包括:
接收第三出块节点发送的第三哈希值,所述第三哈希值为对第三区块进行第一哈希运算得到;
根据所述第二随机规则,验证自身是否为需要对所述第三哈希值进行签名的节点;
如果是,则对所述第三哈希值进行签名得到所述第一出块节点的第二数字签名;
向所述第三出块节点发送所述第一出块节点的第二数字签名。
在一些实施例中,所述根据所述第二哈希值以及预设的随机规则,在所述多个出块节点中选择至少一个第二出块节点,分别作为所述至少一个第二子区块的出块节点,包括:
根据所述第二哈希值以及预设的随机规则,在所述多个出块节点中选择至少一个第二出块节点;
根据所述至少一个第二出块节点的序号的大小关系确定先后关系,按照所述先后关系分别作为所述至少一个第二子区块的出块节点。
在一些实施例中,还包括:
接收第四出块节点发送的第三数字签名,所述第三数字签名针对第四区块,所述第二区块分为第三子区块和至少一个第四子区块;
对所述指定数量个出块节点的第三数字签名和所述第四出块节点的第三数字签名进行第二哈希运算,得到第四哈希值;
根据所述第四哈希值以及预设的随机规则,判断所述第一出块节点是否为所述至少一个第四子区块的出块节点;
如果是,对所述至少一个第四子区块中的一个进行打包。
第二方面,提供了一种基于区块链的出块装置,所述区块链节点网络包括多个出块节点,所述装置适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述装置包括:
分块单元,如果生成的第一区块大于第一阈值,用于将所述第一区块分为第一子区块和至少一个第二子区块,其中,所述第一出块节点作为第一子区块的出块节点;
确定单元,用于确定指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名,每个出块节点的第一数字签名通过该出块节点对第一哈希值进行签名得到,所述第一哈希值根据第一区块进行第一哈希运算得到;
哈希单元,用于对所述指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值;
选择单元,根据所述第二哈希值以及预设的第一随机规则,在所述多个出块节点中选择第二出块节点分别作为所述至少一个第二子区块的出块节点
在一些实施例中,所述哈希单元具体用于:
将所述指定数量个出块节点的第一数字签名、所述第一出块节点的第一数字签名和第一数值进行第二哈希运算得到第二哈希值,所述第一数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
在一些实施例中,所述预设的第一随机规则包括:
将所述第二哈希值转换为10进制,并取第二数值的余数,所述第二数值根据所述多个出块节点的数量确定;
确定所述余数对应的验证节点为所述第二出块节点。
在一些实施例中,还包括:
生成单元,用于生成第一区块,对所述第一区块进行第一哈希运算得到第一哈希值;
发送单元,用于向所述指定数量个出块节点发送所述第一哈希值;
接收单元,用于分别接收所述指定数量个出块节点发送的第一数字签名;
签名单元,用于对所述第一哈希值进行签名得到第一出块节点的第一数字签名。
在一些实施例中,还包括:
选择单元,用于根据预设的第二随机规则,在所述多个出块节点选择指定数量个出块节点。
在一些实施例中,还包括:
接收单元,用于接收第三出块节点发送的第三哈希值,所述第三哈希值为对第三区块进行第一哈希运算得到;
验证单元,用于根据所述第二随机规则,验证自身是否为需要对所述第三哈希值进行签名的节点;
签名单元,如果是,用于则对所述第三哈希值进行签名得到所述第一出块节点的第二数字签名;
发送单元,用于向所述第三出块节点发送所述第一出块节点的第二数字签名。
在一些实施例中,选择单元具体用于:
根据所述第二哈希值以及预设的随机规则,在所述多个出块节点中选择至少一个第二出块节点;
根据所述至少一个第二出块节点的序号的大小关系确定先后关系,按照所述先后关系分别作为所述至少一个第二子区块的出块节点。
在一些实施例中,还包括:
发送单元,用于向所述多个出块节点发送所述第一数字签名。
在一些实施例中,还包括:
接收单元,用于接收第四出块节点发送的第三数字签名,所述第二数字签名针对第四区块,所述第二区块分为第三子区块和至少一个第四子区块;
哈希单元,用于对所述指定数量个出块节点的第三数字签名和所述第四出块节点的第三数字签名进行第二哈希运算,得到第四哈希值;
判断单元,用于根据所述第四哈希值以及预设的随机规则,判断所述第一出块节点是否为至少一个第四子区块的出块节点;
打包单元,如果是,用于对所述至少一个第四子区块中的一个进行打包。第三方面,本说明书实施例提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现前述第一方面或第二方面中任意一方面或多方面的方法步骤。
第四方面,提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面或第二方面中任意一方面或多方面所述的方法。
第五方面,提供了一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得计算机执行上述第一方面或第二方面中任意一方面或多方面所述的方法。
通过本发明实施例,出块节点可以指定下一出块节点,该指定过程具有一定的随机性和可验证性,可以降低区块链被攻击成功的可能,并且提高了区块链节点网络的出块效率,进而提高了记账效率,使得区块链节点网络可以应该数据规模更大的服务场景。
附图说明
图1应用本申请提供的实施例的示例性架构;
图2为本发明实施例提供的一种基于区块链的出块方法的流程图;
图3为本发明实施例提供的一种基于区块链的发布信息的装置的结构示意图;
图4示出了本说明书实施例所提供的一种计算机设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种基于区块链的出块方法及装置。图1示出了应用本申请提供的实施例的示例性架构。
如图1所示,该示例性架构可以包括多个区块链节点,该多个区块链节点可以包括多个出块节点101和多个出块节点102。在一个示例中,该出块节点可以为通过选举机制选择的多个超级节点,该超级节点的数量可以根据实际需要确定,该超级节点的数量可以为奇数个,例如21个。在另一个示例中,该多个出块节点可以为备选节点,其中,该超级节点可以为从备选节点中选取,该备选节点的数量也可以根据实际需要确定,例如,可以为100个,其中,备选节点可以根据预设的第一随机规则进行选择,例如,算力最高的指定数量个节点可以作为备选节点。在另一个示例中,验证节点还可以为除出块节点以外的全部或部分节点。其中,区块链节点可以以软件形式实现,也可以以硬件形式实现。当实现为硬件时,其可以是笔记本电脑,台式电脑以及移动终端等等。
出块节点主要用于基于共识机制,将系统中指定时间段内的数据生产区块,也就是主要用于记账。验证节点主要用于基于共识机制,对出块节点产生的区块进行验证,通过验证的区块会被记录在区块链中。节点之间可以进行通信以便同步区块链等数据。例如,节点之间可以基于D2D协议进行通信。
为便于对本发明实施例的理解,下面将结合附图以具体实施例作进一步的解释说明,实施例并不构成对本发明实施例的限定。
图2为本发明提供的一种基于区块链的出块方法的流程图。该区块链节点网络包括多个出块节点,例如图1所示的示例性架构中的区块链节点网络,该方法适用于第一出块节点,该第一出块节点为多个出块节点中的任意一个。如图2所示,该方法具体包括:
S210,如果生成的第一区块大于第一阈值,将所述第一区块分为第一子区块和至少一个第二子区块,其中,所述第一出块节点作为第一子区块的出块节点。
其中,区块链节点网络中的各个节点基于共识机制运行。该共识机制被预先定义,该共识机制可以包括出块共识机制、验证共识机制等等。
区块链节点网络中的出块节点可以根据出块共识机制确定第一出块节点,该第一出块节点可以将系统中指定时间段内的数据生成区块。该指定时间段可以根据实际需要确定,例如可以为1秒、10秒、3分钟或10分钟等等。该系统可以为该区块链节点网络对应的整个区块链系统。其中,区块链是有多个区块构成的,每个区块可以携带有上一个区块的标识已形成链式的存储结构。
当前区块链节点在生成区块需要确定下一个需要生成区块的节点,该当前区块链节点可以称为第一出块节点,该下一个需要生成区块的节点可以称为第二出块节点,该当前区块链节点生成的区块可以称为第一区块,该下一个需要生成区块的节点生成的区块可以称为第二区块。
为了增加节点的出块节点选择的效率、降低系统的负担,在选择下一个出块节点时,可以对第一区块进行第一哈希运算,得到第一哈希值。其中,验证共识机制可以包括预定义的第一哈希运算,该第一哈希运算可以根据实际需要确定,例如,第一哈希运算可以为SHA-256等。
第一出块节点在确定第一区块后,如果确定第一区块大于第一阈值,则确定该第一区块过大,会影响出块效率,则可以将该第一区块划分为多个子区块,由不同的出块节点对该子区块进行打包,以提升打包效率。
其中,第一阈值可以根据实际需要确定。
对于子区块的划分规则,可以根据实际需要确定,例如,可以确定区块的数据小于第一阈值的最大时间间隔,则根据该最大时间间隔划分子区块。例如,最大时间间隔可以为1分钟,一个区块为3分钟,那么,可以分为三个1分钟的子区块。
S220,确定指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名,每个出块节点的第一数字签名通过该出块节点对第一哈希值进行签名得到,所述第一哈希值根据第一区块进行第一哈希运算得到。
第一出块节点和指定数量个出块节点的第一数字签名的确定方式可以包括多种。
例如,第一出块节点的第一数字签名可以通过如下步骤确定:
A:生成第一区块,对该第一区块进行第一哈希运算得到第一哈希值。
B:对第一哈希值进行签名得到第一出块节点的第一数字签名。
指定数量个出块节点的第一数字签名可以通过如下步骤确定:
a:向指定数量个出块节点发送第一哈希值;
b:分别接收指定数量个出块节点发送的第一数字签名。
其中,每个区块链节点可以包括至少一个秘钥对,每个秘钥对包括一个公钥和一个私钥,该私钥存储在本地,该公钥可以发送给其他区块链节点。
出块节点在确定第一哈希值后,可以对该哈希值进行签名,得到该出块节点的第一数字签名。该第一数字签名可以使用该出块节点的私钥进行签名,使用该私钥对应的公钥可以验证该第一数字签名。
S230,对指定数量个出块节点的第一数字签名和第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值。
在确定出块节点时,可以对指定数量个出块节点的第一数字签名和第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值。其中,出块共识机制可以包括预定义的第二哈希运算,该第二哈希运算可以根据实际需要确定,例如,第二哈希运算可以为SHA-256等。其中,第一哈希运算与第二哈希运算可以为相同的哈希运算可以为不同的哈希运算。
S240,根据所述第二哈希值以及预设的第一随机规则,在所述多个出块节点中选择第二出块节点分别作为所述至少一个第二子区块的出块节点。
在一些实施例中,可以根据至少一个第二出块节点的序号的大小关系确定先后关系,按照先后关系分别作为至少一个第二子区块的出块节点。例如,各个出块子节点是按照时间划分的,可以根据出块子节点的时间先后关系,以及第二出块节点的先后关系进行匹配,确定各个出块子节点的第二出块节点。
在确定出块节点时,可以根据第二哈希值进行选择。其中,出块共识机制可以包括选择依据的预设的第一随机规则,该预设的第一随机规则具有一定的随机性和可验证性。
在一个示例中,该预设的第一随机规则可以包括:
将第二哈希值转换为10进制,并取第二数值的余数;
确定该余数对应的出块节点为第二出块节点。
其中,该第二数值可以根据出块节点的数量确定。例如,出块节点的数量可以为100,该第二数值可以为100。
第一出块节点可以将第一数字签名发送至第二出块节点,以便第二出块节点继续出块。例如,可以通过广播的方式,向多个出块节点发送第一数字签名。
还可以向第二出块节点发送第一区块和第一出块节点的公钥。其中,发送该公钥的形式可以包括多种。在一个示例中,可以根据该公钥生成该第一出块节点的地址,该地址可以作为第一出块节点的交易的转出或转入地址,该第二出块节点可以根据该第一出块节点的地址确定该第一出块节点的公钥。在另一个示例中,该公钥可以携带在第一区块中进行发送。
第二出块节点在接收到第一区块后,首先可以验证第一出块节点的身份,该第一出块节点的身份可以通过第一出块节点的公钥对第一出块节点的第一数字签名进行验证实现。在验证通过后,第二出块节点可以对自身的验证身份进行验证,该验证验证过程可以基于预设的随机规则进行验证,以验证第二区块的出块节点是否包括其自身。在上述两个验证过程都通过后,第二出块节点再对第二区块进行打包,并将打包的第二区块进行全网同步。
在一些实施例中,上述步骤S230具体可以通过如下步骤实现:
将所述第一数字签名和第一数值进行第二哈希运算得到第二哈希值。
其中,第一数值为1-n等预定义的固定值,该n为任意值。
该第一数值还可以为第一出块节点的序列号,或者根据第一出块节点的序列号确定的数值。通过该第一数值,可以进一步实现出块节点选择的随机性。
在一些实施例中,还可以包括如下步骤:根据预设的第二随机规则,在多个出块节点选择指定数量个出块节点。
验证共识机制可以包括选择依据的预设的第二随机规则,该预设的第二随机规则具有一定的随机性和可验证性。
在一个示例中,该预设的第二随机规则可以包括:
将第一哈希值转换为10进制,并取第三数值的余数;
确定序列号小于该余数的出块节点为指定数量的出块节点。
其中,该第三数值可以根据出块节点的数量确定。例如,出块节点的数量可以为21,该第三数值可以为21。
通过本发明实施例,指定数量个出块节点也是可以随机选择的,以此进一步确保随机性和可验证性。
基于上述实施例,在一些实施例中,该方法还可以包括如下步骤:
1)接收第三出块节点发送的第三哈希值,该第三哈希值为对第三区块进行第一哈希运算得到;该第三区块可以为第二出块节点新生成的区块。
2)根据该第二随机规则,验证自身是否为需要对所述第三哈希值进行签名的节点;
3)如果是,则对所述第三哈希值进行签名得到所述第一出块节点的第二数字签名;
4)向所述第三出块节点发送所述第一出块节点的第二数字签名。
5)如果不是,则丢弃所述第三哈希值。
在一些实施例中,还可以包括如下步骤:
1)接收第四出块节点发送的第三数字签名,所述第三数字签名针对第四区块,所述第二区块分为第三子区块和至少一个第四子区块;
2)对所述指定数量个出块节点的第三数字签名和所述第四出块节点的第三数字签名进行第二哈希运算,得到第四哈希值;
3)根据所述第四哈希值以及预设的随机规则,判断所述第一出块节点是否为所述至少一个第四子区块的出块节点;
4)如果是,对所述至少一个第四子区块中的一个进行打包。
5)如果不是,则结束。
在步骤1)中,可以接收第四出块节点发送的第四区块、公钥和第三数字签名。
其中,第四区块可以为第四出块节点新生成的区块。该第三数字签名可以根据该第四区块确定。具体可以参见前述第一数字签名的获取过程,此处不再赘述。
第一出块节点还可以确定第四出块节点的公钥,该公钥可以根据该第四出块节点的地址确定,也可以获取携带在带第四区块中的公钥。
在步骤3)中,可以根据第四哈希值以及预设的随机规则,确定至少一个第四子区块的出块节点的序号;判断至少一个第四子区块的出块节点的序号是否包括第一出块节点的序号。
在一些实施例中,上述方法还包括:
1)根据预设的第二随机规则,验证指定数量个出块节点是否正确;
在验证指定数量个出块节点是否正确时,可以获取根据第二随机规则确定的多个出块节点的公钥,并使用各个公钥对指定数量个出块节点的第一数字签名进行验证。
2)如果正确,则根据所述第二哈希值以及预设的第一随机规则,确定第二出块节点的序号。
3)如果不正确,则结束流程。
通过本发明实施例,可以出块节点可以指定下一出块节点,该指定过程具有一定的随机性和可验证性,可以降低区块链被攻击成功的可能,并且提高了区块链节点网络的出块效率,进而提高了记账效率,使得区块链节点网络可以应该数据规模更大的服务场景。
图3为本发明实施例提供的一种基于区块链的出块装置结构示意图。该区块链节点网络包括多个出块节点,例如图1所示的示例性架构中的区块链节点网络,所述装置适用于当前出块节点,所述当前出块节点为所述多个出块节点中的任意一个,所述装置包括:
分块单元301,如果生成的第一区块大于第一阈值,用于将所述第一区块分为第一子区块和至少一个第二子区块,其中,所述第一出块节点作为第一子区块的出块节点;
确定单元302,用于确定指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名,每个出块节点的第一数字签名通过该出块节点对第一哈希值进行签名得到,所述第一哈希值根据第一区块进行第一哈希运算得到;
哈希单元303,用于对所述指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值;
选择单元304,根据所述第二哈希值以及预设的第一随机规则,在所述多个出块节点中选择第二出块节点分别作为所述至少一个第二子区块的出块节点
在一些实施例中,所述哈希单元具体用于:
将所述指定数量个出块节点的第一数字签名、所述第一出块节点的第一数字签名和第一数值进行第二哈希运算得到第二哈希值,所述第一数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
在一些实施例中,所述预设的第一随机规则包括:
将所述第二哈希值转换为10进制,并取第二数值的余数,所述第二数值根据所述多个出块节点的数量确定;
确定所述余数对应的验证节点为所述第二出块节点。
在一些实施例中,还包括:
生成单元,用于生成第一区块,对所述第一区块进行第一哈希运算得到第一哈希值;
发送单元,用于向所述指定数量个出块节点发送所述第一哈希值;
接收单元,用于分别接收所述指定数量个出块节点发送的第一数字签名;
签名单元,用于对所述第一哈希值进行签名得到第一出块节点的第一数字签名。
在一些实施例中,还包括:
选择单元,用于根据预设的第二随机规则,在所述多个出块节点选择指定数量个出块节点。
在一些实施例中,还包括:
接收单元,用于接收第三出块节点发送的第三哈希值,所述第三哈希值为对第三区块进行第一哈希运算得到;
验证单元,用于根据所述第二随机规则,验证自身是否为需要对所述第三哈希值进行签名的节点;
签名单元,如果是,用于则对所述第三哈希值进行签名得到所述第一出块节点的第二数字签名;
发送单元,用于向所述第三出块节点发送所述第一出块节点的第二数字签名。
在一些实施例中,选择单元具体用于:
根据所述第二哈希值以及预设的随机规则,在所述多个出块节点中选择至少一个第二出块节点;
根据所述至少一个第二出块节点的序号的大小关系确定先后关系,按照所述先后关系分别作为所述至少一个第二子区块的出块节点。
在一些实施例中,还包括:
发送单元,用于向所述多个出块节点发送所述第一数字签名。
在一些实施例中,还包括:
接收单元,用于接收第四出块节点发送的第三数字签名,所述第二数字签名针对第四区块,所述第二区块分为第三子区块和至少一个第四子区块;
哈希单元,用于对所述指定数量个出块节点的第三数字签名和所述第四出块节点的第三数字签名进行第二哈希运算,得到第四哈希值;
判断单元,用于根据所述第四哈希值以及预设的随机规则,判断所述第一出块节点是否为至少一个第四子区块的出块节点;
打包单元,如果是,用于对所述至少一个第四子区块中的一个进行打包。。
可以理解,本实施例的基于区块链的出块装置与图2所示的方法实施例相对应,因此,以上关于图2所示的方法实施例的描述同样适用于本实施例的装置,在此不再赘述。
图4示出了本说明书实施例所提供的一种计算机设备结构示意图,该计算机设备可以包括:处理器410、存储器420、输入/输出接口430、通信接口440和总线450。其中处理器440、存储器420、输入/输出接口430和通信接口440通过总线450实现彼此之间在设备内部的通信连接。
处理器410可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器420可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器420可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器420中,并由处理器410来调用执行。
输入/输出接口430用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口440用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线450包括一通路,在设备的各个组件(例如处理器410、存储器420、输入/输出接口430和通信接口440)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器410、存储器420、输入/输出接口430、通信接口440以及总线450,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的范围之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于区块链的出块方法,其特征在于,区块链节点网络包括多个出块节点,所述方法适用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述方法包括:
如果生成的第一区块大于第一阈值,将所述第一区块分为第一子区块和至少一个第二子区块,其中,所述第一出块节点作为第一子区块的出块节点;
确定指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名,每个出块节点的第一数字签名通过该出块节点对第一哈希值进行签名得到,所述第一哈希值根据第一区块进行第一哈希运算得到;
对所述指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值;
根据所述第二哈希值以及预设的第一随机规则,在所述多个出块节点中选择第二出块节点分别作为所述至少一个第二子区块的出块节点;
所述预设的第一随机规则包括:
将所述第二哈希值转换为10进制,并取第二数值的余数,所述第二数值根据所述多个出块节点的数量确定;
确定所述余数对应的验证节点为所述第二出块节点;
所述对所述指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值,包括:
将所述指定数量个出块节点的第一数字签名、所述第一出块节点的第一数字签名和第一数值进行第二哈希运算得到第二哈希值,所述第一数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
2.根据权利要求1所述的方法,其特征在于,还包括:
确定第一区块,对所述第一区块进行第一哈希运算得到第一哈希值;
向所述指定数量个出块节点发送所述第一哈希值;
分别接收所述指定数量个出块节点发送的第一数字签名;
对所述第一哈希值进行签名得到第一出块节点的第一数字签名。
3.根据权利要求2所述的方法,其特征在于,还包括:
根据预设的第二随机规则,在所述多个出块节点选择指定数量个出块节点;其中,所述预设的第二随机规则包括将第一哈希值转换为10进制,并取第三数值的余数;确定序列号小于该余数的出块节点为指定数量的出块节点;所述第三数值根据出块节点的数量确定。
4.根据权利要求3所述的方法,其特征在于,还包括:
接收第三出块节点发送的第三哈希值,所述第三哈希值为对第三区块进行第一哈希运算得到;
根据所述第二随机规则,验证自身是否为需要对所述第三哈希值进行签名的节点;
如果是,则对所述第三哈希值进行签名得到所述第一出块节点的第二数字签名;
向所述第三出块节点发送所述第一出块节点的第二数字签名。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第二哈希值以及预设的第一随机规则,在所述多个出块节点中选择至少一个第二出块节点,分别作为所述至少一个第二子区块的出块节点,包括:
根据所述第二哈希值以及预设的第一随机规则,在所述多个出块节点中选择至少一个第二出块节点;
根据所述至少一个第二出块节点的序号的大小关系确定先后关系,按照所述先后关系分别作为所述至少一个第二子区块的出块节点。
6.根据权利要求1所述的方法,其特征在于,还包括:
接收第四出块节点发送的第三数字签名,所述第三数字签名根据第四区块确定,所述第四区块分为第三子区块和至少一个第四子区块;
对所述指定数量个出块节点的第三数字签名和所述第四出块节点的第三数字签名进行第二哈希运算,得到第四哈希值;
根据所述第四哈希值以及预设的第一随机规则,判断所述第一出块节点是否为所述至少一个第四子区块的出块节点;
如果是,对所述至少一个第四子区块中的一个进行打包。
7.一种基于区块链的出块装置,其特征在于,所述区块链节点网络包括多个出块节点,所述装置用于第一出块节点,所述第一出块节点为所述多个出块节点中的任意一个,所述装置包括:
分块单元,如果生成的第一区块大于第一阈值,用于将所述第一区块分为第一子区块和至少一个第二子区块,其中,所述第一出块节点作为第一子区块的出块节点;
确定单元,用于确定指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名,每个出块节点的第一数字签名通过该出块节点对第一哈希值进行签名得到,所述第一哈希值根据第一区块进行第一哈希运算得到;
哈希单元,用于对所述指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值;
选择单元,根据所述第二哈希值以及预设的第一随机规则,在所述多个出块节点中选择第二出块节点分别作为所述至少一个第二子区块的出块节点;
所述预设的第一随机规则包括:
将所述第二哈希值转换为10进制,并取第二数值的余数,所述第二数值根据所述多个出块节点的数量确定;
确定所述余数对应的验证节点为所述第二出块节点;
所述对所述指定数量个出块节点的第一数字签名和所述第一出块节点的第一数字签名进行第二哈希运算,得到第二哈希值,包括:
将所述指定数量个出块节点的第一数字签名、所述第一出块节点的第一数字签名和第一数值进行第二哈希运算得到第二哈希值,所述第一数值为1-n或者所述第一出块节点的序列号,所述n为任意值。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使所述处理器实现权利要求1至6任一项所述的方法。
CN201910519290.3A 2019-06-17 2019-06-17 基于区块链的出块方法及装置 Active CN110224813B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910519290.3A CN110224813B (zh) 2019-06-17 2019-06-17 基于区块链的出块方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910519290.3A CN110224813B (zh) 2019-06-17 2019-06-17 基于区块链的出块方法及装置

Publications (2)

Publication Number Publication Date
CN110224813A CN110224813A (zh) 2019-09-10
CN110224813B true CN110224813B (zh) 2021-02-09

Family

ID=67817184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910519290.3A Active CN110224813B (zh) 2019-06-17 2019-06-17 基于区块链的出块方法及装置

Country Status (1)

Country Link
CN (1) CN110224813B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112258326B (zh) * 2020-12-24 2021-03-16 布比(北京)网络技术有限公司 一种随机出块方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10587628B2 (en) * 2016-09-29 2020-03-10 Microsoft Technology Licensing, Llc Verifiable outsourced ledgers
GB201707168D0 (en) * 2017-05-05 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
CN110959281B (zh) * 2017-08-05 2022-03-22 普罗克鲁斯科技有限公司 使用交易证明使得区块链安全化的方法和系统
CN108429759B (zh) * 2018-03-28 2020-06-30 电子科技大学成都研究院 去中心化存储安全实现方法
CN108596621B (zh) * 2018-04-28 2020-10-27 三亚京牛数字科技有限公司 区块链记账节点生成方法、装置、计算机设备及存储介质
CN108964879B (zh) * 2018-07-20 2021-04-13 杭州复杂美科技有限公司 一种抽签方法、共识方法、设备和存储介质
CN109743173B (zh) * 2018-12-20 2021-07-20 弗洛格(武汉)信息科技有限公司 区块链中出块节点确定方法、区块验证方法及区块链系统
CN109859047A (zh) * 2019-01-31 2019-06-07 北京瑞卓喜投科技发展有限公司 一种区块链更新方法和区块链更新系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Bitcoin-NG:A Scalable Blockchain Protocol;Ittay Eyal etal;《Open access to the Proceedings of the 13th USENIX Symposium on Network Systems Design and Implement》;20160318;第2-8节 *
Thunderella:Blockchains with Optimistic Instant Confirmation;Elaine Shi;《Annual International Conference on the Theory and Applications of Cryptographic Techniques》;20180331;第2-5章 *
区块链吞吐率提升研究;潘业达;《通信技术》;20190131;第52卷(第1期);第2-5节 *

Also Published As

Publication number Publication date
CN110224813A (zh) 2019-09-10

Similar Documents

Publication Publication Date Title
CN110247753B (zh) 基于区块链节点网络的出块方法及装置
CN110222537B (zh) 应用于区块链节点的验证方法及装置
CN110223070B (zh) 基于区块链节点网络的验证方法及装置
CN110210865A (zh) 基于区块链的打包方法及装置
CN110233722B (zh) 在区块链上的出块方法及装置
CN110222538B (zh) 涉及区块链的验证方法及装置
CN110225044B (zh) 在区块链上的验证方法及装置
CN110224813B (zh) 基于区块链的出块方法及装置
CN110224839B (zh) 应用于区块链上的验证方法及装置
CN111831669A (zh) 根据区块链上互联网投票数据的存储方法及其装置
CN110247773B (zh) 在区块链上的打包方法及装置
CN111078715A (zh) 区块链上互联网广告数据的同步存储方法及其装置
CN110225043B (zh) 应用于区块链的打包方法及装置
CN110245950B (zh) 涉及区块链的出块方法及装置
CN110224840B (zh) 基于区块链的打包方法及装置
CN110245949B (zh) 涉及区块链的打包方法及装置
CN110223069A (zh) 基于区块链节点网络的打包方法及装置
CN111831670A (zh) 涉及区块链上互联网评论数据的存储方法及其装置
CN110990418A (zh) 一种基于区块链用户数据的异步处理方法及其装置
CN111046048A (zh) 在区块链上进行互联网营业执照数据的存储方法及其装置
CN111078795A (zh) 根据区块链上互联网社交数据的存储方法及其装置
CN111833053A (zh) 在区块链上知识付费数据的存储方法及其装置
CN111831651A (zh) 在区块链上互联网共享经济数据的存储方法及其装置
CN111831724A (zh) 在区块链上互联网搜索数据的同步存储方法及其装置
CN111831723A (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
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
GR01 Patent grant
GR01 Patent grant