CN113347174A - 区块链中的共识方法、装置和电子设备 - Google Patents
区块链中的共识方法、装置和电子设备 Download PDFInfo
- Publication number
- CN113347174A CN113347174A CN202110601171.XA CN202110601171A CN113347174A CN 113347174 A CN113347174 A CN 113347174A CN 202110601171 A CN202110601171 A CN 202110601171A CN 113347174 A CN113347174 A CN 113347174A
- Authority
- CN
- China
- Prior art keywords
- signature information
- consensus
- node group
- target node
- information
- 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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- 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/104—Peer-to-peer [P2P] networks
-
- 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 Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本说明书实施例公开了一种区块链中的共识方法、装置和电子设备。所述方法包括:在对共识消息进行签名获得第一签名信息以后,在目标节点组内广播自身的第一签名信息;在获得目标节点组内多个验证节点的第一签名信息后,对获得的第一签名信息进行聚合,得到目标节点组的第二签名信息,所述第二签名信息用于表示共识消息在节点组内达成共识;向其它节点组内的验证节点广播目标节点组的第二签名信息;在获得各节点组的第二签名信息后,对获得的第二签名信息进行聚合,得到第三签名信息,所述第三签名信息用于表示共识消息在区块链网络中达成共识;根据所述第三签名信息,对所述共识消息进行共识操作。本说明书实施例可以提高共识效率。
Description
技术领域
本说明书实施例涉及计算机技术领域,特别涉及一种区块链中的共识方法、装置和电子设备。
背景技术
区块链技术是一种分布式记账技术,以其具有去中心化,不可篡改,无需第三方信任担保的优点而得到广泛重视。由于区块链技术分布式存储且去中心化的特点,共识机制在区块链技术中显得尤为重要。所述共识机制可以包括权益证明(Proof of Stake)共识机制、拜占庭容错(Byzantine Fault Tolerance,BFT)共识机制等。
然而,目前共识机制的共识效率较低,影响了区块链的交易处理性能。
发明内容
本说明书实施例提供一种区块链中的共识方法、装置和电子设备,以提高共识效率。
本说明书实施例的第一方面,提供了一种区块链中的共识方法,包括:
在对共识消息进行签名获得第一签名信息以后,在目标节点组内广播自身的第一签名信息,以便目标节点组内的其它验证节点接收自身的第一签名信息;所述目标节点组为多个节点组中自身所在的节点组,每个节点组包括多个验证节点;
在获得目标节点组内多个验证节点的第一签名信息后,对获得的第一签名信息进行聚合,得到目标节点组的第二签名信息,所述第二签名信息用于表示共识消息在节点组内达成共识;
向其它节点组内的验证节点广播目标节点组的第二签名信息,以便其它节点组内的验证节点接收目标节点组的第二签名信息;
在获得各节点组的第二签名信息后,对获得的第二签名信息进行聚合,得到第三签名信息,所述第三签名信息用于表示共识消息在区块链网络中达成共识;
根据所述第三签名信息,对所述共识消息进行共识操作。
本说明书实施例的第二方面,提供了一种区块链中的共识装置,包括:
第一广播单元,用于在对共识消息进行签名获得第一签名信息以后,在目标节点组内广播自身的第一签名信息,以便目标节点组内的其它验证节点接收自身的第一签名信息;所述目标节点组为多个节点组中自身所在的节点组,每个节点组包括多个验证节点;
第一聚合单元,用于在获得目标节点组内多个验证节点的第一签名信息后,对获得的第一签名信息进行聚合,得到目标节点组的第二签名信息,所述第二签名信息用于表示共识消息在节点组内达成共识;
第二广播单元,用于向其它节点组内的验证节点广播目标节点组的第二签名信息,以便其它节点组内的验证节点接收目标节点组的第二签名信息;
第二聚合单元,用于在获得各节点组的第二签名信息后,对获得的第二签名信息进行聚合,得到第三签名信息,所述第三签名信息用于表示共识消息在区块链网络中达成共识;
共识操作单元,用于根据所述第三签名信息,对所述共识消息进行共识操作。
本说明书实施例的第三方面,提供了一种电子设备,包括:
至少一个处理器;
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如第一方面所述方法的指令。
本说明书实施例提供的技术方案,通过分组的方式,先使共识消息在小范围内(节点组内)达成共识,后使共识消息在整个区块链网络中达成共识。这样可以降低区块链网络中验证节点之间的沟通成本,使得整个区块链网络的通信复杂度和消息复杂度大大降低,从而有利用于提高共识效率。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中区块链中的共识方法的流程示意图;
图2为本说明书实施例中区块链中的共识过程的示意图;
图3为本说明书实施例中区块链中的共识装置的结构示意图;
图4为本说明书实施例中电子设备的结构示意图。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
在相关技术中,例如基于拜占庭容错共识机制的区块链网络,共识消息需要在区块链网络的所有验证节点之间传播。然而,这种传播方式的通信复杂度较高,对于验证节点数量较多的区块链网络,受限于网络环境的不确定性,使得区块链网络中的验证节点需要花费较多的时间才能够达成共识,共识效率较低,从而影响了区块链的交易处理性能。
本说明书实施例提供了一种区块链网络。所述区块链网络可以包括多个节点。所述多个节点之间可以进行通信。例如,所述多个节点之间可以采用P2P(peer to peer)的方式进行通信。每个节点可以为一个服务器,或者,还可以为包括多个服务器的服务器集群。
所述区块链网络可以采用以下共识机制中的一个或多个实现:POS(Proof ofStake,权益证明)共识机制、由POS共识机制所衍生出的共识机制、BFT(Byzantine FaultTolerance,拜占庭容错)共识机制、由BFT共识机制所衍生出的共识机制等。其中,由POS共识机制所衍生出的共识机制可以包括PPOS(Probability proof of stake,概率性权益证明)共识机制、DPOS(Delegated proof of stake,委任权益证明)共识机制等。由BFT共识机制所衍生出的共识机制可以包括Giskard BFT(Giskard Byzantine Fault Tolerance,Giskard拜占庭容错)共识机制、PBFT(Practical Byzantine Fault Tolerance,实用拜占庭容错)共识机制等。
在每一轮共识过程中,可以从区块链网络中选取多个节点作为验证节点;可以对选取的多个验证节点进行分组,得到多个节点组。其中,所述验证节点用于在下一轮共识过程中参与共识。每个节点组可以包括多个验证节点。不同节点组中验证节点的数量可以相同或不同。通过分组有利于提高下一轮共识过程的共识效率。
在每一轮共识过程中,区块链网络中的多个验证节点可以在被称为视图(View)的轮换过程中运作。具体的,每个视图下可以从所述多个验证节点中选取出一个验证节点作为主节点,所述主节点可以在该视图下发起一个或多个共识提议。具体的,所述主节点可以生成一个或多个共识消息;可以在所述多个验证节点中广播所述一个或多个共识消息。每个共识消息表示一个共识提议,具体可以包括待共识的数据(例如待共识的一个或多个交易数据)。区块链网络中的每个验证节点可以接收共识消息;在接收到共识消息以后,可以对共识消息进行确认签名,得到第一签名信息;可以在自身所在的目标节点组内广播第一签名信息,以便目标节点组内的其它验证节点接收第一签名信息。所述目标节点组内的每个验证节点可以接收在所述目标节点组内广播的第一签名信息;在接收到预设数量个验证节点的第一签名信息以后,可以对接收到的第一签名信息进行聚合,得到目标节点组的第二签名信息;可以向其它节点组广播第二签名信息,以便其它节点组内的验证节点接收第二签名信息。所述第二签名信息用于表示共识消息在节点组内达成共识。所述其它节点组内的验证节点与所述目标节点组内的验证节点可以执行类似的步骤。使得,区块链网络中的每个验证节点可以接收到各节点组的第二签名信息;在接收到各节点组的第二签名信息以后,可以对各节点组的第二签名信息进行聚合,得到第三签名信息;可以根据所述第三签名信息,对共识消息进行共识操作。所述第三签名信息用于表示共识消息在区块链中达成共识。如此在经过多个视图以后,区块链网络中的多个验证节点均发起了一个或多个共识提议,则本轮共识过程结束,可以开启下一轮共识过程。如此不断地重复。
以下介绍本说明书实施例的一个场景示例。
在本场景示例中,区块链网络可以采用Giskard BFT共识机制。所述区块链网络可以包括1000个节点。所述区块链网络的每轮共识过程可以有43个节点作为验证节点参与共识。所述区块链网络的每轮共识过程可以产生430个区块数据(每个验证节点产生10个区块数据)。所述430个区块数据中的第410个区块数据用于从所述1000个节点中选取出在下一轮共识过程中参与共识的43个验证节点,以及对选取出的43个验证节点进行分组。例如,所述43个验证节点可以被分为A、B、C、D等4个节点组。节点组A可以包括A1、A2、…、A10等10个验证节点。节点组B可以包括B1、B2、…、B10等10个验证节点。节点组C可以包括C1、C2、…、C10等10个验证节点。节点组D可以包括D1、D2、…、D13等13个验证节点。
在本场景示例中,在每轮共识过程中,在视图V1下,验证节点A1可以为主节点。所述主节点A1可以生成10个共识消息,可以在所述43个验证节点中广播所述10个共识消息。每个共识消息表示一个共识提议,具体可以包括待共识的数据(例如待共识的一个或多个交易数据)。以下以所述10个共识消息中的某一个共识消息(以下称为共识消息M)为例,介绍所述43个验证节点对共识消息M的共识过程,所述10个共识消息中其它共识消息的共识过程与共识消息M的共识过程相类似。具体的,以节点组B中的验证节点B1(节点组B中的其它验证节点以及其它节点组中的验证节点相类似)为例,验证节点B1可以接收共识消息M;在接收到共识消息M以后,可以对共识消息M进行确认签名,得到第一签名信息;可以在节点组B内广播第一签名信息,以便节点组B内的其它验证节点接收第一签名信息。以节点组B中的验证节点B2(节点组B中的其它验证节点相类似)为例,验证节点B2可以接收在节点组B内广播的第一签名信息;在接收到预设数量个验证节点的第一签名信息以后,可以对接收到的第一签名信息进行聚合,得到节点组B的第二签名信息;可以向其它节点组(例如节点组A、节点组C、节点组D)广播第二签名信息,以便其它节点组内的验证节点接收第二签名信息。所述第二签名信息用于表示共识消息M在节点组内达成共识。再以节点组C中的验证节点C1(节点组C中的其它验证节点以及其它节点组中的验证节点相类似)为例,验证节点C1在接收到各节点组的第二签名信息以后,可以对各节点组的第二签名信息进行聚合,得到第三签名信息;可以根据所述第三签名信息,对共识消息M进行共识操作。所述第三签名信息用于表示共识消息M在区块链中达成共识。在主节点A1生成的10个共识消息均达成共识以后,可以切换到视图V2。在视图V2下,验证节点A2可以为主节点。主节点A2的执行过程与主节点A1相类似。如此不断地重复。在视图V43下,验证节点D13可以为主节点。主节点D13的执行过程与主节点A1相类似。在主节点D13生成的10个共识消息达成共识以后,本轮共识过程结束,可以开启下一轮共识过程。
请参阅图1和图2。本说明书实施例提供一种区块链中的共识方法。所述方法可以应用于验证节点,具体可以包括以下步骤。
步骤S11:在对共识消息进行签名获得第一签名信息以后,在目标节点组内广播自身的第一签名信息,以便目标节点组内的其它验证节点接收自身的第一签名信息;所述目标节点组为多个节点组中自身所在的节点组,每个节点组包括多个验证节点。
在一些实施例中,所述目标节点组为多个节点组中自身所在的节点组。所述多个节点组可以通过对从区块链网络中选取的用于参与共识的验证节点进行分组得到。具体的,可以从上一轮共识过程所提交的多个区块数据中选取目标区块数据;可以利用目标区块数据,从区块链网络中选取用于参与共识的验证节点;可以对选取的验证节点进行分组,得到多个节点组。其中,每个节点组内验证节点的数量不少于第一数值,并且不超过第二数值。例如,所述第一数值可以为4,所述第二数值可以为25。
所述目标区块数据可以为上一轮共识过程所提交的多个区块数据中的第u个区块数据。例如,所述u可以为410。所述目标区块数据可以包括区块链网络中多个节点的交易数据,每个节点的交易数据可以包括自身拥有的权益数量(例如自身拥有的数字货币数量),所述权益数量用于选取验证节点。那么,可以根据目标区块数据中各节点拥有的权益数量,使用可验证随机函数(Verifiable Random Function,VRF),从区块链网络中选取N个节点作为验证节点。或者,还可以从区块链网络中选取拥有的权益数量最多的N个节点作为验证节点。值得说明的是,由于是采用相同的方式从区块链网络中选取验证节点的,因而根据目标区块数据,不同节点之间所选取的验证节点是一致的。
针对N个验证节点中的每个验证节点,可以将该验证节点的标识与T相除;可以根据相除后的余数确定该验证节点隶属的节点组。所述T可以为节点组的数量。例如,所述T可以为4。那么,若余数为0,则可以确定该验证节点隶属于节点组A;若余数为1,则可以确定该验证节点隶属于节点组B;若余数为2,可以确定该验证节点隶属于节点组C;若余数为3,可以确定该验证节点隶属于节点组D。或者,还可以从N个验证节点中选取出一个验证节点作为基准节点(例如,所述基准节点可以为N个验证节点中权益数量最多的一个验证节点);可以计算其它验证节点与基准节点之间的距离(例如,可以根据节点的标识计算节点之间的距离),可以根据距离对N个验证节点进行分组。例如,可以根据距离对N个验证节点进行排序;可以对排序后的N个验证节点进行切割分组。值得说明的是,由于是采用相同的方式对所述N个验证节点进行分组的,因而不同节点之间的分组结果是一致的。
在一些实施例中,所述共识消息可以由主节点生成。所述主节点可以为用于发起共识提议的验证节点。所述主节点可以隶属于目标节点组,或者,也可以隶属于其它节点组。
在实际中,可以接收主节点生成的共识消息;在接收到共识消息后,可以对共识消息进行验证;在验证通过以后,可以对共识消息进行签名,得到第一签名信息;可以在自身所在的目标节点组内广播第一签名信息,以便目标节点组内的验证节点接收第一签名信息。例如,所述共识消息可以包括<message,V,i0>,所述message用于表示待共识的一个或多个交易数据,所述V用于表示视图,所述i0用于表示主节点的标识(例如主节点的公钥)。所述对共识消息进行验证可以包括:对一个或多个交易数据的有效性进行验证。所述第一签名信息可以包括<message,V,i0,i1,S1>。所述i1用于表示自身的标识(例如自身的公钥),所述S1用于表示使用自身的私钥对message进行签名后所获得的签名。
在一些实施例中,可以采用Gossip协议(流行病协议)在目标节点组内广播自身的第一签名信息。当然,也可以采用其它的协议在自身所在的目标节点组内广播第一签名信息。
为了加快第一签名信息在目标节点组内的传播速度,可以与目标节点组内的其它验证节点建立预连接;可以利用预连接,在自身所在的目标节点组内广播第一签名信息。
在一些实施例中,由于验证节点仅将自身的第一签名信息在自身所在的目标节点组内广播,无需在整个区块链网络中广播,极大地降低了验证节点之间的沟通成本,使得整个区块链网络的通信复杂度和消息复杂度大大降低,从而有利用于提高共识效率。例如,区块链网络中验证节点的数量可以为N个,所述N个验证节点被分为了4个节点组。采用相关技术中的广播方式,整个区块链网络中需要传播的消息数量为(N-1)×N。采用本实施例中的广播方式,整个区块链网络中需要传播的消息数量为N2/4。另外,共识消息在不同节点组内的传播进而达成组内共识是并行进行的,也有利于提高共识效率。延续前面的例子,假设节点处理一条消息的平均耗时为t。采用相关技术中的广播方式,整个区块链网络达成共识的总耗时为N×t。而采用本实施例中的广播方式,整个区块链网络达成共识的总耗时为(N×t)/4。
步骤S12:在获得目标节点组内多个验证节点的第一签名信息后,对获得的第一签名信息进行聚合,得到目标节点组的第二签名信息,所述第二签名信息用于表示共识消息在节点组内达成共识。
在一些实施例中,所述目标节点组内的各个验证节点均可以对共识消息进行签名,得到第一签名信息;可以在自身所在的目标节点组内广播自身的第一签名信息。这样,可以接收在目标节点组内广播的一个或多个第一签名信息,所述一个或多个第一签名信息由目标节点组内的一个或多个验证节点对共识消息进行签名得到。其中,所述获得的第一签名信息可以包括自身的第一签名信息,还可以包括接收的第一签名信息。
在一些实施例中,在获得的第一签名信息的数量满足预设条件以后,可以对获得的第一签名信息进行聚合。所述预设条件可以包括:第一签名信息的数量大于或等于目标节点组内验证节点数量的三分之二。这样可以提高安全性,避免拜占庭将军问题(Byzantine Failures)。
在一些实施例中,可以采用聚合签名算法,对获得的第一签名信息进行聚合,得到目标节点组的第二签名信息。所述第二签名信息用于表示共识消息在节点组内达成共识。所述聚合签名算法是一种可以将多个签名聚合成一个签名的算法。例如,所述多个验证节点的第一签名信息可以包括<message,V,i0,i1,S1>、<message,V,i0,i2,S2>、<message,V,i0,i3,S3>。可以对所述多个验证节点的第一签名信息进行聚合,得到目标节点组的第二签名信息。所述第二签名信息可以包括<message,V,i0,i1,i2,i3,S1,S2,S3,aggs,g>。所述aggs为聚合后的签名,具体可以通过对S1、S2、S3进行聚合得到。所述g用于表示目标节点组的标识。所述聚合签名算法可以包括Schnorr签名算法、BLS签名算法等。
步骤S13:向其它节点组内的验证节点广播目标节点组的第二签名信息,以便其它节点组内的验证节点接收目标节点组的第二签名信息。
在一些实施例中,可以向除所述目标节点组以外的其它节点组广播目标节点组的第二签名信息,以便其它节点组内的验证节点接收目标节点组的第二签名信息。这样可以实现各节点组之间交换自身的第二签名信息,使得,验证节点能获得各节点组的第二签名信息。
步骤S14:在获得各节点组的第二签名信息后,对获得的第二签名信息进行聚合,得到第三签名信息,所述第三签名信息用于表示共识消息在区块链网络中达成共识。
在一些实施例中,可以采用聚合签名算法,对各节点组的第二签名信息进行聚合,得到第三签名信息。所述聚合签名算法可以包括Schnorr签名算法、BLS签名算法等。
步骤S15:根据所述第三签名信息,对所述共识消息进行共识操作。
在一些实施例中,可以根据第三签名信息和共识消息生成区块数据;可以将所述区块数据追加到区块链上。例如,所述共识消息中可以包括待共识的一个或多个交易数据。那么,可以根据所述待共识的一个或多个交易数据生成区块数据;可以将第三签名信息添加在生成的区块数据中;可以将区块数据追加到区块链上。
在一些实施例中,在一个共识消息的共识周期内,仍未达成共识状态的验证节点可以主动请求缺失的第一签名信息或者第二签名信息,以尽快达成全网共识。
本说明书实施例的区块链中的共识方法,通过分组的方式,先使共识消息在小范围内(节点组内)达成共识,后使共识消息在整个区块链网络中达成共识。这样可以降低区块链网络中验证节点之间的沟通成本,使得整个区块链网络的通信复杂度和消息复杂度大大降低,从而有利用于提高共识效率。
请参阅图3。本说明书实施例还提供一种区块链中的共识装置,包括:
第一广播单元31,用于在对共识消息进行签名获得第一签名信息以后,在目标节点组内广播自身的第一签名信息,以便目标节点组内的其它验证节点接收自身的第一签名信息;所述目标节点组为多个节点组中自身所在的节点组,每个节点组包括多个验证节点;
第一聚合单元32,用于在获得目标节点组内多个验证节点的第一签名信息后,对获得的第一签名信息进行聚合,得到目标节点组的第二签名信息,所述第二签名信息用于表示共识消息在节点组内达成共识;
第二广播单元33,用于向其它节点组内的验证节点广播目标节点组的第二签名信息,以便其它节点组内的验证节点接收目标节点组的第二签名信息;
第二聚合单元34,用于在获得各节点组的第二签名信息后,对获得的第二签名信息进行聚合,得到第三签名信息,所述第三签名信息用于表示共识消息在区块链网络中达成共识;
共识操作单元35,用于根据所述第三签名信息,对所述共识消息进行共识操作。
请参阅图4。本说明书实施例还提供一种电子设备。
所述电子设备可以包括存储器和处理器。
在本实施例中,所述存储器包括但不限于动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)和静态随机存取存储器(Static Random Access Memory,SRAM)等。所述存储器可以用于存储计算机指令。
在本实施例中,所述处理器可以按任何适当的方式实现。例如,所述处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述处理器可以用于执行所述计算机指令以实现图1所对应的实施例。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于装置实施例和电子设备实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。另外,可以理解的是,本领域技术人员在阅读本说明书文件之后,可以无需创造性劳动想到将本说明书列举的部分或全部实施例进行任意组合,这些组合也在本说明书公开和保护的范围内。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
Claims (10)
1.一种区块链中的共识方法,包括:
在对共识消息进行签名获得第一签名信息以后,在目标节点组内广播自身的第一签名信息,以便目标节点组内的其它验证节点接收自身的第一签名信息;所述目标节点组为多个节点组中自身所在的节点组,每个节点组包括多个验证节点;
在获得目标节点组内多个验证节点的第一签名信息后,对获得的第一签名信息进行聚合,得到目标节点组的第二签名信息,所述第二签名信息用于表示共识消息在节点组内达成共识;
向其它节点组内的验证节点广播目标节点组的第二签名信息,以便其它节点组内的验证节点接收目标节点组的第二签名信息;
在获得各节点组的第二签名信息后,对获得的第二签名信息进行聚合,得到第三签名信息,所述第三签名信息用于表示共识消息在区块链网络中达成共识;
根据所述第三签名信息,对所述共识消息进行共识操作。
2.如权利要求1所述的方法,所述共识消息由主节点生成,所述主节点为用于发起共识提议的验证节点,所述验证节点为从区块链网络中选取的用于参与共识的节点。
3.如权利要求1所述的方法,所述在目标节点组内广播自身的第一签名信息,包括:
采用Gossip协议,在目标节点组内广播自身的第一签名信息。
4.如权利要求1所述的方法,还包括:
与目标节点组内的其它验证节点建立预连接;
所述在目标节点组内广播自身的第一签名信息,包括:
利用预连接,在目标节点组内广播自身的第一签名信息。
5.如权利要求1所述的方法,所述对获得的第一签名信息进行聚合,包括:
在获得的第一签名信息的数量满足预设条件以后,对获得的第一签名信息进行聚合;所述预设条件包括:第一签名信息的数量大于或等于目标节点组内验证节点数量的三分之二。
6.如权利要求1所述的方法,所述对获得的第一签名信息进行聚合,包括:
利用BLS签名算法,对获得的第一签名信息进行聚合。
7.如权利要求1所述的方法,所述对所述共识消息进行共识操作,包括:
根据所述第三签名信息和所述共识消息生成区块数据;
将所述区块数据追加到区块链上。
8.如权利要求1所述的方法,还包括:
从上一轮共识过程所提交的多个区块数据中选取目标区块数据;利用目标区块数据,从区块链网络中选取用于参与共识的验证节点;对选取的验证节点进行分组,得到多个节点组。
9.一种区块链中的共识装置,包括:
第一广播单元,用于在对共识消息进行签名获得第一签名信息以后,在目标节点组内广播自身的第一签名信息,以便目标节点组内的其它验证节点接收自身的第一签名信息;所述目标节点组为多个节点组中自身所在的节点组,每个节点组包括多个验证节点;
第一聚合单元,用于在获得目标节点组内多个验证节点的第一签名信息后,对获得的第一签名信息进行聚合,得到目标节点组的第二签名信息,所述第二签名信息用于表示共识消息在节点组内达成共识;
第二广播单元,用于向其它节点组内的验证节点广播目标节点组的第二签名信息,以便其它节点组内的验证节点接收目标节点组的第二签名信息;
第二聚合单元,用于在获得各节点组的第二签名信息后,对获得的第二签名信息进行聚合,得到第三签名信息,所述第三签名信息用于表示共识消息在区块链网络中达成共识;
共识操作单元,用于根据所述第三签名信息,对所述共识消息进行共识操作。
10.一种电子设备,包括:
至少一个处理器;
存储有程序指令的存储器,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-8中任一项所述方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110601171.XA CN113347174B (zh) | 2021-05-31 | 2021-05-31 | 区块链中的共识方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110601171.XA CN113347174B (zh) | 2021-05-31 | 2021-05-31 | 区块链中的共识方法、装置和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113347174A true CN113347174A (zh) | 2021-09-03 |
CN113347174B CN113347174B (zh) | 2022-12-13 |
Family
ID=77472818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110601171.XA Active CN113347174B (zh) | 2021-05-31 | 2021-05-31 | 区块链中的共识方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113347174B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338040A (zh) * | 2021-12-29 | 2022-04-12 | 大连理工江苏研究院有限公司 | 一种区块链节点的分组多链三次共识方法 |
CN115174572A (zh) * | 2022-06-30 | 2022-10-11 | 蚂蚁区块链科技(上海)有限公司 | 区块链中的数据组播方法和区块链节点 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113388A (zh) * | 2019-04-17 | 2019-08-09 | 四川大学 | 一种基于改进型聚类算法的区块链系统共识的方法和装置 |
CN110474986A (zh) * | 2019-08-20 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法、装置及系统 |
CN110798308A (zh) * | 2019-10-31 | 2020-02-14 | 支付宝(杭州)信息技术有限公司 | 一种区块链的签名方法和系统 |
CN111445334A (zh) * | 2020-03-30 | 2020-07-24 | 北京数字认证股份有限公司 | 一种区块链系统的聚合签名方法、装置及存储介质 |
CN111523890A (zh) * | 2020-04-23 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、存储介质及设备 |
CN111698094A (zh) * | 2020-06-12 | 2020-09-22 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法及区块链系统 |
-
2021
- 2021-05-31 CN CN202110601171.XA patent/CN113347174B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110113388A (zh) * | 2019-04-17 | 2019-08-09 | 四川大学 | 一种基于改进型聚类算法的区块链系统共识的方法和装置 |
CN110474986A (zh) * | 2019-08-20 | 2019-11-19 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法、装置及系统 |
CN110798308A (zh) * | 2019-10-31 | 2020-02-14 | 支付宝(杭州)信息技术有限公司 | 一种区块链的签名方法和系统 |
CN111445334A (zh) * | 2020-03-30 | 2020-07-24 | 北京数字认证股份有限公司 | 一种区块链系统的聚合签名方法、装置及存储介质 |
CN111523890A (zh) * | 2020-04-23 | 2020-08-11 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、存储介质及设备 |
CN111698094A (zh) * | 2020-06-12 | 2020-09-22 | 深圳前海微众银行股份有限公司 | 一种基于区块链系统的共识方法及区块链系统 |
Non-Patent Citations (2)
Title |
---|
JINHUA FU: "New public blockchain protocol based on sharding and aggregate signatures", 《JOURNAL OF HIGH SPEED NETWORKS》 * |
陈忠贤等: "基于通信时间分组的PBFT算法改进", 《计算机与数字工程》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338040A (zh) * | 2021-12-29 | 2022-04-12 | 大连理工江苏研究院有限公司 | 一种区块链节点的分组多链三次共识方法 |
CN114338040B (zh) * | 2021-12-29 | 2024-03-08 | 大连理工江苏研究院有限公司 | 一种区块链节点的分组多链三次共识方法 |
CN115174572A (zh) * | 2022-06-30 | 2022-10-11 | 蚂蚁区块链科技(上海)有限公司 | 区块链中的数据组播方法和区块链节点 |
CN115174572B (zh) * | 2022-06-30 | 2024-01-05 | 蚂蚁区块链科技(上海)有限公司 | 区块链中的数据组播方法、区块链节点和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113347174B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shrestha et al. | A new type of blockchain for secure message exchange in VANET | |
CN111724150B (zh) | 一种业务请求的处理方法及装置 | |
TWI713840B (zh) | 數位憑證管理方法、裝置及電子設備 | |
KR102566892B1 (ko) | 블록체인 합의 방법, 디바이스 및 시스템 | |
CN112685796B (zh) | 一种基于区块链的区块共识方法以及相关设备 | |
CN113347174B (zh) | 区块链中的共识方法、装置和电子设备 | |
CN112600678B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
WO2021023304A1 (zh) | 分叉处理方法以及区块链节点 | |
CN111523890A (zh) | 基于区块链的数据处理方法、装置、存储介质及设备 | |
CN113810465B (zh) | 一种异步二元共识方法及装置 | |
US20190370504A1 (en) | Digital value tokens created and securely transferred by proof of electrical power generation | |
CN109919760A (zh) | 基于投票机制的拜占庭容错共识算法 | |
KR20200081533A (ko) | 사물 인터넷 환경을 위한 동적 블라인드 투표기반의 블록체인 합의방법 | |
CN114745140B (zh) | 基于聚合加密的城市规划领域区块链共识验证方法及系统 | |
WO2023016429A1 (zh) | 一种可再投票的二元共识方法、装置、电子设备及存储介质 | |
CN111416709A (zh) | 基于区块链系统的投票方法、装置、设备及存储介质 | |
CN110990790B (zh) | 一种数据处理方法及设备 | |
US20210073197A1 (en) | Byzantine consensus without centralized ordering | |
CN111385096A (zh) | 一种区块链网络、签名处理方法、终端及存储介质 | |
CN113935737A (zh) | 基于区块链的随机数生成方法及装置 | |
CN112994891B (zh) | 一种基于门限签名的交易请求共识方法和系统 | |
US20230409450A1 (en) | Consensus processing method and apparatus for blockchain network | |
US20230259930A1 (en) | Cross-chain transaction processing method and apparatus, electronic device, and storage medium | |
CN112261145B (zh) | 一种新区块链生成方法及装置 | |
CN111814204B (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 |