CN112261145A - 一种新区块链生成方法及装置 - Google Patents
一种新区块链生成方法及装置 Download PDFInfo
- Publication number
- CN112261145A CN112261145A CN202011151939.XA CN202011151939A CN112261145A CN 112261145 A CN112261145 A CN 112261145A CN 202011151939 A CN202011151939 A CN 202011151939A CN 112261145 A CN112261145 A CN 112261145A
- Authority
- CN
- China
- Prior art keywords
- signature
- block
- message
- signature message
- node
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/30—Decision processes by autonomous network management units using voting and bidding
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种新区块的生成方法及装置。该方法包括:生成备选区块并以广播消息的方式在区块链广播;接收其它节点广播的第二签名消息;针对当前节点提出的备选区块返回的所述第二签名消息的比例值达到预设阈值时,将接收到的所有的所述第二签名消息汇总为第一数据包;基于所述第一数据和时间戳,获得第二数据包;利用所述当前节点的私钥对第二数据包进行所述签名,获得第三签名消息,并将所述第三签名消息发送至区块链中;基于其它节点返回的所述第三签名消息、所述第二签名消息以及预设时间段,确定所述当前节点提出的所述备选区块是否为新生成的区块。该方法不需要计算随机数的生成进行挖矿,提升了现有的联盟链中区块生成的效率。
Description
技术领域
本发明涉及区块链技术领域,具体涉及一种新区块链生成方法及装置。
背景技术
共识机制是区块链的核心,决定了区块链的实现形式、信任方式和规则,也决定了区块链的应用场景。在区块链账本中每个携带信息的新区块的增加,都要基于一定的共识机制和算法,但不同的共识机制都有其各自的优缺点。
随着区块链中账本数据的增加和业务量的提升,不仅需要改进共识机制,而且区块链的可扩展性也成为研究热点。由于当前的共识算法比较复杂,在有限的联盟链中,例如,在多个组织组成的联盟链中,矿工的数量往往比公有链的数量少,挖矿效率相对的较低,导致新区块链生成的效率较低。
发明内容
为此,本发明提供一种新区块链生成方法,以解决现有技术中由于共识机制效率较低而导致的新区块链生成的效率低的问题。
为了实现上述目的,本发明第一方面提供一种新区块的生成方法,其包括:
生成备选区块并以广播消息的方式在区块链广播;
接收其它节点广播的第二签名消息;其中,所述第二签名消息是投票节点利用自己的私钥对其它节点提出的备选区块进行二次签名后生成的消息;
针对当前节点提出的备选区块返回的所述第二签名消息的比例值达到预设阈值时,将接收到的所有的所述第二签名消息汇总为第一数据包;
基于所述第一数据和时间戳,获得第二数据包;
利用所述当前节点的私钥对第二数据包进行所述签名,获得第三签名消息,并将所述第三签名消息发送至区块链中;
基于其它节点返回的所述第三签名消息、所述第二签名消息以及预设时间段,确定所述当前节点提出的所述备选区块是否为新生成的区块。
其中,所述生成备选区块并以广播消息的方式在区块链广播,包括;
生成备选区块;
利用当前节点的私钥对所述备选区块进行签名,获得第一签名消息;
使用广播消息的方式在所述区块链中广播所述第一签名消息。
其中,所述生成备选区块并使用广播消息的方式在区块链广播之后,还包括:
接收所述区块链中其它节点广播的所述第一签名消息;其中,所述备选区块中包含有交易信息;
对所述交易信息进行验证;
利用所述当前节点的私钥对通过验证的所述第一签名消息进行二次签名,获得所述第二签名消息。
其中,所述针对当前节点提出的备选区块返回的所述第二签名消息的比例值达到预设阈值时,将接收到的所有的所述第二签名消息汇总为第一数据包,包括:
统计针对当前节点提出的备选区块返回的所述第二签名消息的数量,获得第一数量;
基于所述第一数量和所述区块链中所有节点的数量获得比例值;
在所述比例值达到第一预设阈值时,将接收到的所有的所述第二签名消息汇总为投票数据包。
其中,所述针对当前节点提出的备选区块返回的所述第二签名消息的比例值达到预设阈值时,将接收到的所有的所述第二签名消息汇总为第一数据包,包括:
统计具有投票权限的投票节点返回的针对当前节点提出的备选区块的所述第二签名消息的数量,获得投票数量;
基于所述投票数量和所述投票节点对应的权重获得权重比例值;
在所述权重比例值达到第二预设阈值时,将接收到的所有的所述第二签名消息汇总为投票数据包。
其中,所述权重为所述投票节点根据在区块联盟链中所占的股份而预先约定的投票权重比。
其中,所述基于所述第一数据和时间戳,获得第二数据包,包括;
通过时间戳服务器对所述第一数据包添加时间戳,获得第二数据包。
其中,利用所述时间戳服务器的私钥对所述时间戳进行签名。
其中,所述基于其它节点返回的所述第三签名消息、所述第二签名消息以及预设时间段,确定所述当前节点提出的所述备选区块是否成功生成,包括:
对所述其它节点返回的所述第三签名消息和所述第二签名消息进行比对,获得比对结果;
在所述比对结果为一致时,开始计时;
在等待时间达到所述预设时间段时,满足预设条件则确定所述当前节点提出的所述备选区块成功生成。
本发明第二方面提供一种新区块的生成装置,其包括:
第一生成模块,用于生成备选区块;
发送模块,用于以广播消息的方式在区块链广播所述备选区块;
接收模块,用于接收其它节点广播的第二签名消息;其中,所述第二签名消息是投票节点利用自己的私钥对其它节点提出的备选区块进行二次签名后生成的消息;
汇总模块,用于针对当前节点提出的备选区块返回的所述第二签名消息的比例值达到预设阈值时,将接收到的所有的所述第二签名消息汇总为第一数据包;
第二生成模块,用于基于所述第一数据和时间戳,获得第二数据包;
签名模块,用于利用所述当前节点的私钥对第二数据包进行所述签名,获得第三签名消息,并将所述第三签名消息发送至区块链中;
所述发送模块,还用于将所述第三签名消息发送至区块链中;
确定模块,用于基于其它节点返回的所述第三签名消息、所述第二签名消息以及预设时间段,确定所述当前节点提出的所述备选区块是否为新生成的区块。
本发明具有如下优点:
本发明提供的新区块的生成方法,生成备选区块并以广播消息的方式在区块链广播;接收其它节点广播的第二签名消息;其中,所述第二签名消息是所述投票节点利用自己的私钥对其它节点提出的备选区块进行二次签名后生成的消息;在针对返回当前节点提出的备选区块返回的所述第二签名消息的比例值达到预设阈值时,将接收到的所有的所述第二签名消息汇总为第一数据包;基于所述第一数据和时间戳,获得第二数据包;利用所述当前节点的私钥对第二数据包进行所述签名,获得第三签名消息,并将所述第三签名消息发送至区块链中;基于其它节点返回的所述第三签名消息、所述第二签名消息以及预设时间段,确定所述当前节点提出的所述备选区块是否为新生成的区块,该新区块的生成方法是以第二签名消息的比例值和时间的共识机制确定新区块,不需要计算随机数的生成进行挖矿,提升了现有的联盟链中区块生成的效率,而且,针对联盟链的特点,考虑到了不同的联盟链参与方的股份和权重,推动区块链的发展。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。
图1为本发明实施例提供的一种新区块的生成方法的流程图;
图2为本发明实施例提供的另一种新区块的生成方法的流程图;
图3为本发明实施例提供的新区块的生成方法中步骤203的具体流程图;
图4为本发明实施例提供的新区块的生成方法中步骤204的具体流程图;
图5为本发明提供的一种新区块的生成装置的原理框图;
图6为本发明提供的一种新区块的生成装置中汇总模块的原理框图;
图7为本发明提供的一种新区块的生成装置中确定模块的原理框图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
如本公开所使用的,术语“和/或”包括一个或多个相关列举条目的任何和全部组合。
本公开所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本公开所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。
当本公开中使用术语“包括”和/或“由……制成”时,指定存在特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。
本公开实施例可借助本公开的理想示意图而参考平面图和/或截面图进行描述。因此,可根据制造技术和/或容限来修改示例图示。
除非另外限定,否则本公开所用的全部术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本公开明确如此限定。
图1为本发明实施例提供的一种新区块的生成方法的流程图。在本实施例中,联盟链中的每个参与组织可以指定由哪些节点作为本联盟链的记账节点。投票节点具有投票权,当投票节点使用自己的私钥对备选区块进行签名,则表示对该备选区块认可。在联盟链中,根据在组织中所占的股份,可以约定投票节点的个数和对应的各节点的投票权重比。对于一般交易节点,只能进行正常的交易,不具备投票权和记账权。另外,每个组织可以有任意多个交易节点参与。
如图1所示,本实施例提供的新区块的生成方法包括:
步骤101,生成备选区块并以广播消息的方式在区块链广播。
在一些实施例中,在联盟链中,组织内的任何节点均可以生成新的备选区块,在备选区块中包含有交易信息。备选区块可以采用现有的方式生成,本实施例对此不作限定。
当节点生成备选区块后,利用该节点的私钥进行签名,然后以广播消息的方式在区块链广播。在联盟链中的其他节点可以获得该备选区块。
例如,若联盟链内由n个节点,当当前节点A1生成新的备选区块后,利用当前节点A1的私钥对该备选区块签名,获得第一签名消息BA1,然后以广播方式在区块链中广播。联盟链中的其他节点A2、A3……An可以从区块链中获得第一签名消息BA1。
需要说明的是,组织内的每个节点都可以生成备选区块,并利用自己的私钥签名后在区块链中广播。因此,组织内的每个节点均能从区块链中获得n-1个第一签名消息。
在一些实施例中,每个第一签名消息均包括对应节点的标识和交易信息。
步骤102,接收其它节点广播的第二签名消息。
在区块链中,当任何节点均可以生成备选区块,并利用自己的私钥对备选区块进行一次签名,获得第一签名消息;然后将第一签名消息以广播消息方式在区块链中广播。
在一些实施例中,任何一个节点都可以从区块链中获得其它节点发送在区块链中的第一签名消息,并从第一签名消息中获得对应的备选区块。
在另一些实施例中,只有具有投票权利的节点从区块链中获得其它节点发送在区块链中的第一签名消息,并从第一签名消息中获得对应的备选区块。
在一些实施例中,当前节点从区块链中接收其它节点广播的第一签名消息后,利用自己的私钥对区块链中其它节点提出的备选区块进行二次签名,获得第二签名消息。在第二签名消息可以包含节点的标识。
需要说明的是,当某个节点利用自己的私钥对其它节点提出的备选区块进行二次签名时,表明该节点对该备选区块认可。换言之,虽然当前节点可以对区块链中除自己之外的其它节点提出的备选区块进行二次签名,但实际上,当前节点仅对自己认可的备选节点进行二次签名,然后将签名后的备选节点以广播消息的方式广播到区块链中。
在一些实施例中,节点通过交易信息判断是否认可备选区块。当前节点收到其他节点广播的第一签名消息后,从第一签名消息中获得交易信息,然后对交易信息进行也验证,若验证通过,则表明认可第一签名消息对应的备选区块,然后利用自己的私钥对备选区块进行二次签名,获得第二签名消息。
例如,当节点A2收到节点A1在区块链中广播的第一签名消息后,从第一签名消息中获得备选区块,从备选区块中获得交易信息,并对交易信息进行验证,如果验证通过,则表示对节点A1提出的备选区块表示认可,然后节点A2用自己私钥对备选区块进行签名,获得第二签名消息。
步骤103,针对当前节点提出的备选区块返回的第二签名消息的比例值达到预设阈值时,将接收到的所有的第二签名消息汇总为第一数据包。
在一些实施例中,每个节点都会收到其它节点返回的针对自己提出的备选区块的第二签名消息,也会收到其它节点返回的针对别的节点提出的备选区块的第二签名信息,即每个节点会接收到多种第二签名消息,既包括针对自己提出的备选区块,也包括针对其它节点提出的备选区块。每个节点将收到的第二签名消息全部存储,并对接收到的第二签名消息的数量进行统计,当第二签名的数量的比例值达到预设阈值时,将接收到的所有的第二签名消息汇总为第一数据包。其中,比例值是指当前节点收到的针对自己提出的备选区块返回的第二签名的数量与参与投票的节点的数量的比值。
在一些实施例中,区块链中各个节点按照时间和比例值来确定是否生成第一数据包,即,最先收集到针对自己提出的备选区块的第二签名消息的比例值达到预设阈值,则将接收到的所有的第二签名消息汇总为第一数据包。
具体地,统计针对当前节点提出的备选区块返回的第二签名消息的数量,获得第一数量;基于第一数量和区块链中所有节点的数量获得比例值;在比例值达到第一预设阈值时,将接收到的所有的第二签名消息汇总为投票数据包。
例如,假设预设阈值为50%,统计针对当前节点提出的备选区块返回的第二签名消息的数量,获得第一数量;计算第一数量和区块链中所有节点的数量获得比例值;若第一的数量与区块链中参与投票的节点的数量比例值达到50%时,而且,当前节点相对于其他节点最先收集到50%的比例值时,对第二签名消息进行汇总,获得第一数据包。
步骤104,基于第一数据和时间戳,获得第二数据包。
在一些实施例中,当前节点给第一数据包打上时间戳,获得第二数据包。其中,该时间戳是整个区块链公认的时间戳。
在一些实施例中,时间戳是由时间戳服务器提供。具体地,当前节点将第一数据包发送至时间戳服务器,由时间戳服务器给第一数据包打上时间戳,时间戳服务器再将打上时间戳的第一数据包返回给当前节点。在一些实施例中,时间戳服务器用自己的私钥对时间戳进行签名,然后将签名后的时间戳和第一数据包发送给当前节点,当前节点基于第一数据和时间戳,获得第二数据包。
需要说明的是,这里的当前节点是指首先收集到对自己提出的备选区块进行二次签名的第二签名消息的比例值达到预设阈值的节点。区块链中的任何满足该条件的节点可被认为是当前节点。
步骤105,利用当前节点的私钥对第二数据包进行签名,获得第三签名消息,并将第三签名消息发送至区块链中。
在一些实施例中,当前节点收到时间戳服务器返回的时间戳和第二签名消息后,利用自己的私钥对包含有时间戳的第一数据包进行签名,获得第三签名消息,后以广播消息的方式发将第三签名消息送至区块链。
步骤106,基于其它节点返回的第三签名消息、第二签名消息以及预设时间段,确定当前节点提出的备选区块是否为新生成的区块。
在一些实施例中,其它节点收到当前节点发送的第三签名消息后,首先与自己存储的第二签名消息进行比对,如果比对结果是一致,则确定当前节点提出的备选区块是新生成的区块。
在一些实施例中,对其它节点返回的第三签名消息和第二签名消息进行比对,获得比对结果;在比对结果为一致时,开始计时;在等待时间达到预设时间段时,满足预设条件则确定当前节点提出的备选区块成功生成。
其中,预设条件为没有收到其他节点生成的备选区块,或者,其他节点的备选区块所对应的时间戳比当前节点的备选区块所对应的时间戳晚。
例如,当比对结果为一致时,节点启动自己内部的定时器,如果在一个阈值T时间段内没有收到其他节点提出的备选区块,或者其他节点提出的备选区块的时间戳较晚,则认为本备选区块生成成功。
如图2所示,本实施例提供的新区块的生成方法包括:
步骤201,生成备选区块并以广播消息的方式在区块链广播。
在一些实施例中,在联盟链中,组织内的任何节点均可以生成新的备选区块,在备选区块中包含有交易信息。备选区块可以采用现有的方式生成,本实施例对此不作限定。
当节点生成备选区块后,利用该节点的私钥进行签名,然后以广播消息的方式在区块链广播。在联盟链中的其他节点可以获得该备选区块。
例如,若联盟链内由n个节点,当当前节点A1生成新的备选区块后,利用当前节点A1的私钥对该备选区块签名,获得第一签名消息BA1,然后以广播方式在区块链中广播。联盟链中的其他节点A2、A3……An可以从区块链中获得第一签名消息BA1。
需要说明的是,组织内的每个节点都可以生成备选区块,并利用自己的私钥签名后在区块链中广播。因此,组织内的每个节点均能从区块链中获得n-1个第一签名消息。
在一些实施例中,每个第一签名消息均包括对应节点的标识和交易信息。
步骤202,接收其它节点广播的第二签名消息。
在区块链中,当任何节点均可以生成备选区块,并利用自己的私钥对备选区块进行一次签名,获得第一签名消息;然后将第一签名消息以广播消息方式在区块链中广播。
在一些实施例中,任何一个节点都可以从区块链中获得其它节点发送在区块链中的第一签名消息,并从第一签名消息中获得对应的备选区块。
在另一些实施例中,只有具有投票权利的节点从区块链中获得其它节点发送在区块链中的第一签名消息,并从第一签名消息中获得对应的备选区块。
在一些实施例中,当前节点从区块链中接收其它节点广播的第一签名消息后,利用自己的私钥对区块链中其它节点提出的备选区块进行二次签名,获得第二签名消息。在第二签名消息可以包含节点的标识。
需要说明的是,当某个节点利用自己的私钥对其它节点提出的备选区块进行二次签名时,表明该节点对该备选区块认可。换言之,虽然当前节点可以对区块链中除自己之外的其它节点提出的备选区块进行二次签名,但实际上,当前节点仅对自己认可的备选节点进行二次签名,然后将签名后的备选节点以广播消息的方式广播到区块链中。
在一些实施例中,节点通过交易信息判断是否认可备选区块。当前节点收到其他节点广播的第一签名消息后,从第一签名消息中获得交易信息,然后对交易信息进行也验证,若验证通过,则表明认可第一签名消息对应的备选区块,然后利用自己的私钥对备选区块进行二次签名,获得第二签名消息。
例如,当节点A2收到节点A1在区块链中广播的第一签名消息后,从第一签名消息中获得备选区块,从备选区块中获得交易信息,并对交易信息进行验证,如果验证通过,则表示对节点A1提出的备选区块表示认可,然后节点A2用自己私钥对备选区块进行签名,获得第二签名消息。
步骤203,针对当前节点提出的备选区块返回的第二签名消息的比例值达到预设阈值时,将接收到的所有的第二签名消息汇总为第一数据包。
在一些实施例中,每个节点都会收到其它节点返回的针对自己提出的备选区块的第二签名消息,也会收到其它节点返回的针对别的节点提出的备选区块的第二签名信息,即每个节点会接收到多种第二签名消息,既包括针对自己提出的备选区块,也包括针对其它节点提出的备选区块。每个节点将收到的第二签名消息全部存储,并对接收到的第二签名消息的数量进行统计,当第二签名的数量的比例值达到预设阈值时,将接收到的所有的第二签名消息汇总为第一数据包。其中,比例值是指当前节点收到的针对自己提出的备选区块返回的第二签名的数量与参与投票的节点的数量的比值。
在一些实施例中,区块链中各个节点按照时间和比例值来确定是否生成第一数据包,即,最先收集到针对自己提出的备选区块的第二签名消息的比例值达到预设阈值,则将接收到的所有的第二签名消息汇总为第一数据包。
如图3所示,步骤203具体包括;
步骤301,统计具有投票权限的投票节点返回的针对当前节点提出的备选区块的第二签名消息的数量,获得投票数量。
如上文,当前节点接收到的第二签名消息既包括针对当前节点提出的备选区块的第二签名消息,也包括针对其它节点提出的备选区块的第二签名消息,因此,需要统计针对当前节点提出的备选区块的第二签名消息的数量。
在本实施例中,能够返回第二签名消息的节点为具有投票权限的投票节点返回的消息。
步骤302,基于投票数量和投票节点对应的权重获得比例值。
其中,每个投票节点具有不同的权重,权重是预先设定。
在一些实施例中,最先收集到对自己提出的备选区块的被投票节点二次签名达到投票节点数量的节点,将投票数量乘以投票节点对应的权重获得比例值。
例如,当节点A1最先收集到预设数量的第二签名消息,而且,该第二签名消息是其他节点针对节点A1提出的备选区块返回的签名消息,假如,节点A1收到了节点A2、A3、A4返回的第二签名消息,即收到3条第二签名消息,其中,节点A2、A3、A4对节点A1的投票的权重分别是0.1、0.2、0.15,那么节点A1得到的比例值为3×0.1+3×0.2+3×0.15=1.35。
步骤303,在比例值达到第二预设阈值时,将接收到的所有的第二签名消息汇总为投票数据包。
例如,假设第二预设阈值为1,计算得到的节点A1的比例值为1.35,即节点A1最先收集到对自己提出的备选区块的第二次签名,然后将接收到的第二签名消息汇总为投票数据包。
步骤204,基于第一数据和时间戳,获得第二数据包。
在一些实施例中,当前节点给第一数据包打上时间戳,获得第二数据包。其中,该时间戳是整个区块链公认的时间戳。
在一些实施例中,时间戳是由时间戳服务器提供。具体地,当前节点将第一数据包发送至时间戳服务器,由时间戳服务器给第一数据包打上时间戳,时间戳服务器再将打上时间戳的第一数据包返回给当前节点。在一些实施例中,时间戳服务器用自己的私钥对时间戳进行签名,然后将签名后的时间戳和第一数据包发送给当前节点,当前节点基于第一数据和时间戳,获得第二数据包。
需要说明的是,这里的当前节点是指首先收集到对自己提出的备选区块进行二次签名的第二签名消息的比例值达到预设阈值的节点。区块链中的任何满足该条件的节点可被认为是当前节点。
步骤205,利用当前节点的私钥对第二数据包进行签名,获得第三签名消息,并将第三签名消息发送至区块链中。
在一些实施例中,当前节点收到时间戳服务器返回的时间戳和第二签名消息后,利用自己的私钥对包含有时间戳的第一数据包进行签名,获得第三签名消息,后以广播消息的方式发将第三签名消息送至区块链。
步骤206,基于其它节点返回的第三签名消息、第二签名消息以及预设时间段,确定当前节点提出的备选区块是否为新生成的区块。
如图4所示,步骤206包括:
步骤401,对其它节点返回的第三签名消息和第二签名消息进行比对,获得比对结果。
在一些实施例中,对其它节点返回的第三签名消息和第二签名消息进行比对,获得比对结果。
步骤402,在比对结果为一致时,开始计时。计时可通过计时器执行。
步骤403,在等待时间达到预设时间段时,满足预设条件则确定当前节点提出的备选区块成功生成。
在比对结果为一致时,开始计时;在等待时间达到预设时间段时,满足预设条件则确定当前节点提出的备选区块成功生成。
其中,预设条件为没有收到其他节点生成的备选区块,或者,其他节点的备选区块所对应的时间戳比当前节点的备选区块所对应的时间戳晚。
例如,当比对结果为一致时,节点启动自己内部的定时器,如果在一个阈值T时间段内没有收到其他节点提出的备选区块,或者其他节点提出的备选区块的时间戳较晚,则认为本备选区块生成成功。
需要说明的是,上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明提供的新区块的生成方法,生成备选区块并以广播消息的方式在区块链广播;接收其它节点广播的第二签名消息;其中,第二签名消息是投票节点利用自己的私钥对其它节点提出的备选区块进行二次签名后生成的消息;在针对返回当前节点提出的备选区块返回的第二签名消息的比例值达到预设阈值时,将接收到的所有的第二签名消息汇总为第一数据包;基于第一数据和时间戳,获得第二数据包;利用当前节点的私钥对第二数据包进行签名,获得第三签名消息,并将第三签名消息发送至区块链中;基于其它节点返回的第三签名消息、第二签名消息以及预设时间段,确定当前节点提出的备选区块是否为新生成的区块,该新区块的生成方法是以第二签名消息的比例值和时间的共识机制确定新区块,不需要计算随机数的生成进行挖矿,提升了现有的联盟链中区块生成的效率,而且,针对联盟链的特点,考虑到了不同的联盟链参与方的股份和权重,推动区块链的发展。
图5为本发明提供的一种新区块的生成装置的原理框图。如图5所示,新区块的生成装置包括:
第一生成模块501,用于生成备选区块;
发送模块502,用于以广播消息的方式在区块链广播备选区块;
接收模块503,用于接收其它节点广播的第二签名消息;其中,第二签名消息是投票节点利用自己的私钥对其它节点提出的备选区块进行二次签名后生成的消息;
汇总模块504,用于针对当前节点提出的备选区块返回的第二签名消息的比例值达到预设阈值时,将接收到的所有的第二签名消息汇总为第一数据包;
第二生成模块505,用于基于第一数据和时间戳,获得第二数据包。
在一些实施例中,第二生成模块505是通过时间戳服务器对第一数据包添加时间戳,获得第二数据包。另外,时间戳服务器还可以利用其私钥对时间戳进行签名。签名后的时间戳与第一数据结合成第二数据包。
签名模块506,用于利用当前节点的私钥对第二数据包进行签名,获得第三签名消息,并将第三签名消息发送至区块链中;
发送模块502,还用于将第三签名消息发送至区块链中;
确定模块507,用于基于其它节点返回的第三签名消息、第二签名消息以及预设时间段,确定当前节点提出的备选区块是否为新生成的区块。
在一些实施例中,新区块的生成装置还包括:
签名模块506,用于利用当前节点的私钥对备选区块进行签名,获得第一签名消息;
发送模块502,还用于使用广播消息的方式在区块链中广播第一签名消息。
在一些实施例中,新区块的生成装置还包括:
接收模块503,还用于接收区块链中其它节点广播的第一签名消息;其中,备选区块中包含有交易信息;
验证模块508,用于对交易信息进行验证;
签名模块506,还用于利用当前节点的私钥对通过验证的第一签名消息进行二次签名,获得第二签名消息。
如图6所示,在一些实施例中,汇总模块504包括:
统计单元601,用于统计针对当前节点提出的备选区块返回的第二签名消息的数量,获得第一数量;
计算单元602,用于基于第一数量和区块链中所有节点的数量获得比例值。
汇总单元603,用于在比例值达到第一预设阈值时,将接收到的所有的第二签名消息汇总为投票数据包。
在另一些实施例中,统计单元601,用于统计具有投票权限的投票节点返回的针对当前节点提出的备选区块的第二签名消息的数量,获得投票数量。
计算单元602,用于基于投票数量和投票节点对应的权重获得权重比例值;
汇总单元603,在权重比例值达到第二预设阈值时,将接收到的所有的第二签名消息汇总为投票数据包。
其中,权重为投票节点根据在区块联盟链中所占的股份而预先约定的投票权重比。
如图7所示,在一些实施例中,确定模块507包括:
比对单元701,用于对其它节点返回的第三签名消息和第二签名消息进行比对,获得比对结果;
计时器702,用于在比对结果为一致时,开始计时;
确定单元703,用于在等待时间达到预设时间段时,满足预设条件则确定当前节点提出的备选区块成功生成。
需要说明的是,本实施例提供的新区块的生成装置中,各个模块和单元的具体实施方式与新区块的生成方法对应部分相同,在此不再赘述。
本实施例提供的生成装置,第一生成模块生成备选区块,发送模块以广播消息的方式在区块链广播;接收模块接收其它节点广播的第二签名消息;汇总模块在针对返回当前节点提出的备选区块返回的第二签名消息的比例值达到预设阈值时,将接收到的所有的第二签名消息汇总为第一数据包;第二生成模块基于第一数据和时间戳,获得第二数据包;签名模块利用当前节点的私钥对第二数据包进行签名,获得第三签名消息,并将第三签名消息发送至区块链中;确定模块基于其它节点返回的第三签名消息、第二签名消息以及预设时间段,确定当前节点提出的备选区块是否为新生成的区块,该新区块的生成方法是以第二签名消息的比例值和时间的共识机制确定新区块,不需要计算随机数的生成进行挖矿,提升了现有的联盟链中区块生成的效率,而且,针对联盟链的特点,考虑到了不同的联盟链参与方的股份和权重,推动区块链的发展。
本实施例还提供一种电子设备,包括一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本实施例提供的新区块的生成方法,为避免重复描述,在此不再赘述方法的具体步骤。
本实施例还提供一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本实施例提供的新区块的生成方法,为避免重复描述,在此不再赘述新区块的生成方法的具体步骤。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其它数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其它的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其它传输机制之类的调制数据信号中的其它数据,并且可包括任何信息递送介质。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本实施例的范围之内并且形成不同的实施例。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
Claims (10)
1.一种新区块的生成方法,其特征在于,其包括:
生成备选区块并以广播消息的方式在区块链广播;
接收其它节点广播的第二签名消息;其中,所述第二签名消息是投票节点利用自己的私钥对其它节点提出的备选区块进行二次签名后生成的消息;
针对当前节点提出的备选区块返回的所述第二签名消息的比例值达到预设阈值时,将接收到的所有的所述第二签名消息汇总为第一数据包;
基于所述第一数据和时间戳,获得第二数据包;
利用所述当前节点的私钥对第二数据包进行所述签名,获得第三签名消息,并将所述第三签名消息发送至区块链中;
基于其它节点返回的所述第三签名消息、所述第二签名消息以及预设时间段,确定所述当前节点提出的所述备选区块是否为新生成的区块。
2.根据权利要求1所述的方法,其特征在于,所述生成备选区块并以广播消息的方式在区块链广播,包括;
生成备选区块;
利用当前节点的私钥对所述备选区块进行签名,获得第一签名消息;
使用广播消息的方式在所述区块链中广播所述第一签名消息。
3.根据权利要求2所述的方法,其特征在于,所述生成备选区块并使用广播消息的方式在区块链广播之后,还包括:
接收所述区块链中其它节点广播的所述第一签名消息;其中,所述备选区块中包含有交易信息;
对所述交易信息进行验证;
利用所述当前节点的私钥对通过验证的所述第一签名消息进行二次签名,获得所述第二签名消息。
4.根据权利要求1所述的方法,其特征在于,所述针对当前节点提出的备选区块返回的所述第二签名消息的比例值达到预设阈值时,将接收到的所有的所述第二签名消息汇总为第一数据包,包括:
统计针对当前节点提出的备选区块返回的所述第二签名消息的数量,获得第一数量;
基于所述第一数量和所述区块链中所有节点的数量获得比例值;
在所述比例值达到第一预设阈值时,将接收到的所有的所述第二签名消息汇总为投票数据包。
5.根据权利要求1所述的方法,其特征在于,所述针对当前节点提出的备选区块返回的所述第二签名消息的比例值达到预设阈值时,将接收到的所有的所述第二签名消息汇总为第一数据包,包括:
统计具有投票权限的投票节点返回的针对当前节点提出的备选区块的所述第二签名消息的数量,获得投票数量;
基于所述投票数量和所述投票节点对应的权重获得权重比例值;
在所述权重比例值达到第二预设阈值时,将接收到的所有的所述第二签名消息汇总为投票数据包。
6.根据权利要求5所述的方法,其特征在于,所述权重为所述投票节点根据在区块联盟链中所占的股份而预先约定的投票权重比。
7.根据权利要求1所述的方法,其特征在于,所述基于所述第一数据和时间戳,获得第二数据包,包括;
通过时间戳服务器对所述第一数据包添加时间戳,获得第二数据包。
8.根据权利要求7所述的方法,其特征在于,利用所述时间戳服务器的私钥对所述时间戳进行签名。
9.根据权利要求1所述的方法,其特征在于,所述基于其它节点返回的所述第三签名消息、所述第二签名消息以及预设时间段,确定所述当前节点提出的所述备选区块是否成功生成,包括:
对所述其它节点返回的所述第三签名消息和所述第二签名消息进行比对,获得比对结果;
在所述比对结果为一致时,开始计时;
在等待时间达到所述预设时间段时,满足预设条件则确定所述当前节点提出的所述备选区块成功生成。
10.一种新区块的生成装置,其特征在于,其包括:
第一生成模块,用于生成备选区块;
发送模块,用于以广播消息的方式在区块链广播所述备选区块;
接收模块,用于接收其它节点广播的第二签名消息;其中,所述第二签名消息是投票节点利用自己的私钥对其它节点提出的备选区块进行二次签名后生成的消息;
汇总模块,用于针对当前节点提出的备选区块返回的所述第二签名消息的比例值达到预设阈值时,将接收到的所有的所述第二签名消息汇总为第一数据包;
第二生成模块,用于基于所述第一数据和时间戳,获得第二数据包;
签名模块,用于利用所述当前节点的私钥对第二数据包进行所述签名,获得第三签名消息,并将所述第三签名消息发送至区块链中;
所述发送模块,还用于将所述第三签名消息发送至区块链中;
确定模块,用于基于其它节点返回的所述第三签名消息、所述第二签名消息以及预设时间段,确定所述当前节点提出的所述备选区块是否为新生成的区块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011151939.XA CN112261145B (zh) | 2020-10-22 | 2020-10-22 | 一种新区块链生成方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011151939.XA CN112261145B (zh) | 2020-10-22 | 2020-10-22 | 一种新区块链生成方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112261145A true CN112261145A (zh) | 2021-01-22 |
CN112261145B CN112261145B (zh) | 2022-07-12 |
Family
ID=74261960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011151939.XA Active CN112261145B (zh) | 2020-10-22 | 2020-10-22 | 一种新区块链生成方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112261145B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826592A (zh) * | 2022-06-22 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 基于区块链的密钥生成方法、装置、电子设备和可读介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109522456A (zh) * | 2018-11-14 | 2019-03-26 | 全链通有限公司 | 基于区块生成的节点有效性检测 |
CN109543075A (zh) * | 2018-11-14 | 2019-03-29 | 全链通有限公司 | 区块生成方法和系统 |
US20190123892A1 (en) * | 2017-10-24 | 2019-04-25 | 0Chain, LLC | Systems and methods of self-forking blockchain protocol |
CN110032873A (zh) * | 2018-01-11 | 2019-07-19 | 万事达卡国际公司 | 用于在适度限制的区块链上的公共选举的方法及系统 |
US20190279107A1 (en) * | 2018-03-09 | 2019-09-12 | Lenovo (Beijing) Co., Ltd. | Blockchain-based data processing method, apparatus, and electronic device thereof |
CN110380847A (zh) * | 2019-07-01 | 2019-10-25 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法和装置 |
CN110472970A (zh) * | 2018-05-09 | 2019-11-19 | 厦门本能管家科技有限公司 | 一种基于区块链的预先生成区块方法及系统 |
US20200134578A1 (en) * | 2018-10-25 | 2020-04-30 | Thunder Token Inc. | Blockchain consensus systems and methods involving a time parameter |
CN111368008A (zh) * | 2020-05-27 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
US20200220881A1 (en) * | 2019-01-09 | 2020-07-09 | Ebay Inc. | Weighted verification of entity data blocks on a blockchain |
-
2020
- 2020-10-22 CN CN202011151939.XA patent/CN112261145B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190123892A1 (en) * | 2017-10-24 | 2019-04-25 | 0Chain, LLC | Systems and methods of self-forking blockchain protocol |
CN110032873A (zh) * | 2018-01-11 | 2019-07-19 | 万事达卡国际公司 | 用于在适度限制的区块链上的公共选举的方法及系统 |
US20190279107A1 (en) * | 2018-03-09 | 2019-09-12 | Lenovo (Beijing) Co., Ltd. | Blockchain-based data processing method, apparatus, and electronic device thereof |
CN110472970A (zh) * | 2018-05-09 | 2019-11-19 | 厦门本能管家科技有限公司 | 一种基于区块链的预先生成区块方法及系统 |
US20200134578A1 (en) * | 2018-10-25 | 2020-04-30 | Thunder Token Inc. | Blockchain consensus systems and methods involving a time parameter |
CN109522456A (zh) * | 2018-11-14 | 2019-03-26 | 全链通有限公司 | 基于区块生成的节点有效性检测 |
CN109543075A (zh) * | 2018-11-14 | 2019-03-29 | 全链通有限公司 | 区块生成方法和系统 |
US20200220881A1 (en) * | 2019-01-09 | 2020-07-09 | Ebay Inc. | Weighted verification of entity data blocks on a blockchain |
CN110380847A (zh) * | 2019-07-01 | 2019-10-25 | 阿里巴巴集团控股有限公司 | 一种区块链共识方法和装置 |
CN111368008A (zh) * | 2020-05-27 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Non-Patent Citations (1)
Title |
---|
王群等: "区块链原理及关键技术", 《计算机科学与探索》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114826592A (zh) * | 2022-06-22 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 基于区块链的密钥生成方法、装置、电子设备和可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112261145B (zh) | 2022-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109543075B (zh) | 区块生成方法和系统 | |
CN110868441B (zh) | 区块链公链的维护方法、装置、节点及区块链公链 | |
CN109559120B (zh) | 基于权重的区块链共识方法、系统、存储介质及电子设备 | |
JP7138726B2 (ja) | ブロックチェーンコンセンサス方法、アカウンティングノードおよびノード | |
CN110445619B (zh) | 区块链系统、消息处理方法及存储介质 | |
CN107220130B (zh) | 一种在区块链的节点处实现的信息共识方法、装置及系统 | |
CN110995701B (zh) | 一种区块链共识方法、系统、电子设备、存储介质 | |
CN113326516A (zh) | 区块链共识方法、区块链系统及计算机设备 | |
CN113055188A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN111104460A (zh) | 一种区块链共识方法、系统、电子设备、存储介质 | |
CN112749968B (zh) | 基于区块链的业务数据记录方法及装置 | |
CN109617702B (zh) | 消息签名的方法、区块链节点及具有存储功能的装置 | |
WO2023016429A1 (zh) | 一种可再投票的二元共识方法、装置、电子设备及存储介质 | |
CN112261145B (zh) | 一种新区块链生成方法及装置 | |
CN113660125A (zh) | 一种基于随机可信委员会的共识方法及装置 | |
CN110661656B (zh) | 一种区块链快速共识方法及装置 | |
CN110460471B (zh) | 一种超级节点竞选方法、装置及存储介质 | |
CN113347174B (zh) | 区块链中的共识方法、装置和电子设备 | |
CN112910661B (zh) | 适用于电子签约的区块链共识方法、装置、设备及介质 | |
CN112988470B (zh) | 联盟链中的共识方法、共识节点和系统 | |
CN111526165B (zh) | 联盟链中的共识方法和系统 | |
CN112258184B (zh) | 冻结区块链网络的方法、装置、电子设备及可读存储介质 | |
CN111371769B (zh) | 共识处理方法、共识节点、电子设备和可读存储介质 | |
CN115879889A (zh) | 基于区块链的业务处理方法、装置和计算机设备 | |
CN114338673A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |