CN114389815A - 用于选举区块链网络中节点的方法及其相关产品 - Google Patents

用于选举区块链网络中节点的方法及其相关产品 Download PDF

Info

Publication number
CN114389815A
CN114389815A CN202111511719.8A CN202111511719A CN114389815A CN 114389815 A CN114389815 A CN 114389815A CN 202111511719 A CN202111511719 A CN 202111511719A CN 114389815 A CN114389815 A CN 114389815A
Authority
CN
China
Prior art keywords
block
node
proposal
nodes
proof
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.)
Pending
Application number
CN202111511719.8A
Other languages
English (en)
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.)
Hebei Xiong'an New Area Management Committee
Beijing Peersafe Technology Co ltd
Original Assignee
Hebei Xiong'an New Area Management Committee
Beijing Peersafe 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 Hebei Xiong'an New Area Management Committee, Beijing Peersafe Technology Co ltd filed Critical Hebei Xiong'an New Area Management Committee
Priority to CN202111511719.8A priority Critical patent/CN114389815A/zh
Publication of CN114389815A publication Critical patent/CN114389815A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种用于选举区块链网络中节点的方法、设备、区块链***和计算机程序产品,其中区块链网络包括多个共识节点,其中所述多个共识节点包括一负责区块提案的提案节点和其他节点,其中所述方法包括在其他节点处执行以下操作:接收第i区块的提案节点发送的第i区块提案信息,其中所述第i区块提案信息包含第i+1区块的证明集合;从所述第i区块提案信息中提取所述i+1区块的证明集合;以及基于所述第i+1区块的证明集合和所述多个共识节点的属性信息,确定第i+1区块的提案节点,其中i为大于零的整数,并且所述第i+1区块为所述第i区块的下一相邻区块。通过本发明的技术方案,可以有效提高区块链共识算法的安全性。

Description

用于选举区块链网络中节点的方法及其相关产品
技术领域
本发明一般地涉及区块链技术领域。更具体地,本发明涉及一种用于选举区块链网络中节点的方法、设备、区块链***和计算机程序产品。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述可包括可以探究的概念,但不一定是之前已经想到或者已经探究的概念。因此,除非在此指出,否则在本部分中描述的内容对于本申请的说明书和权利要求书而言不是现有技术,并且并不因为包括在本部分中就承认是现有技术。
区块链***是一种去中心化的分布式记账***,而区块链共识算法是区块链***中的核心部分。通常,可以根据选主策略将区块链共识算法分为多个类型,其中较为常见的类型为选举类共识算法。该选举类共识算法主要指在每一轮共识过程中选出当前轮次的记账节点,具体选举过程涉及各个节点依据当前轮次信息和节点的weight值预判下一轮次的节点(也即提案节点)。可以看出,这种选举方式对节点的选举具有较强的规律性,使得恶意节点容易对下一轮所选举的节点进行预测并进行攻击,其存在一定的安全隐患。
发明内容
为了至少解决上述背景技术部分所描述的技术问题,本发明提出了一种用于选举区块链网络中节点的方案。利用本发明的方案,区块链网络中的共识节点可以基于当前区块提案信息中的证明集合来计算下一区块的提案节点,从而实现对提案节点的随机选举。可以看出,本发明的方案可以有效提高区块链共识算法的安全性。鉴于此,本发明在如下的多个方面提供解决方案。
本发明的第一方面提供了一种用于选举区块链网络中节点的方法,其中区块链网络包括多个共识节点,其中所述多个共识节点包括一负责区块提案的提案节点和其他节点,所述方法包括在其他节点处执行以下操作:接收第i区块的提案节点发送的第i区块提案信息,其中所述第i区块提案信息包含第i+1区块的证明集合;从所述第i区块提案信息中提取所述 i+1区块的证明集合;以及基于所述第i+1区块的证明集合和所述多个共识节点的属性信息,确定第i+1区块的提案节点,其中i为大于零的整数,并且所述第i+1区块为所述第i区块的下一相邻区块。
在一个实施例中,还包括:生成第i+2区块的证明;以及将所述第i+2 区块的证明发送至所述第i+1区块的提案节点,其中所述第i+2区块为所述第i+1区块的下一相邻区块。
在一个实施例中,其中每个共识节点配置有密钥,其中生成第i+2区块的证明包括:获取第i+2区块的高度值;利用可验证随机函数对本地的密钥中的私钥和第i+2区块的高度值进行处理,以得到所述第i+2区块的证明。
在一个实施例中,其中从所述第i区块提案信息中提取所述第i+1区块的证明集合包括:对所述第i区块提案信息的来源进行合法性验证;以及响应对所述第i区块提案信息的来源的合法性验证通过,执行提取所述第i+1区块的证明集合的操作。
在一个实施例中,其中确定第i+1区块的提案节点包括:利用预定函数对所述第i+1区块的证明集合和所述多个共识节点的属性信息进行处理,以基于处理结果确定所述第i+1区块的提案节点。
在一个实施例中,其中所述方法还包括:当i=1时,根据所述多个共识节点的创世块信息确定第1区块的提案节点;生成第2区块的证明;以及将所述第2区块的证明发送至所述第1区块的提案节点。
本发明的第二方面提供了一种用于选举区块链网络中节点的方法,其中区块链网络包括多个共识节点,其中所述多个共识节点包括一负责区块提案的提案节点和其他节点所述方法包括在负责区块提案的提案节点处执行以下操作:接收所述其他节点发送的第i+1区块的证明;基于所接收到的所有第i+1区块的证明,确定所述第i+1区块的证明集合;生成包含有所述第i+1区块的证明集合的第i区块提案信息;向所述其他节点广播所述第i区块提案信息,以使所述其他节点基于所述第i区块提案信息确定第i+1区块的提案节点,其中i为大于零的整数,并且所述第i+1区块为所述第i区块的下一相邻区块。
在一个实施例中,其中确定所述第i+1区块的证明集合包括:对接收到的所有第i+1区块的证明进行合法性验证;将通过合法性验证的第i+1 区块的证明收集至所述第i+1区块的证明集合中。
在一个实施例中,其中每一第i+1区块的证明基于发送节点的私钥和第i+1区块的高度值所确定,其包括经所述私钥加密的证明内容,其中对接收到的所有第i+1区块的证明进行合法性验证包括:获取每一第i+1区块的证明的发送节点的公钥;利用可验证随机函数对所述发送节点的公钥、经所述私钥加密的证明内容和第i+1区块的高度值进行验证处理,以实现对每一第i+1区块的证明的合法性验证。
本发明的第三方面提供了一种设备,包括:处理器;以及存储器,其存储用于选举区块链网络中节点的计算机指令,当所述计算机指令由所述处理器运行时,使得所述设备执行前文第一方面以及在下文多个实施例中所述的方法或者执行前文第二方面以及下文多个实施例中所述的方法。
本发明的第四方面提供了一种计算机程序产品,包括用于选举区块链网络中节点的程序指令,当所述程序指令由处理器执行时,使得实现前文第一方面以及在下文多个实施例中所述的方法或者执行前文第二方面以及下文多个实施例中的方法。
本发明的第五方面提出了一种区块链***,包括:多个共识节点,其中所述多个共识节点包括一负责区块提案的提案节点和其他节点,所述提案节点配置成根据前文第二方面以及在下文多个实施例中所述的方法,以向其他节点广播当前区块提案信息,所述其他节点配置成执行根据前文第一方面以及在下文多个实施例中所述的方法,以基于当前区块提案信息确定下一区块的提案节点。
利用本发明所提供的方案,区块链中的共识节点可以根据当前区块提案信息中的证明集合来计算下一区块的提案节点。具体地,当前区块提案信息中的证明集合包含多个共识节点对下一区块的证明,且每个共识节点均无法预测自身外的节点对下一区块的证明。特别地,在生成证明过程中引入可验证随机函数,使得证明的生成过程更加安全以及所生成的证明更具随机性和保密性。基于此,本发明利用证明集合所计算出的提案节点具有随机性,能够有效避免恶意节点对提案节点的预测,从而提高区块链共识算法的安全性。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出根据本发明实施例的区块链网络的架构图;
图2是示出根据本发明实施例的用于选举区块链网络中节点的方法的流程图;
图3是示出根据本发明实施例的用于选举区块链网络中节点的另一方法的流程图;以及
图4是示出根据本发明实施例的共识节点的结构图。
具体实施方式
下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
应当理解,本发明的权利要求、说明书及附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。本发明的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施方式的目的,而并不意在限定本发明。如在本发明说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本发明说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合附图来详细描述本发明的具体实施方式。
为了能够更好地理解本发明的方案,以下将结合图1对区块链网络进行简单说明。
图1是示出根据本发明实施例的区块链网络的架构图100。该区块链网络可以包括多个共识节点,这里的共识节点可以理解为区块链网络中可以共享区块链数据、并可以参与区块共识过程的节点。
如图1所示,区块链网络可以包括A、B、C、D四个共识节点,并由节点A、B、C、D组网所形成。可以理解的是,这里仅为了说明的目的以四个共识节点为例对区块链网络进行阐述,并不对区块链网络中共识节点的数量进行限制。在一个实施例中,每次在有“出块”需求时,需要从区块链网络的共识节点中选举出一提案节点来对区块进行提案。而对于提案节点的选举,本发明的背景技术中提及采用轮次信息和节点权重信息来选举节点容易被恶意节点预测并攻击。为了解决该技术问题,本发明提出如图2中所示出的技术方案。
图2是示出根据本发明实施例的用于选举区块链网络中节点的方法200的流程图。该区块链网络可以包括多个共识节点,其中多个共识节点可以包括其他节点和负责区块提案的提案节点,并且每个其他节点可以执行图2中所示的步骤。可以理解的是,这里的区块链网络和共识节点可以具有与前文结合图1所描述的区块链网络和共识节点相同的通用属性,并且通过本发明的方案得到进一步性能优化和提升。
对于每个前述的其他节点,在步骤S201处,可以接收第i区块的提案节点发送的第i区块提案信息。在一些实施场景中,前述的第i区块提案信息可以包含第i+1区块的证明集合。在该场景下,第i+1区块的证明集合可以包括每个前述的其他节点对第i+1区块的证明,而每个证明的生成过程可以涉及区块的高度值以及节点的私钥。这里的i为大于零的整数,并且前述的第i+1区块为第i区块的下一相邻区块。
在一个实施例中,每个前述的共识节点均配置有密钥,每个其他节点对第i+1区块的证明具体可以利用可验证随机函数对本地的密钥中的私钥和第i+1区块的高度值进行处理来获得。例如,可以通过proof= VRF.CreateProof(KeyPair.PrivateKey,Block.Height)来获取证明。其中, KeyPair.PrivateKey表示私钥,Block.Height表示区块高度值。而可验证随机函数(Verifiable Random Function,VRF)是一种将输入映射为可验证的伪随机输出的加密方案,其所得为一随机数,并具有可验证性、唯一性和随机性等优势。基于此,前述的证明集合中的证明同样具有可验证性、唯一性和随机性等优势。可以理解的是,这里对证明集合及其中证明的描述仅是一种示例性说明,并不对本发明的方案进行限制。
接着,在步骤S202处,可以从前述第i区块提案信息中提取i+1区块的证明集合。在一些实施场景中,可以对第i区块提案信息的来源进行合法性验证,并在合法性验证通过后执行证明集合的提取操作,从而有效避免来自恶意节点的干扰信息。在该场景下,可以利用预定函数实现对第i 区块提案信息的来源的合法性验证。具体地,当i=1时,可以使用函数ProposerSeekByGenesis(genesis,[A,B,C,D])来验证第1区块提案信息的来源。而当i≥2时,可以使用函数ProposerSeek(ProofSet<i>,[A,B,C,D])来验证第i区块提案信息的来源。其中ProofSet<i>表示第i区块的证明集合,而A、B、C、D表示区块链中的各个共识节点,这里仅为了说明的目的以四个共识节点为例对预定函数进行阐述,并不对区块链网络中共识节点的数量进行限制。可以理解的是,这里关于提案信息的来源的合法性验证的描述仅是一种示例性说明,本发明的方案并不受此限制。
接着,在步骤S203处,可以基于前述的第i+1区块的证明集合和多个共识节点的属性信息来确定第i+1区块的提案节点。在一个实施例中,可以利用函数ProposerSeek(ProofSet<i+1>,[A,B,C,D])来确定第i+1区块的提案节点。其中ProofSet<i+1>为第i+1区块的证明集合,而A、B、C、 D表示区块链中的各个共识节点,各个共识节点的属性信息可以包括但不限于网络地址信息。这里以四个共识节点为例对提案节点的确定过程进行示例性阐述,并不对区块链网络中共识节点的数量进行限制。进一步,上文和下文讨论所引用的各类函数仅仅是示例性的而非限制性的,本领域技术人员根据本发明的教导也可以想到使用其他合适的函数或算法来执行例如生成证明或确定提案节点等操作,而这些依然落入到本发明的保护范围内。
在一个实施例中,关于第1区块的提案节点的确定具体可以涉及区块链网络中各个共识节点的创世块信息。在该场景下,在区块链网络中各个共识节点初始运行阶段,每个共识节点的创世块信息是一致的,可以利用函数ProposerSeekByGenesis(genesis,[A,B,C,D])来确定第1区块的提案节点。具体计算过程可以涉及对各个共识节点的创世块进行hash运算以得到哈希值。接着,利用哈希值对节点数取模运行以得到第1区块的提案节点。
在一个实施例中,在每次确定完区块的提案节点后,可以生成关于该区块的下一相邻区块的证明,并把下一相邻区块的证明发送至该区块。例如,在整个区块链网络的生命周期内,在确定了第1区块的提案节点后,可以生成第2区块的证明,并将第2区块的证明发送至第1区块的提案节点。而在确定了第2区块的提案节点后,可以生成第3区块的证明,并将第3区块的证明发送至第2区块的提案节点,如此循环。
图3是示出根据本发明实施例的用于选举区块链网络中节点的另一方法300的流程图。该区块链网络可以包括多个共识节点,其中多个共识节点可以包括其他节点和负责区块提案的提案节点,并且提案节点可以执行图3中所示的步骤。可以理解的是,这里的区块链网络和共识节点可以具有与前文结合图1所描述的区块链网络和共识节点相同的通用属性,并且可以是前文结合图2所描述的区块链网络和共识节点。
在步骤S301处,可以接收其他节点发送的第i+1区块的证明。在一个实施例中,如前所述,第i+1区块的证明可以由前述的其他节点利用可验证随机函数对本地的私钥和第i+1区块的高度值进行处理来确定。接着,在步骤S302处,可以基于所接收到的所有第i+1区块的证明来确定第i+1 区块的证明集合。在一个实施例中,每一第i+1区块的证明包括经前述私钥加密的证明内容,可以利用可验证随机函数(例如函数VRF.VerfiyProof) 对每个前述的其他节点的公钥、前述的证明内容和第i+1区块的高度值进行验证处理,以实现对证明集合中每个证明的合法性验证,并且将通过合法性验证的第i+1区块的证明收集至第i+1区块的证明集合中。而证明集合的大小需要大于阈值,例如可以大于或等于区块链网络中半数以上的节点个数。可以理解的是,这里对证明集合的描述仅是一种示例性说明,并不对本发明的技术方案进行限制。
接着,在步骤S303处,可以生成包含有前述第i+1区块的证明集合的第i区块提案信息。在一个实施例中,第i区块的提案节点在对第i+1 区块的证明集合合法性验证通过后,可以生成第i区块提案信息。其中第 i区块提案信息可以包含第i区块的相关信息以及第i+1区块的证明集合,而i为大于零的整数,并且第i+1区块为第i区块的下一相邻区块。接着,在步骤S304处,可以向前述的其他节点广播该第i区块提案信息。基于此,可以使其他节点基于前述的第i区块提案信息确定第i+1区块的提案节点。而对于提案节点的确定过程具体可以参照图2中所描述的第1区块的提案节点和第i区块(i≥2)的提案节点的确定过程。
为了能够更好的理解本发明的技术方案,以下将结合图1中的共识节点A、B、C以及D为例来对本发明的技术方案进一步阐述。
初始化启动阶段:设定区块链网络中的A、B、C以及D四个共识节点均处于初始运行状态。在一些实施场景中,各个共识节点都配置有一堆公私钥对(KeyPair)和实例化了一个VRF对象。其中VRF对象可以支持证明的生成和合法性验证。例如,可以通过函数proof=VRF.CreateProof(KeyPair.PrivateKey,Block.Height)来生成证明,其中KeyPair.PrivateKey表示私钥,而Block.Height表示区块高度值。另外还可以通过函数VRF.VerfiyProof(proof.PublicKey,proof.Data,Block.Height)验证证明的合法性,其中PublicKey表示KeyPair.PrivateKey对应的公钥, Data表示经私钥签名的证明内容,Block.Height表示区块高度值。在 VRF.VerfiyProof返回true时,表示证明合法有效。
在区块链网络中共识节点刚启动时,需要判断哪个共识节点负责区块 1(即Block.Height=1)的提案。由于***初始状态时,每个共识节点的创世块的信息是一致的,所以可以使用创世区块的信息来推导区块1的提案节点。在一个实施例中,可以利用函数ProposerSeekByGenesis进行推导。具体涉及可以对创世区块进行哈希运算,然后利用得到的哈希值对节点数取模运行,即可得到区块1的提案节点。
假设经过上述计算确定节点A为区块1的提案节点,即A=ProposerSeekByGenesis(genesis,[A,B,C,D])。接着,节点B、C和D可以分别创建区块2的证明:
proof_b<2>=B.VRF.CreateProof(B.KeyPair.PrivateKey,2);
proof_c<2>=C.VRF.CreateProof(C.KeyPair.PrivateKey,2);
proof_d<2>=D.VRF.CreateProof(D.KeyPair.PrivateKey,2)。
接着,节点B、C和D将各自创建的证明发送至节点A。在A节点在接收到区块2的证明proof_b<2>、proof_c<2>和proof_d<2>后,分别向节点B、C和D发回响应。而在节点B、C和D依次接收到节点A发回的响应时,***的启动阶段完成。
运行阶段:节点A在收到区块2的证明时,需要使用函数(例如 VRF.VerfiyProof)验证证明的合法性,并在确定证明合法有效时,将其收集至区块2的证明集合中。在一个实施例中,关于区块2的证明的合法性验证过程可以包括对证明proof_b<2>、proof_c<2>和proof_d<2>的验证。例如,使用A.VRF.VerifyProof(proof_b<2>.PublicKey,proof_b.Data,2)验证 proof_b<2>的合法性,使用A.VRF.VerifyProof(proof_c<2>.PublicKey,proof_c.Data,2)验证proof_c<2>的合法性,以及使用函数 A.VRF.VerifyProof(proof_d<2>.PublicKey,proof_d.Data,2)验证proof_d<2> 的合法性。
节点A不仅可以获取区块2的证明集合ProofSet<2>,还需要负责区块1的提案。接着,将提案Proposal_1(其中Proposal_1包含ProofSet<2>) 广播至节点B、C和D。接着,节点B、C和D在接收到提案Proposal_1 后,可以使用函数ProposerSeekByGenesis(genesis,[A,B,C,D])验证 Proposal_1的合法性。接着,在完成合法性验证后,各个共识节点将对提案Proposal_1产生投票Vote_1,并将投票Vote_1发送至区块2的提案节点。在一个实施例中,对提案Proposal_1产生投票Vote_1的具体过程可以涉及创建区块3的证明、将区块3的证明附加至投票中以及计算区块2 的提案节点。
下面将以节点B为例对投票处理过程进一步阐述。具体可以利用函数 proof_b<3>=B.VRF.CreateProof(B.KeyPair.PrivateKey,3)来创建 proof_b<3>=B.VRF.CreateProof(B.KeyPair.PrivateKey,3)。接着,可以将证明附加至Vote_b_1中(例如Vote_b_1.Assgin(proof_b<3>))。接着,可以利用函数C=ProposerSeek(ProofSet<2>,[A,B,C,D])计算区块2的提案节点(假设区块2的提案节点为C)。然后,将Vote_b_1发送至节点C。同理,节点A和节点D可参照节点B的投票处理过程将Vote_a_1和Vote_d_1 发送至节点C。
当节点C分别接收到Vote_a_1、Vote_b_1和Vote_d_1等投票信息,分别解析投票信息中的区块3的证明proof_a<3>、proof_b<3>和 proof_d<3>。需要使用函数(例如VRF.VerfiyProof)验证证明的合法性,并在确定证明合法有效时,将其收集至区块3的证明集合中。在一个实施例中,关于区块3的证明的合法性验证过程可以包括对证明proof_a<3>、 proof_b<3>和proof_d<3>的验证。例如,可以使用函数 A.VRF.VerifyProof(proof_a<3>.PublicKey,proof_a.Data,3)验证proof_a<3> 的合法性,使用A.VRF.VerifyProof(proof_b<3>.PublicKey,proof_b.Data,3) 验证proof_b<3>的合法性,以及可以使用函数A.VRF.VerifyProof(proof_d<3>.PublicKey,proof_d.Data,3)验证proof_d<3> 的合法性。
节点C不仅可以获取区块3的证明集合ProofSet<3>,还需要负责区块2的提案。接着,将提案Proposal_2(其中Proposal_2包含ProofSet<3>) 广播至节点A、B和D。接着,节点A、B和D在接收到提案Proposal_2 后,可以使用函数ProposerSeek(ProofSet<2>,[A,B,C,D])验证Proposal_2 的合法性。接着,在完成合法性验证后,各个共识节点将对提案Proposal_2 产生投票Vote_2,并将投票Vote_2发送至区块3的提案节点。在一个实施例中,对提案Proposal_2产生投票Vote_2的具体过程可以涉及创建区块4的证明、将区块4的证明附加至投票中以及计算区块3的提案节点。
下面将以节点D为例对投票处理过程进一步阐述。具体可以利用函数 proof_d<4>=D.VRF.CreateProof(D.KeyPair.PrivateKey,4)来创建proof_d<4>=D.VRF.CreateProof(D.KeyPair.PrivateKey,4)。接着,可以将证明附加至Vote_d_2中(例如Vote_d_2.Assgin(proof_d<4>))。接着,可以利用函数A=ProposerSeek(ProofSet<3>,[A,B,C,D])计算区块3的提案节点(假设区块3的提案节点为A)。然后,将Vote_d_2发送至节点A。同理,节点B和节点C可参照节点D的投票处理过程将Vote_b_2和 Vote_c_2发送至节点A。
当节点A分别接收到Vote_b_2、Vote_c_2和Vote_d_2等投票信息,分别解析投票信息中的区块4的证明proof_b<4>、proof_c<4>和 proof_d<4>。需要使用函数(例如VRF.VerfiyProof)验证证明的合法性,并在确定证明合法有效时,将其收集至区块4的证明集合中。在一个实施例中,关于区块4的证明的合法性验证过程可以包括对证明proof_b<4>、 proof_c<4>和proof_d<4>的验证。例如,可以使用函数 A.VRF.VerifyProof(proof_b<4>.PublicKey,proof_a.Data,4)验证proof_b<4> 的合法性,使用A.VRF.VerifyProof(proof_c<4>.PublicKey,proof_c.Data,4) 验证proof_c<4>的合法性,以及可以使用函数A.VRF.VerifyProof(proof_d<4>.PublicKey,proof_d.Data,4)验证proof_d<4> 的合法性。
上述过程随着区块链网络中新的区块的出现会持续循环。在每次循环确定区块的提案节点时,每个共识节点均无法预测到自身外的节点所创建的证明,也即每个共识节点所创建的证明相对其他节点都是随机的。基于此,通过证明集合实时计算出的提案节点具有随机性,能够有效避免恶意节点对提案节点的预测,从而提高区块链共识算法的安全性。
图4是示出根据本发明实施例的共识节点400的示意框图。该共识节点400可以包括根据本发明实施例的设备401以及其***设备和外部网络。如前所述,该共识节点(例如通过设备401)实现生成包含有区块的证明集合的区块提案信息或者利用区块提案信息来确定区块的提案节点等操作,以实现前述结合图2或图3所述的本发明的方案。
如图4中所示,设备401可以包括CPU4011,其可以是通用CPU、专用CPU或者其他信息处理以及程序运行的执行单元。进一步,设备401 还可以包括大容量存储器4012和只读存储器ROM 4013,其中大容量存储器4012可以配置用于存储各类数据,包括区块信息、证明、提案信息等以及区块链网络所需的各种程序,ROM 4013可以配置成存储对于设备401的加电自检、***中各功能模块的初始化、***的基本输入/输出的驱动程序及引导操作***所需的数据。
进一步,设备401还包括其他的硬件平台或组件,例如示出的TPU (TensorProcessing Unit,张量处理单元)4014、GPU(Graphic Processing Unit,图形处理器)4015、FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)4016和MLU(MemoryLogic Unit),存储器逻辑单元) 4017。可以理解的是,尽管在设备401中示出了多种硬件平台或组件,但这里仅仅是示例性的而非限制性的,本领域技术人员可以根据实际需要增加或移除相应的硬件。例如,设备401可以仅包括CPU作为公知硬件平台和另一硬件平台作为本发明的测试硬件平台。
本发明的设备401还包括通信接口4018,从而可以通过该通信接口 4018连接到局域网/无线局域网(LAN/WLAN)405,进而可以通过 LAN/WLAN连接到本地服务器406或连接到因特网(“Internet”)407和远程服务器408和409。替代地或附加地,本发明的设备401还可以通过通信接口4018基于无线通信技术直接连接到因特网或蜂窝网络,例如基于第三代(“3G”)、***(“4G”)或第5代(“5G”)的无线通信技术。
设备401的***设备可以包括显示装置402、输入装置403以及数据传输接口404。在一个实施例中,显示装置402可以例如包括一个或多个扬声器和/或一个或多个视觉显示器4。输入装置403可以包括例如键盘、鼠标、麦克风、姿势捕捉相机,或其他输入按钮或控件,其配置用于接收数据的输入或用户指令。数据传输接口404可以包括例如串行接口、并行接口或通用串行总线接口(“USB”)、小型计算机***接口(“SCSI”)、串行ATA、火线(“FireWire”)、PCI Express和高清多媒体接口(“HDMI”) 等,其配置用于与其他设备或***的数据传输和交互。
本发明的设备401的上述CPU 4011、大容量存储器4012、只读存储器ROM 4013、TPU4014、GPU 4015、FPGA 4016、MLU 4017和通信接口4018可以通过总线4019相互连接,并且通过该总线与***设备实现数据交互。在一个实施例中,通过该总线4019,CPU 4011可以控制设备401 中的其他硬件组件及其***设备。
在工作中,本发明的设备401的处理器CPU 4011可以通过输入装置 403或数据传输接口404获取提案节点的区块提案信息或其他节点的区块证明,并调取存储于存储器4012中的计算机程序指令或代码对获取到的信息进行处理,以便确定区块的提案节点。
从上面关于本发明模块化设计的描述可以看出,本发明的***可以根据应用场景或需求进行灵活地布置而不限于附图所示出的架构。进一步,还应当理解,本发明示例的执行操作的任何模块、单元、组件、服务器、计算机或设备可以包括或以其他方式访问计算机可读介质,诸如存储介质、计算机存储介质或数据存储设备(可移除的)和/或不可移动的)例如磁盘、光盘或磁带。计算机存储介质可以包括以用于存储信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质,例如计算机可读指令、数据结构、程序模块或其他数据。基于此,本发明也公开了一种计算机可读存储介质,其上存储有选举区块链网络中节点的计算机可读指令,该计算机可读指令被一个或多个处理器执行时,实现在前结合附图所描述的方法和操作。
虽然本说明书已经示出和描述了本发明的多个实施方式,但对于本领域技术人员显而易见的是,这样的实施方式是仅以示例的方式提供的。本领域技术人员在不偏离本发明思想和精神的情况下想到许多更改、改变和替代的方式。应当理解在实践本发明的过程中,可以采用本文所描述的本发明实施方式的各种替代方案。所附权利要求书旨在限定本发明的保护范围,并因此覆盖这些权利要求范围内的模块组成、等同或替代方案。

Claims (12)

1.一种用于选举区块链网络中节点的方法,其中区块链网络包括多个共识节点,其中所述多个共识节点包括一负责区块提案的提案节点和其他节点,所述方法包括在其他节点处执行以下操作:
接收第i区块的提案节点发送的第i区块提案信息,其中所述第i区块提案信息包含第i+1区块的证明集合;
从所述第i区块提案信息中提取所述i+1区块的证明集合;以及
基于所述第i+1区块的证明集合和所述多个共识节点的属性信息,确定第i+1区块的提案节点,其中i为大于零的整数,并且所述第i+1区块为所述第i区块的下一相邻区块。
2.根据权利要求1所述的方法,还包括:
生成第i+2区块的证明;以及
将所述第i+2区块的证明发送至所述第i+1区块的提案节点,其中所述第i+2区块为所述第i+1区块的下一相邻区块。
3.根据权利要求2所述的方法,其中每个共识节点配置有密钥,其中生成第i+2区块的证明包括:
获取第i+2区块的高度值;
利用可验证随机函数对本地的密钥中的私钥和第i+2区块的高度值进行处理,以得到所述第i+2区块的证明。
4.根据权利要求1所述的方法,其中从所述第i区块提案信息中提取所述第i+1区块的证明集合包括:
对所述第i区块提案信息的来源进行合法性验证;以及
响应对所述第i区块提案信息的来源的合法性验证通过,执行提取所述第i+1区块的证明集合的操作。
5.根据权利要求1至4中任一项所述的方法,其中确定第i+1区块的提案节点包括:
利用预定函数对所述第i+1区块的证明集合和所述多个共识节点的属性信息进行处理,以基于处理结果确定所述第i+1区块的提案节点。
6.根据权利要求5所述的方法,其中所述方法还包括:
当i=1时,根据所述多个共识节点的创世块信息确定第1区块的提案节点;
生成第2区块的证明;以及
将所述第2区块的证明发送至所述第1区块的提案节点。
7.一种用于选举区块链网络中节点的方法,其中区块链网络包括多个共识节点,其中所述多个共识节点包括一负责区块提案的提案节点和其他节点所述方法包括在负责区块提案的提案节点处执行以下操作:
接收所述其他节点发送的第i+1区块的证明;
基于所接收到的所有第i+1区块的证明,确定所述第i+1区块的证明集合;
生成包含有所述第i+1区块的证明集合的第i区块提案信息;
向所述其他节点广播所述第i区块提案信息,以使所述其他节点基于所述第i区块提案信息确定第i+1区块的提案节点,其中i为大于零的整数,并且所述第i+1区块为所述第i区块的下一相邻区块。
8.根据权利要求7所述的方法,其中确定所述第i+1区块的证明集合包括:
对接收到的所有第i+1区块的证明进行合法性验证;
将通过合法性验证的第i+1区块的证明收集至所述第i+1区块的证明集合中。
9.根据权利要求8所述的方法,其中每一第i+1区块的证明基于发送节点的私钥和第i+1区块的高度值所确定,其包括经所述私钥加密的证明内容,其中对接收到的所有第i+1区块的证明进行合法性验证包括:
获取每一第i+1区块的证明的发送节点的公钥;
利用可验证随机函数对所述发送节点的公钥、经所述私钥加密的证明内容和第i+1区块的高度值进行验证处理,以实现对每一第i+1区块的证明的合法性验证。
10.一种设备,其特征在于,包括:
处理器;以及
存储器,其存储有用于选举区块链网络中节点的计算机指令,当所述计算机指令由所述处理器运行时,使得所述设备执行根据权利要求1-6的任意一项所述的方法或执行根据权利要求7-9的任意一项所述的方法。
11.一种计算机程序产品,其特征在于,包含用于选举区块链网络中节点的程序指令,当所述程序指令由处理器执行时,使得实现根据权利要求1-6的任意一项所述的方法或根据权利要求7-9的任意一项所述的方法。
12.一种区块链***,包括:
多个共识节点,其中所述多个共识节点包括一负责区块提案的提案节点和其他节点,所述提案节点配置成根据权利要求7-9的任意一项所述的方法,以向其他节点广播当前区块提案信息,所述其他节点配置成执行根据权利要求1-6的任意一项所述的方法,以基于当前区块提案信息确定下一区块的提案节点。
CN202111511719.8A 2021-12-06 2021-12-06 用于选举区块链网络中节点的方法及其相关产品 Pending CN114389815A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111511719.8A CN114389815A (zh) 2021-12-06 2021-12-06 用于选举区块链网络中节点的方法及其相关产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111511719.8A CN114389815A (zh) 2021-12-06 2021-12-06 用于选举区块链网络中节点的方法及其相关产品

Publications (1)

Publication Number Publication Date
CN114389815A true CN114389815A (zh) 2022-04-22

Family

ID=81196132

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111511719.8A Pending CN114389815A (zh) 2021-12-06 2021-12-06 用于选举区块链网络中节点的方法及其相关产品

Country Status (1)

Country Link
CN (1) CN114389815A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667614A (zh) * 2018-04-19 2018-10-16 上海分布信息科技有限公司 一种拜占庭容错方法及其实现***
CN108717630A (zh) * 2018-05-19 2018-10-30 上海分布信息科技有限公司 一种出块方法及其实现***
CN110995439A (zh) * 2019-11-20 2020-04-10 上海链颉科技有限公司 区块链共识方法、电子装置及存储介质
US11157899B1 (en) * 2019-05-28 2021-10-26 Hiro Systems Pbc System and method for bootstrapping a separate proof of work chain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667614A (zh) * 2018-04-19 2018-10-16 上海分布信息科技有限公司 一种拜占庭容错方法及其实现***
CN108717630A (zh) * 2018-05-19 2018-10-30 上海分布信息科技有限公司 一种出块方法及其实现***
US11157899B1 (en) * 2019-05-28 2021-10-26 Hiro Systems Pbc System and method for bootstrapping a separate proof of work chain
CN110995439A (zh) * 2019-11-20 2020-04-10 上海链颉科技有限公司 区块链共识方法、电子装置及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
徐蜜雪;苑超;王永娟;付金华;李斌;: "拟态区块链――区块链安全解决方案", 软件学报, no. 06 *

