CN115225639A - 共识可信集群的变更方法、装置、计算机设备及介质 - Google Patents
共识可信集群的变更方法、装置、计算机设备及介质 Download PDFInfo
- Publication number
- CN115225639A CN115225639A CN202211119799.7A CN202211119799A CN115225639A CN 115225639 A CN115225639 A CN 115225639A CN 202211119799 A CN202211119799 A CN 202211119799A CN 115225639 A CN115225639 A CN 115225639A
- Authority
- CN
- China
- Prior art keywords
- cluster
- target
- verifier
- change
- consensus
- 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
- 238000000034 method Methods 0.000 title claims abstract description 75
- 230000008859 change Effects 0.000 claims abstract description 207
- 238000012795 verification Methods 0.000 claims abstract description 94
- 238000004590 computer program Methods 0.000 claims description 14
- 230000004075 alteration Effects 0.000 claims 4
- 230000008569 process Effects 0.000 description 27
- 238000010586 diagram Methods 0.000 description 9
- 230000001360 synchronised effect Effects 0.000 description 8
- 238000012790 confirmation Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
- H04L9/3268—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
-
- 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
-
- 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
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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/3236—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 using cryptographic hash functions
-
- 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/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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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
Abstract
本申请实施例适用于区块链技术领域,提供了一种共识可信集群的变更方法、装置、计算机设备及介质。所述方法应用于区块链,包括:确定所述区块链中共识可信集群新增的验证者节点的当前世代以及所述共识可信集群所处的目标世代;向处于所述目标世代的目标验证者节点请求目标状态信息和目标集群变更证明;根据所述目标集群变更证明,对所述目标状态信息进行验证;若所述目标状态信息通过验证,则同步所述目标状态信息对应的所述共识可信集群的状态,以完成所述共识可信集群的变更。通过上述方法,在共识可信集群变更时,新增验证者节点可以在同步共识可信集群的状态之前,对共识可信集群的状态进行验证,从而可以确定一个可信任的同步目标状态。
Description
技术领域
本申请属于区块链技术领域,特别是涉及一种共识可信集群的变更方法、装置、计算机设备及介质。
背景技术
区块链的共识可信集群可以用于保障区块链的一致性。共识可信集群中可以包括多个验证者节点,多个验证者节点可以达成一个可信任的同步目标状态。
当共识可信集群中的验证者节点变更时,对于现有的验证者节点来说,当前验证者集群对系统状态的更新是可信的,但是对于新加入或处于落后状态的验证者节点来说,在区块链系统集群配置发生多次变更后,难以确定一个可信任的同步目标状态。
在进行状态同步时,新加入或者处于落后状态的验证者节点需要在状态同步的过程中对共识可信集群的每次状态变化进行验证,无法在状态同步前确定待同步的状态是否具有合法性。
发明内容
有鉴于此,本申请实施例提供了一种共识可信集群的变更方法、装置、计算机设备及介质,用以在同步状态之前确定可信任的目标状态信息。
本申请实施例的第一方面提供了一种共识可信集群的变更方法,应用于区块链,所述方法包括:
确定所述区块链中共识可信集群新增的验证者节点的当前世代以及所述共识可信集群所处的目标世代;
向处于所述目标世代的目标验证者节点请求目标状态信息和目标集群变更证明;
根据所述目标集群变更证明,对所述目标状态信息进行验证;
若所述目标状态信息通过验证,则根据所述目标状态信息更新新增的所述验证者节点的状态信息,以完成所述共识可信集群的变更。
本申请实施例的第二方面提供了一种共识可信集群的变更装置,应用于区块链,所述装置包括:
确定模块,用于确定所述区块链中共识可信集群新增的验证者节点的当前世代以及所述共识可信集群所处的目标世代;
请求模块,用于向处于所述目标世代的目标验证者节点请求目标状态信息和目标集群变更证明;
验证模块,用于根据所述目标集群变更证明,对所述目标状态信息进行验证;
同步模块,用于若所述目标状态信息通过验证,则根据所述目标状态信息更新新增的所述验证者节点的状态信息,以完成所述共识可信集群的变更。
本申请实施例的第三方面提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的变更方法。
本申请实施例的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的变更方法。
本申请实施例的第五方面提供了一种计算机程序产品,当所述计算机程序产品在计算机设备上运行时,使得所述计算机设备执行上述第一方面所述的变更方法。
与现有技术相比,本申请实施例包括以下优点:
本申请实施例,当共识可信集群状态变更时,新增的验证者节点的当前世代落后于共识可信集群中其他验证者节点的集群世代。为了进行集群状态的同步,验证者节点可以确定高于当前世代的目标世代,然后向处于该目标世代的目标验证者节点请求目标状态信息和目标集群变更证明。基于该目标集群变更证明,验证者节点可以对目标状态信息进行验证。若目标状态信息验证通过,则表明该目标状态信息正确,验证者节点可以同步根据该目标状态信息进行集群状态的同步,从而在该验证者节点中实现共识可信集群的变更。本申请实施例的验证者节点中包括与集群状态对应的集群变更证明,因此在进行状态同步时,新增的验证者节点可以先根据集群变更证明对集群状态进行验证,从而确定可信任的目标集群状态。基于可信任的目标集群状态进行同步,可以避免新增的验证者节点进行无效的状态同步。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种共识可信集群的变更方法的步骤流程示意图;
图2是本申请实施例提供的一种目标集群变更证明的验证流程示意图;
图3是本申请实施例提供的一种验证基础架构图;
图4是本申请实施例提供的一种法定证书列表验证流程图;
图5是本申请实施例提供的另一种共识可信集群的变更方法的步骤流程示意图;
图6是本申请实施例提供的再一种共识可信集群的变更方法的步骤流程示意图;
图7是本申请实施例提供的一种共识可信集群的变更装置的示意图;
图8是本申请实施例提供的一种计算机设备的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
目前区块链的信任主要基于对创世集群配置以及最新集群配置验证者节点签名的信任。共识协议运行中,共识可信集群中的验证者节点对共识提出的区块进行签名,其他验证者节点对此区块进行合法性验证后,认为此区块正确通过共识并进行提交与上链。共识可信集群可以变更,比如出现验证者节点的增加或者减少。
以现拜占庭容错BFT类共识算法为例,对共识可信集群的变更方案说明如下:验证者节点打包包含集群变更信息的交易,生成变更提案,然后将签名后的提案区块发送给其余验证者节点。其余验证者节点收到提案区块后,对打包验证者节点签名、交易正确性、执行结果等信息验证,验证信息无误后,可以附加自己的投票签名信息。当每个验证者节点搜集旧集群配置指定的法定数量的签名后,提交此区块,更新集群配置完成此次集群变更。从集群变更后的下一个提案开始,验证者节点使用新集群配置来验证共识消息的合法性。
当集群新验证者节点加入时,新验证者节点信任最新集群配置验证者节点的最新状态,并将此状态设置为目标同步状态,向集群中的验证者节点发送区块拉取请求。新验证者节点从创世区块为基础依次执行同步到的区块,通过按序逐个区块执行的方式,验证每次集群变更的正确性。即,假设区块Bk状态下集群配置仍为创世集群配置V1,区块Bk+1包含变更集群状态交易,执行后的状态将集群配置变更为V2,此时若区块Bk+1包含V1中正确的验证信息,并可以正确执行成功,则认为集群配置变更为V2的操作是有效的。新验证者节点执行完所有区块后达到最新的共识状态,通过最新状态更新共识集群配置信息,然后开始进行共识提案与投票流程。
上述方案可以实现共识集群配置的变更以及变更后新节点的加入,但仍存在以下问题:提案区块需要的验证者节点信息不明确。每个验证者节点在收到提案区块时,仅使用自身视图下的验证者节点列表来判断提案是否合法以及搜集到的验证者节点签名是否达到法定数量,但是验证者节点可能处于不一致或落后的视图状态,此时验证者节点信息可能是不正确的。此外,新验证者节点加入时难以确定目标状态。节点在同步前难以验证目标状态的正确性,只能在同步过程中发现错误。假设以下情况:系统S在n次集群变更后,实际集群节点数量V,新节点w加入后,需要获取集群中最新状态信息,即区块高度、区块哈希,集群信息。但若要保证w查到状态是正确的,则w至少需要查询f+1个节点得到一致的区块状态与集群信息,若V=1000,则w至少需要查询334个节点的状态。显然,这种方式是繁琐甚至难以实现的,因为新节点w可能无法连接上这个数量的节点。但若节点直接信任某一节点的状态,触发同步,则可能在同步过程中发现目标状态是错误的,而导致之前的工作变得无效。再有,此方案同步时需要验证每个区块的法定证书,开销大。由于在同步过程中可能因为某个区块的执行而导致验证者节点列表发生改变,而这种改变是无法提前知道的,因此节点在同步过程中必须验证每个区块的证书是否在当前状态的验证者节点列表下有效。
基于此,本申请提出了一种共识可信集群的变更方法,使得共识可信集群的变更行为在共识过程中可验证可追溯。下面通过具体实施例来说明本申请的技术方案。
参照图1,示出了本申请实施例提供的一种共识可信集群的变更方法的步骤流程示意图,具体可以包括如下步骤:
S101,确定所述区块链中共识可信集群新增的验证者节点的当前世代以及所述共识可信集群所处的目标世代。
本实施例的执行主体为区块链,区块链具有共识可信集群,区块链的共识可信集群可以包括多个验证者节点,共识可信集群的变更可以包括验证者节点的增加和删除。共识可信集群中的各个验证者节点需要保持状态一致,因此当有新的验证者节点加入到共识可信集群中时,原有的各个验证者节点中的状态变更,以达到最新的状态;新增的验证者节点同步到区块链的最新状态。本实施例以一个新加入共识可信集群的新增的验证者节点为执行主体来阐述本实施例中的方法。共识可信集群在该验证者节点上的变更体现为该验证者节点同步当前共识可信集群的状态。
共识可信集群中的每个验证节点可以记录该验证者所处的集群世代,集群世代可以用于标识该验证者节点所处的共识可信集群的版本。共识可信集群每经历一次集群变更,版本就更新一次。为了标识所处的版本,验证者节点可以记录对应的世代版本号。世代版本号可以具有对应的生成规则,根据世代版本号,可以判断验证者节点所处的世代。
上述当前世代为新增的验证者节点所处的集群世代,验证者节点可以通过读取自身存储的世代版本号来确定验证者节点所处的当前世代。上述目标世代可以为共识可信集群的最新的集群世代。对于新增验证者节点而言,当前世代的世代版本号落后于目标世代的世代版本号。
在一种可能的实现方式中,世代版本号的初始值可以为1,每当共识可信集群变更一次时,世代版本号加一。在世代版本号为1时,共识可信集群为创世集群,当有新的验证者节点加入创世集群后,共识可信集群在变更完后,将世代版本号更新为2。新增的验证者节点的世代版本号可以为1,即新增的验证者节点的状态为共识可信集群的初始状态。
在一种可能的实现方式中,新增的验证者节点可以接收共识可信集群中其他验证者节点发送的消息,该消息可以携带有其他验证者节点的世代版本号。新增的验证者节点可以从接收到的消息中确定最新的世代版本号,将该最新的世代版本号对应的集群世代确定为上述目标世代。即,目标世代可以为该新增的验证者节点认为的最新的集群世代。
S102,向处于所述目标世代的目标验证者节点请求目标状态信息和目标集群变更证明。
上述目标验证者节点为共识可信集群中处于目标世代的验证者节点,新增的验证者节点的集群状态落后于目标验证者节点的集群状态,因此需要根据目标验证者节点的状态信息更新新增的验证者节点的状态信息。目标验证者节点的状态信息即为上述目标状态信息。
新增的验证者节点可以向目标验证者节点发送集群状态请求信息,以向目标验证者节点请求目标状态信息和目标集群变更证明。该目标集群变更证明用于验证该目标状态信息是否正确。
S103,根据所述目标集群变更证明,对所述目标状态信息进行验证。
上述目标集群变更证明中可以包括共识可信集群每次集群变更的证明信息。根据证明信息,可以判断对应的集群变更是否具有合法性。若根据证明信息,确定共识可信集群在更新到目标世代的过程中的每次集群变更均具有合法性,则可以确定目标状态信息验证通过。若存在任意一次的集群变更不具有合法性,则确定目标状态信息验证未通过。
在一种可能的实现方式中,上述证明信息可以为法定证书。共识可信集群变更时,共识可信集群中的验证者节点会生成法定证书,并将法定证书添加至集群变更证明的法定证书列表中。法定证书可以用于确认验证者节点的此次状态更新是否具有合法性。共识可信集群每次变更生成的法定证书组成法定证书列表,存储在集群变更证明中。新增的验证者节点可以对法定证书进行验证,当所有的法定证书通过验证后,可以说明该目标状态信息是可信任的。
在另一种可能的实现方式中,上述证明信息可以为集群变更时管理员的确认信息。区块链可以具有一个对应的管理员,当共识可信集群发生集群变更时,可以将集群的变更信息发送至该管理员进行确认;管理员对集群变更进行确认后,可以向共识可信集群的各个验证者节点发送确认信息。验证者节点将接收到的确认信息作为集群变更的证明信息存储到集群变更证明中。新增的验证者节点可以根据目标集群变更证明中的多个确认信息,确定每次集群变更是否正确。
S104,若所述目标状态信息通过验证,则根据所述目标状态信息更新新增的所述验证者节点的状态信息,以完成所述共识可信集群的变更。
若目标状态信息通过验证,则可以说明目标状态信息可信任,新增的验证者节点可以根据目标状态信息更新自身的状态信息。
在一种可能的实现方式中,新增的验证者节点可以将目标状态信息对应的区块高度与哈希作为目标状态同步并执行区块,同步完成后通过最新状态更新共识集群配置信息,然后可以开始进行共识提案与投票流程。
在另一种可能的实现方式中,新增的验证者节点可以通过目标状态信息直接拉取目标验证者节点的状态树,从而更新到最新集群状态。
本实施例中是以一个新增的验证者节点作为主体来描述处于落后状态的验证者节点的状态同步过程。本领域技术人员应当明白,共识可信集群中的任一落后验证者节点,可以采用本实施例中的方法进行集群状态的同步。本实施例中状态落后的验证者节点可以在进行状态同步时,可以通过验证得到一个明确的目标状态。落后验证者节点在同步前先对历史集群变更证明进行验证,保证了同步目标的正确性,选取目标验证者节点更加方便。
本实施例中,共识可信集群的新增的验证者节点在同步共识可信集群的状态时,可以向处于目标世代的目标验证者节点请求目标验证信息和目标集群变更证明。通过目标集群变更证明,新增的验证者节点可以确定目标状态信息是否可信。新增的验证者节点在同步状态之前,可以先确认可信任的目标状态,避免了在同步时发现错误而导致的同步工作无效。另外,由于状态同步前已经验证过了集群变更证明中的法定证书,因此保证目标状态信息是正确的,不需要监控区块执行后的集群变化而验证每个区块的法定证书。由于新增的验证者节点在状态同步后无需验证每个区块的法定证书,因此在进行状态同步时的计算资源消耗小。
参照图2,示出了本申请实施例提供的一种目标集群变更证明的验证流程示意图,具体可以包括如下步骤:
S201,获取所述目标集群变更证明中的法定证书列表,所述法定证书列表中包括一个或多个法定证书。
本实施例的执行主体为共识可信集群中的新增的验证者节点。
上述法定证书可以如下所示:
上述Epoch世代版本号用于表示生成法定证书时,所处的集群世代。每个法定证书具有对应的世代版本号。基于世代版本号,法定证书列表中的各个法定证书具有一定的排列顺序。上述<NextEpochState>下一世代信息中包括下一世代验证者列表。也就是法定证书的世代版本号对应世代的下一个集群世代的验证者列表。基于上述法定证书可以计算得到一个哈希值,对该哈希值进行签名,可以得到上述QuorumSignatures签名信息。
S202,确定各个所述法定证书及各个所述法定证书对应的验证信息。
在进行验证时,需要根据每个法定证书的验证信息对每个法定证书进行验证,因此需要确定验证信息。确定排列顺序在第一位的第一法定证书,将新增的验证者节点的检查者列表作为第一法定证书的验证信息。新增的验证者节点的检查者列表中可以在新增的验证者节点的当前世代下,共识可信集群中的各个验证者节点的公钥信息。
针对第二法定证书,确定第二法定证书前一位的法定证书,将前一位的法定证书中的验证者列表作为第二法定证书的验证信息,第二法定证书为法定证书列表中不在第一位的任一法定证书。法定证书的验证者列表即上述<NextEpochState>下一世代信息中的下一世代验证者列表。由于每个证书中存储的验证者列表为下一世代验证者列表,因此在进行验证时,第二法定证书的验证需要获取前一位的法定证书的验证者列表。
S203,采用所述验证信息分别对各个所述法定证书进行验证。
针对任一法定证书,确定法定证书的验证信息对应的验证者列表、法定证书的哈希值和法定证书的签名信息,法定证书的验证信息对应的验证者列表包括与共识可信集群的多个验证者节点的公钥;根据公钥和哈希值,对签名信息进行验证;若签名信息验证通过,则确定法定证书验证通过。其中,哈希值是对整个证书结构除签名信息以外的部分进行哈希得到;签名信息为对哈希值的签名。基于共识可信集群约定的签名和验签方法,新增的验证者节点可以基于验证者列表中的公钥进行验签。
S204,若各个所述法定证书均通过验证,则确定所述目标状态信息验证通过。
当法定证书列表中的所有法定证书均通过验证时,则可以确定目标状态信息是可信任的。
S205,若任一所述法定证书未通过验证,则确定所述目标状态信息验证未通过。
当某个法定证书验证不通过时,则可以确定该目标状态信息验证未通过。
在一种可能的实现方式中,可以基于每一个法定证书确定的验证信息,并行验证多个法定证书。当存在一个法定证书验证不通过时,确定目标状态信息验证未通过。
在一种可能的实现方式中,由于法定证书的验证需要该法定证书前一世代的法定证书的参与,因此法定证书的验证过程可以顺序执行,当前一世代的法定证书验证通过后,再进行下一个世代的法定证书的验证;当存在一个法定证书验证不通过时,可以确定该法定证书对应的世代版本号,从而可以确定目标状态信息中的错误位置。
图3是本申请实施例提供的一种验证基础架构图;共识可信集群在每次发生集群变更时均会生成一个对应的法定证书,每个法定证书的验证均需要前一个法定证书的参与。如图3所示,共识可信集群的创世集群配置可以具有创世法定证书,在该创世法定证书中,epoch=0;共识可信集群从epoch1变更到epoch2时,会生成对应的epoch1法定证书,在该epoch1法定证书中,epoch=1;共识可信集群从epoch2变更到epoch3时,会生成对应的epoch2法定证书,在该epoch2法定证书中,epoch=2;共识可信集群从epochN-1变更到epochN时,会生成对应的epochN-1法定证书,在该epochN-1法定证书中,epoch= N-1。
图4是本申请实施例提供的一种法定证书列表的验证流程图。在图4所示的验证中,假设新增的验证者节点的当前世代为e,目标世代为e+n+1。则历史集群变更证明Proof包含世代e到e+n之间的n个法定证书:
新增的验证者节点的验证者列表为CurrentVSet e ;由于该新增的验证者节点新加入共识可信集群,因此CurrentVSet e 为创世区块中配置的验证者,其中:
如图4所示,可以从法定证书列表中获取排列在第一位的法定证书Ce,然后根据新增的验证者节点的验证者列表对Ce进行验证,即:
其中,verify(C e )表示对Ce进行验证;CurrentVSet e .verify(C e .Hash, C e .Signatures)表示根据新增的验证者节点的验证者列表为CurrentVSet e 以及法定证书Ce的哈希值和签名信息对Ce进行验证。
若Ce验证通过,则可以继续将i=1。判断i是否大于n。若i大于n,则确定法定证书列表中的所有法定证书均已验证通过,即目标状态信息验证通过。则若i小于或等于n,则可以基于Ce+i-1的验证者列表对Ce+i进行验证。若Ce+i验证通过,则可以将i=i+1,然后继续从判断i是否大于n的步骤开始执行验证过程;若Ce+i验证不通过,则可以确定该目标状态信息验证不通过。
若Ce验证不通过,则可以确定该目标状态信息验证不通过。
对法定证书列表中Ce以外的其他法定证书的验证为:
其中,Ci-1.VSet为法定证书Ci-1的验证者列表;上述式子的含义为对法定证书Ci的验证是基于Ci-1的验证者列表、Ci的签名值和验证者信息进行验证的。
当法定证书列表中的所有证书验证通过,则此集群变更证明验证通过。即:
本实施例,法定证书的验证可以独立于集群状态的同步过程。法定证书中可以存储下一世代验证者列表,从而使得新增的验证者节点可以根据法定证书对应的前一世代的法定证书,对法定证书进行验证。
参照图5,示出了本申请实施例提供的另一种共识可信集群的变更方法的步骤流程示意图,具体可以包括如下步骤:
S501,接收其他验证者节点广播的与所述当前世代匹配的变更提案。
本实施例的执行主体为新增的验证者节点。在本实施例中,该新增的验证者节点已经通过S101-S104的步骤加入到共识可信集群中,可以在共识可信集群中进行共识和投票。新增的验证者节点,此时可以相当于一个共识可信集群中的现有的验证者节点。
当区块链的共识可信集群需要进行变更时,可以向当前共识可信集群中的一个验证者节点法定变更信息或者提交变更交易;该验证者节点可以根据接收到的变更信息或者变更交易创建变更提案,并将变更提案广播至共识可信集群中的各个验证者节点中,各个验证者节点可以对接收到的变更提案进行处理,以实现共识可信集群的变更。当然,新增的验证者节点在实现与共识可信集群的状态同步之后,若接收到来自管理员的针对共识可信集群的变更信息,则基于变更信息创建目标变更提案;将目标变更提案广播至共识可信集群的各个验证者节点。
变更提案可以为一个区块,如下所示:
其中,Epoch世代版本号可以为验证者节点在创建该提案时的世代版本号。
新增的验证者节点可以接收其他验证者节点广播的变更提案,并确定该变更提案的世代版本号,为了便于描述,将该变更提案的世代版本号称为第三世代版本号。
S502,若所述第二世代版本号落后于所述第三世代版本号,则向发送所述变更提案的验证者节点请求待更新状态信息和待更新集群变更证明,以在所述待更新集群变更证明验证通过后,根据所述待更新状态信息更新新增的所述验证者节点的状态信息。
上述第二世代版本号为新增的验证者节点的世代版本号。若第二世代版本号落后于第三世代版本号,则说明新增的验证者节点的集群状态落后于该变更提案的来源节点,此时可以向变更提案的来源节点发动集群状态请求信息,以获取到该变更提案的来源节点返回的待更新状态信息和待更新集群变更证明。然后采用S101-S104中的方案,根据待更新状态信息和待更新集群变更证明,更新新增的验证者节点的状态信息。
S503,若所述第三世代版本号落后于所述当前世代的第二世代版本号,则丢弃所述变更提案。
若第三世代版本号落后于第二世代版本号,则说明新增的验证者节点已经经历过变更提案所代表的集群变更,此时可以丢弃变更提案,不做处理。
S504,若所述第三世代版本号与所述第二世代版本号相同,则对所述变更提案进行投票,得到第一投票消息。
若第三世代版本号与第二世代版本号相同,则说明该变更提案所代表的集群变更是在新增的验证者节点的当前世代下进行的集群变更。该当前世代,是指新增的验证者节点接收到变更提案时所处的集群世代。
新增的验证者节点可以根据变更提案中所携带的信息对该变更提案进行投票,并生成投票消息。投票消息中可以包括新增的验证者节点的世代版本号,即,第二世代版本号。
S505,将所述第一投票消息广播至所述共识可信集群的所述其他验证者节点,并接收所述其他验证者节点广播的第二投票消息。
共识可信集群中的每个验证者节点在接收到与自身的当前世代匹配的变更提案时,可以生成投票消息,并将投票消息广播至集群中的其他验证者节点。即新增的验证者节点可以将生成的第一投票消息广播至共识可信集群中的其他验证者节点,并接收其他验证者节点广播的第二投票消息,第二投票消息中包括其他验证者节点的世代版本号,称为第一世代版本号。
S506,根据接收到的所述第二投票消息生成目标法定证书。
从接接收到的第二投票消息中,确定第一世代版本号与当前世代的第二世代版本号相同的第二投票消息的数量;若数量达到第一预设值,则根据共识可信集群中现有的验证者节点,生成目标验证者列表;根据目标验证者列表,生成目标法定证书,目标法定证书的世代版本号与第二世代版本号相同。
在一种可能的实现方式中,投票消息中可以携带验证者节点针对变更提案的投票结果,在获取到预设数量的第一世代版本号与第二世代版本号相同的第二投票消息后,新增的验证者节点可以基于投票消息中的投票结果以及共识可信集群中的投票规则确定该变更提案是否通过,若该变更提案不通过,则该共识可信集群不变更。若该变更提案通过,则可以确定第二世代版本号对应的集群世代下,共识可信集群中包括的验证者节点;在基于这些验证者节点的公钥,生成验证者列表,该验证者列表对共识可信集群从当前世代变更到下一世的过程进行了投票,为下一世代的验证者列表,即该验证列表应当在目标法定证书的<NextEpochState>中。
S507,基于目标法定证书,更新新增的验证者节点的状态信息,以完成共识可信集群的更新。
新增的验证者节点可以将新增的验证者节点的检查者列表更新为目标验证者列表;并更新新增的验证者节点的世代版本号以及集群的其他配置信息,从而在本验证者节点内完成此次共识可信集群的变更。
在生成目标法定证书之后,新增的验证者节点可以将目标法定证书添加至新增的验证者节点的集群变更证明中。当新增的验证者节点接收来自其他验证者节点的集群状态请求信息时,可以将更新后的状态信息和集群变更证明返回至集群状态请求信息对应的来源节点;来源节点可以根据该集群变更证明对该状态信息进行验证,并在验证通过后,同步状态信息;具体地验证过程和同步过程可以参考S101-S104与S201-S205,在此不赘述。
本实施例是以新增的验证者节点为执行主体说明共识可信集群变更时集群中现有的验证者节点内的状态信息更新过程。本领域技术人员应当明白,在新增的验证者节点加入到共识可信集群,造成共识可信集群变更时,当时的共识可信集群中的现有验证者节点可以通过S501-S507的步骤实现对自身集群状态信息的更新。
本实施例中,当共识可信集更新时,共识可信集群中现有的验证者节点可以在进行集群变更的同时生成法定证书,法定证书列表中可以包括下一世代验证者列表,从而可以对下一世代的法定证书进行验证。法定证书可以添加至集群变更证明中。当其他验证者节点请求集群同步信息时,可以将集群变更证明发送至其他验证者节点,以便其他验证者节点根据S101-S104中的步骤进行验证,从而使得验证者节点在状态同步过程中避免进行无效验证。法定证书列表中可以包括下一世代验证者列表,从而可以对下一世代的法定证书进行验证。
本申请实施例中,每个变更提案的区块中指定了当前共识可信集群的所处的世代版本号,根据该世代版本号,可以确定需要对该变更提案进行投票的验证者节点。
需要说明的是,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了对本申请中的方案进行更好的阐述,图6通过一个新增的验证者节点在加入到共识可信集群中的状态信息的更新过程对本申请中的共识可信集群的变更方法进行说明。
在共识可信集群中新增验证者节点时,可以向现有的共识可信集群中的一个验证者节点发送变更信息,比如新增节点的证书信息、新增节点所在地址、新增节点的管理者信息等。该验证者节点可以为主验证节点,基于接收到的变更信息,共识可信集群中主验证者节点可以生成一个变更提案。主验证者节点在生成变更提案后,可以把该变更提案广播至区块链中的每个验证者节点。每个验证者节点在接收到变更提案后,可以先确定该变更提案的集群世代;若该集群世代与验证者节点自身的集群世代一致,则验证者节点可以根据新增节点的信息来对变更提案进行投票,并根据投票结果生成投票消息。投票消息中包括投票的验证者节点当前的集群世代和签名信息。生成投票消息之后,每个验证者节点可以将该投票消息广播至区块链中的各个验证者节点。
验证者节点可以接收其他验证者节点广播的投票消息。验证者节点根据接收到的投票消息以及区块链约定的投票规则,可以确定该变更提案是否通过。若该变更提案通过,则共识可信集群变更。此时,共识可信集群的现有的验证者节点可以进行集群状态的更新。该新增的验证者节点可以加入到共识可信集群中,开始执行图6中的步骤。
新增的验证者节点可以确定一个目标验证者节点,该目标验证者节点可以为处于最新集群状态的验证者节点;也可以不处于最新状态的验证者节点。目标验证者节点的集群状态领先于该新增的验证者节点的集群状态。
新增的验证者节点可以向目标验证者节点请求目标状态信息和目标集群变更证明。
在接收到来自目标验证和节点的目标状态信息和目标集群变更证明后,新增的验证者节点可以对目标集群变更证明进行验证,并确定该目标集群变更证明是否验证通过。若该目标集群变更证明验证未通过,则新增的验证者节点可以重新确定新的目标验证者节点,并继续请求新的目标状态信息和目标集群变更证明。
若该目标件变更证明验证通过,则可以根据目标状态信息更新当前的状态信息,以达到更新的集群状态。
新增的验证者节点加入到共识可信集群之后,可接收集群内验证者节点广播的变更提案,变更提案具有世代版本号;新增的验证者节点也具有世代版本号。
新增的验证者节点可以判断变更提案的世代版本号与新增的验证者节点的世代版本号是否相同。
若二者相同,则说明该新增的验证者节点与该变更提案处于同一个集群世代,可以对该变更提案进行投票并生成投票消息;将该投消息广播至其他验证者节点并接收其他验证者节点广播的投票消息。根据接收到的投票消息判断该变更提案是否通过,若该变更提案不通过,则共识可信集群不变更。若该变更提案通过,则可以生成法定证书,然后将法定证书添加至集群变更证明中。之后可以更新新增的验证者节点的状态信息,新增的验证者节点达到更新的集群世代。也是就是新增的验证者节点的世代版本号会更新。
若二者不同,则可以判断新增的验证者节点的世代版本号是否落后于变更提案的世代版本号。若新增的验证者节点的世代版本号落后于变更提案的世代版本号,则可以向将广播该变更提案的来源节点作为目标验证者节点,继续进行同步该变更提案的来源节点的集群状态。若新增的变更提案的世代版本号落后于验证者节点的世代版本号,则可以丢弃该变更提案,在新增的验证者节点内,该共识可信集群不变更。
该新增的验证者节点也可以接收到变更交易。当新增的验证者节点接收到变更交易时,可以根据变更交易生成变更提案,并将该变更提案广播至共识可信集群中的其他验证者节点;同时针对于该变更提案,新增的验证者节点可以按照之前所述的变更提案的世代版本号与新增的验证者节点的世代版本号相同时的处理方法,对该变更提案进行处理。
本申请中方案解决了区块链系统在集群配置变更后的信任问题,提升了集群新节点加入同步至正确状态的效率,可以在同步区块前提前决定正确的目标状态。
参照图7,示出了本申请实施例提供的一种共识可信集群的变更装置的示意图,具体可以包括确定模块71、请求模块72、验证模块73和同步模块74,其中:
确定模块71,用于确定区块链中共识可信集群新增的验证者节点的当前世代以及共识可信集群所处的目标世代;
请求模块72,用于向处于目标世代的目标验证者节点请求目标状态信息和目标集群变更证明;
验证模块73,用于根据目标集群变更证明,对目标状态信息进行验证;
同步模块74,用于若目标状态信息通过验证,则根据目标状态信息更新新增的验证者节点的状态信息,以完成共识可信集群的变更。
在一种可能的实现方式中,上述验证模块73,包括:
法定证书列表获取子模块,用于获取目标集群变更证明中的法定证书列表,法定证书列表中包括一个或多个法定证书;
验证信息确定子模块,用于确定各个法定证书及各个法定证书对应的验证信息;
验证子模块,用于采用验证信息分别对各个法定证书进行验证;
第一判断子模块,用于若各个法定证书均通过验证,则确定目标状态信息验证通过;
第二判断子模块,用于若任一法定证书未通过验证,则确定目标状态信息验证未通过。
在一种可能的实现方式中,一个或多个法定证书在法定证书列表中具有相应的排列顺序,上述验证信息确定子模块包括:
第一法定证书验证信息确定单元,用于确定排列顺序在第一位的第一法定证书,将新增的验证者节点的检查者列表作为第一法定证书的验证信息;
第二法定证书验证信息确定单元,用于针对第二法定证书,确定第二法定证书前一位的法定证书,将前一位的法定证书中的验证者列表作为第二法定证书的验证信息,第二法定证书为法定证书列表中不在第一位的任一法定证书。
在一种可能的实现方式中,上述验证子模块包括:
确定单元,用于针对任一法定证书,确定法定证书的验证信息对应的验证者列表、法定证书的哈希值和法定证书的签名信息,法定证书的验证信息对应的验证者列表包括与共识可信集群的多个验证者节点的公钥;
签名信息验证单元,用于根据公钥和哈希值,对签名信息进行验证;
验证通过确定单元,用于若签名信息验证通过,则确定法定证书验证通过。
在一种可能的实现方式中,上述变更装置还包括:
投票模块,用于若接收到其他验证者节点广播的与当前世代匹配的变更提案,则对变更提案进行投票,得到第一投票消息;
投票消息广播模块,用于将第一投票消息广播至共识可信集群的其他验证者节点,并接收其他验证者节点广播的第二投票消息;
目标法定证书生成模块,用于根据接收到的第二投票消息生成目标法定证书;
状态信息更新模块,用于基于目标法定证书,更新新增的验证者节点的状态信息,以完成共识可信集群的更新。
在一种可能的实现方式中,其特征在于,第二投票消息包括第一世代版本号,上述目标法定证书生成模块,包括:
数量确定子模块,用于确定第一世代版本号与当前世代的第二世代版本号相同的第二投票消息的数量;
目标验证者列表生成子模块,用于若数量达到第一预设值,则根据共识可信集群中现有的验证者节点,生成目标验证者列表;
目标法定证书生成子模块,用于根据目标验证者列表,生成目标法定证书,目标法定证书的世代版本号与第二世代版本号相同。
在一种可能的实现方式中,上述状态信息更新模块包括:
验证者列表更新子模块,用于将新增的验证者节点的检查者列表更新为目标验证者列表;
世代版本号更新子模块,用于更新新增的验证者节点的世代版本号。
在一种可能的实现方式中,上述变更装置还包括:
添加模块,用于将目标法定证书添加至新增的验证者节点的集群变更证明中;
集群状态请求信息接收模块,用于接收来自其他验证者节点的集群状态请求信息,集群状态请求信息具有对应的来源节点;
返回模块,用于将更新后的状态信息和集群变更证明返回至来源节点。
在一种可能的实现方式中,变更提案具有第三世代版本号,上述变更装置还包括:
第一判断模块,用于若第三世代版本号与第二世代版本号相同,则执行对变更提案进行投票,得到投票消息;
第二判断模块,用于若第二世代版本号落后于第三世代版本号,则向发送变更提案的验证者节点请求待更新状态信息和待更新集群变更证明,以在待更新集群变更证明验证通过后,根据待更新状态信息更新新增的验证者节点的状态信息;
第三判断模块,用于若第三世代版本号落后于当前世代的第二世代版本号,则丢弃变更提案。
在一种可能的实现方式中,上述变更装置还包括:
目标变更提案创建模块,用于若接收到来自管理员的针对共识可信集群的变更信息,则基于变更信息创建目标变更提案;
目标变更提案广播模块,用于将目标变更提案广播至共识可信集群的各个验证者节点。对于装置实施例而言,由于其与方法实施例基本相似,所以描述得比较简单,相关之处参见方法实施例部分的说明即可。
图8为本申请一实施例提供的计算机设备的结构示意图。如图8所示,该实施例的计算机设备8包括:至少一个处理器80(图8中仅示出一个)处理器、存储器81以及存储在存储器81中并可在至少一个处理器80上运行的计算机程序82,处理器80执行计算机程序82时实现上述任意各个方法实施例中的步骤。
计算机设备8可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该计算机设备可包括,但不仅限于,处理器80、存储器81。本领域技术人员可以理解,图8仅仅是计算机设备8的举例,并不构成对计算机设备8的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
所称处理器80可以是中央处理单元(CentralProcessingUnit,CPU),该处理器80还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器81在一些实施例中可以是计算机设备8的内部存储单元,例如计算机设备8的硬盘或内存。存储器81在另一些实施例中也可以是计算机设备8的外部存储设备,例如计算机设备8上配备的插接式硬盘,智能存储卡(SmartMediaCard,SMC),安全数字(SecureDigital,SD)卡,闪存卡(FlashCard)等。进一步地,存储器81还可以既包括计算机设备8的内部存储单元也包括外部存储设备。存储器81用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,例如计算机程序的程序代码等。存储器81还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述各个方法实施例中的步骤。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (13)
1.一种共识可信集群的变更方法,其特征在于,应用于区块链,所述方法包括:
确定所述区块链中共识可信集群新增的验证者节点的当前世代以及所述共识可信集群所处的目标世代;
向处于所述目标世代的目标验证者节点请求目标状态信息和目标集群变更证明;
根据所述目标集群变更证明,对所述目标状态信息进行验证;
若所述目标状态信息通过验证,则根据所述目标状态信息更新新增的所述验证者节点的状态信息,以完成所述共识可信集群的变更。
2.如权利要求1所述的变更方法,其特征在于,所述根据所述目标集群变更证明,对所述目标状态信息进行验证,包括:
获取所述目标集群变更证明中的法定证书列表,所述法定证书列表中包括一个或多个法定证书;
确定各个所述法定证书及各个所述法定证书对应的验证信息;
采用所述验证信息分别对各个所述法定证书进行验证;
若各个所述法定证书均通过验证,则确定所述目标状态信息验证通过;
若任一所述法定证书未通过验证,则确定所述目标状态信息验证未通过。
3.如权利要求2所述的变更方法,其特征在于,一个或多个所述法定证书在所述法定证书列表中具有相应的排列顺序,所述确定各个所述法定证书及各个所述法定证书对应的验证信息,包括:
确定所述排列顺序在第一位的第一法定证书,将新增的所述验证者节点的检查者列表作为所述第一法定证书的验证信息;
针对第二法定证书,确定所述第二法定证书前一位的法定证书,将所述前一位的法定证书中的验证者列表作为所述第二法定证书的验证信息,所述第二法定证书为所述法定证书列表中不在第一位的任一法定证书。
4.如权利要求3所述的变更方法,其特征在于,所述采用所述验证信息分别对各个所述法定证书进行验证,包括:
针对任一所述法定证书,确定所述法定证书的验证信息对应的验证者列表、所述法定证书的哈希值和所述法定证书的签名信息,所述法定证书的验证信息对应的验证者列表包括与所述共识可信集群的多个验证者节点的公钥;
根据所述公钥和所述哈希值,对所述签名信息进行验证;
若所述签名信息验证通过,则确定所述法定证书验证通过。
5.如权利要求1-4任一项所述的变更方法,其特征在于,所述方法还包括:
若接收到其他验证者节点广播的与所述当前世代匹配的变更提案,则对所述变更提案进行投票,得到第一投票消息;
将所述第一投票消息广播至所述共识可信集群的所述其他验证者节点,并接收所述其他验证者节点广播的第二投票消息;
根据接收到的所述第二投票消息生成目标法定证书;
基于所述目标法定证书,更新新增的所述验证者节点的所述状态信息,以完成所述共识可信集群的更新。
6.如权利要求5所述的变更方法,其特征在于,所述第二投票消息包括第一世代版本号,所述根据接收到的所述第二投票消息生成目标法定证书,包括:
确定所述第一世代版本号与所述当前世代的第二世代版本号相同的所述第二投票消息的数量;
若所述数量达到第一预设值,则根据所述共识可信集群中现有的验证者节点,生成目标验证者列表;
根据所述目标验证者列表,生成所述目标法定证书,所述目标法定证书的世代版本号与所述第二世代版本号相同。
7.如权利要求6所述的变更方法,其特征在于,所述基于所述目标法定证书,更新所述状态信息,包括:
将新增的所述验证者节点的检查者列表更新为所述目标验证者列表;
更新新增的所述验证者节点的世代版本号。
8.如权利要求5所述的变更方法,其特征在于,所述方法还包括:
将所述目标法定证书添加至新增的所述验证者节点的集群变更证明中;
接收来自所述其他验证者节点的集群状态请求信息,所述集群状态请求信息具有对应的来源节点;
将更新后的所述状态信息和所述集群变更证明返回至所述来源节点。
9.如权利要求6所述的变更方法,其特征在于,所述变更提案具有第三世代版本号,在对所述变更提案进行投票,得到投票消息之前,所述方法还包括:
若所述第三世代版本号与所述第二世代版本号相同,则执行对所述变更提案进行投票,得到投票消息;
若所述第二世代版本号落后于所述第三世代版本号,则向发送所述变更提案的验证者节点请求待更新状态信息和待更新集群变更证明,以在所述待更新集群变更证明验证通过后,根据所述待更新状态信息更新新增的所述验证者节点的状态信息;
若所述第三世代版本号落后于所述当前世代的第二世代版本号,则丢弃所述变更提案。
10.如权利要求5所述的变更方法,其特征在于,所述方法还包括:
若接收到来自管理员的针对所述共识可信集群的变更信息,则基于所述变更信息创建目标变更提案;
将所述目标变更提案广播至所述共识可信集群的各个验证者节点。
11.一种共识可信集群的变更装置,其特征在于,应用于区块链,所述装置包括:
确定模块,用于确定所述区块链中共识可信集群新增的验证者节点的当前世代以及所述共识可信集群所处的目标世代;
请求模块,用于向处于所述目标世代的目标验证者节点请求目标状态信息和目标集群变更证明;
验证模块,用于根据所述目标集群变更证明,对所述目标状态信息进行验证;
同步模块,用于若所述目标状态信息通过验证,则根据所述目标状态信息更新新增的所述验证者节点的状态信息,以完成所述共识可信集群的变更。
12.一种服务器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-10任一项所述的变更方法。
13.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-10任一项所述的变更方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211119799.7A CN115225639B (zh) | 2022-09-15 | 2022-09-15 | 共识可信集群的变更方法、装置、计算机设备及介质 |
US18/368,761 US20240097919A1 (en) | 2022-09-15 | 2023-09-15 | Consensus trusted cluster changing method, computer device and computer-readable storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211119799.7A CN115225639B (zh) | 2022-09-15 | 2022-09-15 | 共识可信集群的变更方法、装置、计算机设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115225639A true CN115225639A (zh) | 2022-10-21 |
CN115225639B CN115225639B (zh) | 2022-12-27 |
Family
ID=83617674
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211119799.7A Active CN115225639B (zh) | 2022-09-15 | 2022-09-15 | 共识可信集群的变更方法、装置、计算机设备及介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20240097919A1 (zh) |
CN (1) | CN115225639B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116723200A (zh) * | 2023-08-11 | 2023-09-08 | 杭州趣链科技有限公司 | 集群变更方法、装置、电子设备及计算机可读存储介质 |
CN116846916A (zh) * | 2023-09-01 | 2023-10-03 | 武汉趣链数字科技有限公司 | 数据同步方法、装置、电子设备及计算机可读存储介质 |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107276765A (zh) * | 2017-07-04 | 2017-10-20 | 中国联合网络通信集团有限公司 | 区块链中共识的处理方法及装置 |
CN110245517A (zh) * | 2019-05-29 | 2019-09-17 | 杭州秘猿科技有限公司 | 一种区块链的跨链方法、装置、系统及电子设备 |
CN110336707A (zh) * | 2019-08-07 | 2019-10-15 | 卓尔智联(武汉)研究院有限公司 | 区块链共识装置、方法及计算机可读存储介质 |
US20190347444A1 (en) * | 2016-12-22 | 2019-11-14 | Itext Group Nv | Distributed Blockchain-Based Method for Maintaining the Validity of a File |
CN110557452A (zh) * | 2019-09-04 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 区块链的节点管理方法、装置、存储介质和计算机设备 |
CN110597832A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯云计算(北京)有限责任公司 | 基于区块链网络的政务信息处理方法、装置、电子设备及存储介质 |
CN110708170A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置以及计算机可读存储介质 |
CN110855445A (zh) * | 2019-11-08 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 一种基于区块链的证书管理方法、装置及存储设备 |
WO2020070515A1 (en) * | 2018-10-05 | 2020-04-09 | Dragon Infosec Ltd | A consensus method and framework for a blockchain system |
CN111212074A (zh) * | 2020-01-02 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 基于区块链的资格认定方法、装置、设备及存储介质 |
CN111242617A (zh) * | 2020-01-02 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 用于执行交易正确性验证的方法及装置 |
CN111275438A (zh) * | 2020-01-14 | 2020-06-12 | 北京众享比特科技有限公司 | 区块链网络的共识方法、装置、设备和存储介质 |
CN111383021A (zh) * | 2020-05-29 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 基于区块链网络的节点管理方法、装置、设备及介质 |
CN111444211A (zh) * | 2020-03-26 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 区块链共识节点校验方法、装置、设备以及存储介质 |
CN111506656A (zh) * | 2020-04-20 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 区块链系统的共识处理方法、装置及智能设备、存储介质 |
-
2022
- 2022-09-15 CN CN202211119799.7A patent/CN115225639B/zh active Active
-
2023
- 2023-09-15 US US18/368,761 patent/US20240097919A1/en active Pending
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190347444A1 (en) * | 2016-12-22 | 2019-11-14 | Itext Group Nv | Distributed Blockchain-Based Method for Maintaining the Validity of a File |
CN107276765A (zh) * | 2017-07-04 | 2017-10-20 | 中国联合网络通信集团有限公司 | 区块链中共识的处理方法及装置 |
WO2020070515A1 (en) * | 2018-10-05 | 2020-04-09 | Dragon Infosec Ltd | A consensus method and framework for a blockchain system |
CN110245517A (zh) * | 2019-05-29 | 2019-09-17 | 杭州秘猿科技有限公司 | 一种区块链的跨链方法、装置、系统及电子设备 |
CN110336707A (zh) * | 2019-08-07 | 2019-10-15 | 卓尔智联(武汉)研究院有限公司 | 区块链共识装置、方法及计算机可读存储介质 |
CN110557452A (zh) * | 2019-09-04 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 区块链的节点管理方法、装置、存储介质和计算机设备 |
CN110597832A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯云计算(北京)有限责任公司 | 基于区块链网络的政务信息处理方法、装置、电子设备及存储介质 |
CN110855445A (zh) * | 2019-11-08 | 2020-02-28 | 腾讯科技(深圳)有限公司 | 一种基于区块链的证书管理方法、装置及存储设备 |
CN110708170A (zh) * | 2019-12-13 | 2020-01-17 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置以及计算机可读存储介质 |
CN111212074A (zh) * | 2020-01-02 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 基于区块链的资格认定方法、装置、设备及存储介质 |
CN111242617A (zh) * | 2020-01-02 | 2020-06-05 | 支付宝(杭州)信息技术有限公司 | 用于执行交易正确性验证的方法及装置 |
CN111275438A (zh) * | 2020-01-14 | 2020-06-12 | 北京众享比特科技有限公司 | 区块链网络的共识方法、装置、设备和存储介质 |
CN111444211A (zh) * | 2020-03-26 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 区块链共识节点校验方法、装置、设备以及存储介质 |
CN111506656A (zh) * | 2020-04-20 | 2020-08-07 | 腾讯科技(深圳)有限公司 | 区块链系统的共识处理方法、装置及智能设备、存储介质 |
CN111383021A (zh) * | 2020-05-29 | 2020-07-07 | 腾讯科技(深圳)有限公司 | 基于区块链网络的节点管理方法、装置、设备及介质 |
Non-Patent Citations (2)
Title |
---|
JAYAPRIYA JAYABALAN;JEYANTHI N: "A Study on Distributed Consensus Protocols and Algorithms: The Backbone of Blockchain Networks", 《 2021 INTERNATIONAL CONFERENCE ON COMPUTER COMMUNICATION AND INFORMATICS (ICCCI)》 * |
薛立德: "区块链共识算法及其应用研究", 《中国优秀博士学位论文全文数据库》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116723200A (zh) * | 2023-08-11 | 2023-09-08 | 杭州趣链科技有限公司 | 集群变更方法、装置、电子设备及计算机可读存储介质 |
CN116723200B (zh) * | 2023-08-11 | 2023-11-10 | 武汉趣链数字科技有限公司 | 集群变更方法、装置、电子设备及计算机可读存储介质 |
CN116846916A (zh) * | 2023-09-01 | 2023-10-03 | 武汉趣链数字科技有限公司 | 数据同步方法、装置、电子设备及计算机可读存储介质 |
CN116846916B (zh) * | 2023-09-01 | 2023-12-08 | 武汉趣链数字科技有限公司 | 数据同步方法、装置、电子设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20240097919A1 (en) | 2024-03-21 |
CN115225639B (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115225639B (zh) | 共识可信集群的变更方法、装置、计算机设备及介质 | |
CN111466096B (zh) | 提供不可变记录的系统和方法 | |
US11914712B1 (en) | Blockchain based secure naming and update verification | |
CN108683539B (zh) | 区块链网络的管理方法、装置、介质及电子设备 | |
CN107579848B (zh) | 实用拜占庭容错共识机制中动态更改共识节点的方法 | |
US8347082B2 (en) | Method of validation public key certificate and validation server | |
CN108769230B (zh) | 交易数据存储方法、装置、服务器及存储介质 | |
CN110417502B (zh) | 一种区块链节点时钟共识方法及装置 | |
CN105701372A (zh) | 一种区块链身份构建及验证方法 | |
US20080301793A1 (en) | Apparatus and method of verifying online certificate for offline device | |
CN113746638B (zh) | Nft存储方法、nft还原方法、计算机设备和存储介质 | |
CN112100282B (zh) | 联盟链的数据同步方法、装置、可读介质及电子设备 | |
CN114338715A (zh) | 数据同步方法、区块链系统、终端设备及存储介质 | |
CN114221972A (zh) | 中继区块链系统以及跨链交易方法 | |
CN114422155B (zh) | 提案共识执行方法、区块链系统、设备和存储介质 | |
US20220294637A1 (en) | System and Method of Establishing a Trusted Relationship in a Distributed System | |
CN111787034B (zh) | 区块生成方法、同步方法、装置、区块链系统和存储介质 | |
CN111061813B (zh) | 用于区块链网络中的数据同步的方法、装置和计算设备 | |
CN116009940A (zh) | 共识集群的变更方法、装置、计算机设备及介质 | |
US20210392002A1 (en) | Cross-certification for secure binding of cryptographic systems | |
CN110098934B (zh) | 一种电子数据存证方法、装置及终端 | |
CN116846916B (zh) | 数据同步方法、装置、电子设备及计算机可读存储介质 | |
CN112182009A (zh) | 区块链的数据更新方法及装置、可读存储介质 | |
CN116723200B (zh) | 集群变更方法、装置、电子设备及计算机可读存储介质 | |
CN114466034B (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 |