Similar Documents

Publication Publication Date Title
Ibtihal et al. Homomorphic encryption as a service for outsourced images in mobile cloud computing environment
Choudhuri et al. Fairness in an unfair world: Fair multiparty computation from public bulletin boards
CN111708991B (zh) 服务的授权方法、装置、计算机设备和存储介质
Li et al. OPoR: Enabling proof of retrievability in cloud computing with resource-constrained devices
CN110213059B (zh) 一种随机数的生成方法、生成装置及存储介质
CN111898137A (zh) 一种联邦学习的隐私数据处理方法、设备及***
CN108769230B (zh) 交易数据存储方法、装置、服务器及存储介质
Zhan et al. DRBFT: Delegated randomization Byzantine fault tolerance consensus protocol for blockchains
US11825000B2 (en) Asymmetric device attestation using physically unclonable functions
JP2019519990A (ja) ブロック生成方法、装置及びブロックチェーンネットワーク
EP2947840B1 (en) Certificateless multi-agent signature method and apparatus
CN110177124B (zh) 基于区块链的身份认证方法及相关设备
CN112968883B (zh) 一种安全性高的区块链异构共识方法及终端
CN109861828B (zh) 一种基于边缘计算的节点接入和节点认证方法
CN112118239B (zh) 区块链共识方法及装置、电子设备、存储介质
CN113301114B (zh) 区块链共识节点选择方法、装置、计算机设备和存储介质
CN112631550A (zh) 区块链随机数生成方法、装置、设备及计算机存储介质
JP6780771B2 (ja) 検証情報付与装置、検証装置、情報管理システム、方法およびプログラム
TWI836066B (zh) 用以於工作量證明區塊鏈網路上挖礦之系統及方法
CN111400728A (zh) 应用于区块链的数据加密解密方法及装置
CN110990790B (zh) 一种数据处理方法及设备
CN113065140A (zh) 一种芯片化控制保护装置内嵌安全防护***及方法
CN110910110B (zh) 一种数据处理方法、装置及计算机存储介质
JP2007143163A (ja) 通信ネットワークにおける利用者認証システムおよびその方法
CN109274674B (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