CN112865959B - 分布式节点设备的共识方法、节点设备及分布式网络 - Google Patents

分布式节点设备的共识方法、节点设备及分布式网络 Download PDF

Info

Publication number
CN112865959B
CN112865959B CN202011630328.3A CN202011630328A CN112865959B CN 112865959 B CN112865959 B CN 112865959B CN 202011630328 A CN202011630328 A CN 202011630328A CN 112865959 B CN112865959 B CN 112865959B
Authority
CN
China
Prior art keywords
information
node device
transaction information
number value
slave 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.)
Active
Application number
CN202011630328.3A
Other languages
English (en)
Other versions
CN112865959A (zh
Inventor
邱炜伟
李伟
张珂杰
黄方蕾
胡麦芳
王广任
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Qulian Technology Co Ltd
Original Assignee
Hangzhou Qulian 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 Hangzhou Qulian Technology Co Ltd filed Critical Hangzhou Qulian Technology Co Ltd
Priority to CN202011630328.3A priority Critical patent/CN112865959B/zh
Priority to PCT/CN2021/073329 priority patent/WO2022141700A1/zh
Publication of CN112865959A publication Critical patent/CN112865959A/zh
Application granted granted Critical
Publication of CN112865959B publication Critical patent/CN112865959B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请适用于分布式网络技术领域,提供了一种分布式节点设备的共识方法、节点设备、分布式网络及介质,其中,共识方法包括:在可信执行环境中对客户端发送的交易信息进行编号,并向各个从节点设备广播该交易信息以及该交易信息的编号值;在接收到第一预设数目个从节点设备返回的针对该编号值的确认信息时提交该交易信息;确认信息为从节点设备在确定该交易信息的编号值未被其他交易信息占用时生成;在可信执行环境中基于第一预设数目个确认信息生成针对该编号值的共识信息,并向各个从节点设备广播该共识信息;共识信息用于在被从节点设备确认有效后指示从节点设备提交交易信息,通信复杂度较低,且可以避免共识过程中节点作恶情况的发生。

Description

分布式节点设备的共识方法、节点设备及分布式网络
技术领域
本申请属于分布式网络技术领域,尤其涉及一种分布式节点设备的共识方法、节点设备、分布式网络及计算机可读存储介质。
背景技术
共识算法是分布式网络中各个节点设备之间保持一致性的基础。随着分布式网络技术的快速发展,现有技术针对不同的分布式网络提出了不同的共识算法。例如,针对包含故障节点的分布式网络提出故障容错(Crash Fault Tolerance,CFT)共识算法,针对包含故障节点以及作恶节点的分布式网络提出拜占庭容错(Byzantine Fault Tolerance)共识算法。
不同共识算法对应的节点设备之间的共识过程以及通信复杂度均不同。例如,节点设备基于BFT共识算法进行共识时,每个节点设备均需要与其他各个节点设备均进行通信;而节点设备基于CFT共识算法进行共识时,每个从节点设备只需要与主节点设备进行通信即可,可见,节点设备基于BFT共识算法进行共识时的通信复杂度远高于节点设备基于CFT共识算法进行共识时的通信复杂度,然而,虽然节点设备基于CFT共识算法进行共识时的通信复杂度较低,但节点设备基于CFT共识算法进行共识时无法解决节点作恶问题。
发明内容
有鉴于此,本申请实施例提供了一种分布式节点设备的共识方法、节点设备、分布式网络及计算机可读存储介质,以解决现有的分布式节点设备的共识方法无法解决节点作恶问题或者通信复杂度较高的技术问题。
第一方面,本申请实施例提供一种分布式节点设备的共识方法,应用于分布式网络中的主节点设备,所述共识方法包括:
在可信执行环境中对客户端发送的交易信息进行编号,并向各个从节点设备广播所述交易信息以及所述交易信息的编号值;
在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息;所述确认信息为所述从节点设备在确定所述交易信息的编号值未被其他交易信息占用时返回的;
在所述可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息;所述共识信息在被所述从节点设备确认有效后指示所述从节点设备提交所述交易信息。
可选的,所述在可信执行环境中对客户端发送的交易信息进行编号之后,所述共识方法还包括:
在所述可信执行环境中生成所述编号值对应的第一秘密信息以及所述第一秘密信息的电子签名;
在所述可信执行环境中基于所述第一秘密信息生成所述编号值对应的各个节点设备的共享密钥;
在所述可信执行环境中加密各个所述从节点设备的所述共享密钥得到各个所述从节点设备的所述共享密钥的密文;
向各个所述从节点设备广播所述第一秘密信息的电子签名以及各个所述从节点设备的所述共享密钥的密文。
可选的,所述在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息,包括:
在接收到第一预设数目个所述从节点设备返回的其自身的共享密钥时提交所述交易信息。
可选的,所述在所述可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息,包括:
在所述可信执行环境中基于所述第一预设数目个所述从节点设备的共享密钥生成所述编号值对应的第二秘密信息;
向各个所述从节点设备广播所述第二秘密信息。
可选的,所述在所述可信执行环境中生成所述编号值对应的第一秘密信息以及所述第一秘密信息的电子签名,包括:
若所述编号值对应的交易信息未被提交,则在所述可信执行环境中生成所述编号值对应的第一秘密信息以及所述第一秘密信息的电子签名。
第二方面,本申请实施例提供另一种分布式节点设备的共识方法,应用于分布式网络中的从节点设备,所述共识方法包括:
在接收到主节点设备广播的交易信息以及所述交易信息的编号值时,若确定所述交易信息的编号值未被其他交易信息占用,则向所述主节点设备发送针对所述编号值的确认信息;
在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息。
可选的,所述共识方法还包括:
在接收到所述主节点设备广播的所述编号值对应的第一秘密信息的电子签名以及所述从节点设备自身的共享密钥的密文时,在自身的可信执行环境中解密自身的所述共享密钥的密文,得到自身的所述共享密钥;
在所述可信执行环境中存储自身的所述共享密钥以及所述第一秘密信息的电子签名。
可选的,所述向所述主节点设备发送针对所述编号值的确认信息,包括:。
向所述主节点设备发送自身的所述共享密钥。
可选的,所述在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息,包括:
在接收到所述主节点设备广播的所述编号值对应的第二秘密信息时,在所述可信执行环境中采用所述第一秘密信息的电子签名对所述第二秘密信息的有效性进行验证,并在确认所述第二秘密信息有效后提交所述交易信息。
可选的,所述第一秘密信息的电子签名为所述第一秘密信息的哈希值;相应地,所述在所述可信执行环境中采用所述第一秘密信息的电子签名对所述第二秘密信息的有效性进行验证,并在确认所述第二秘密信息有效后提交所述交易信息,包括:
在所述可信执行环境中生成所述第二秘密信息的哈希值;
若所述第二秘密信息的哈希值与所述第一秘密信息的哈希值相同,则提交所述交易信息。
第三方面,本申请实施例提供又一种分布式节点设备的共识方法,应用于分布式网络,所述共识方法包括:
主节点设备在其可信执行环境中对客户端发送的交易信息进行编号,并向各个从节点设备广播所述交易信息以及所述交易信息的编号值;
所述从节点设备在接收到所述主节点设备广播的所述交易信息以及所述交易信息的编号值时,若确定所述交易信息的编号值未被其他交易信息占用,则向所述主节点设备发送针对所述编号值的确认信息;
所述主节点设备在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息;
所述主节点设备在其可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息;
所述从节点设备在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息。
可选的,所述主节点设备在其可信执行环境中对客户端发送的交易信息进行编号之后,所述共识方法还包括:
所述主节点设备在其可信执行环境中生成所述编号值对应的第一秘密信息以及所述第一秘密信息的电子签名;
所述主节点设备在其可信执行环境中基于所述第一秘密信息生成所述编号值对应的各个节点设备的共享密钥;
所述主节点设备在其可信执行环境中加密各个所述从节点设备的所述共享密钥得到各个所述从节点设备的所述共享密钥的密文;
所述主节点设备向各个所述从节点设备广播所述第一秘密信息的电子签名以及各个所述从节点设备的所述共享密钥的密文;
所述从节点设备在接收到所述主节点设备广播的所述编号值对应的第一秘密信息的电子签名以及各个所述从节点设备的共享密钥的密文时,在其可信执行环境中解密自身的所述共享密钥的密文,得到自身的所述共享密钥;
所述从节点设备在自身的可信执行环境中存储自身的所述共享密钥以及所述第一秘密信息的电子签名。
可选的,所述从节点设备向所述主节点设备发送针对所述编号值的确认信息,包括:
所述从节点设备向所述主节点设备发送所述从节点设备自身的所述共享密钥;
相应地,所述主节点设备在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息,包括:
所述主节点设备在接收到第一预设数目个所述从节点设备返回的所述从节点设备自身的共享密钥时提交所述交易信息。
可选的,所述主节点设备在其可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息,包括:
所述主节点设备在其可信执行环境中基于所述第一预设数目个所述从节点设备的共享密钥生成所述编号值对应的第二秘密信息,并向各个所述从节点设备广播所述第二秘密信息;
相应地,所述从节点设备在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息,包括:
所述从节点设备在接收到所述主节点设备广播的所述编号值对应的第二秘密信息时,在所述从节点设备的可信执行环境中采用所述第一秘密信息的电子签名对所述第二秘密信息的有效性进行验证,并在确认所述第二秘密信息有效后提交所述交易信息。
第四方面,本申请实施例提供一种节点设备,包括:
编号值确定单元,用于在可信执行环境中对客户端发送的交易信息进行编号,并向各个从节点设备广播所述交易信息以及所述交易信息的编号值;
第一交易处理单元,用于在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息;所述确认信息为所述从节点设备在确定所述交易信息的编号值未被其他交易信息占用时返回的;
共识信息生成单元,用于在所述可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息;所述共识信息在被所述从节点设备确认有效后指示所述从节点设备提交所述交易信息;和/或
确认信息发送单元,用于在接收到主节点设备广播的交易信息以及所述交易信息的编号值时,若确定所述交易信息的编号值未被其他交易信息占用,则向所述主节点设备发送针对所述编号值的确认信息;
第二交易处理单元,用于在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息。
第五方面,本申请实施例提供一种节点设备,所述节点设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面、第一方面的任意可选方式、第二方面或第二方面的任意可选方式所述的共识方法。
第六方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面、第一方面的任意可选方式、第二方面或第二方面的任意可选方式所述的共识方法。
第七方面,本申请实施例提供一种计算机程序产品,当计算机程序产品在节点设备上运行时,使得节点设备执行上述第一方面、第一方面的任意可选方式、第二方面或第二方面的任意可选方式所述的共识方法。
第八方面,本申请实施例提供一种分布式网络,包括多个节点设备,节点设备用于执行上述第一方面、第一方面的任意可选方式、第二方面或第二方面的任意可选方式所述的共识方法。
实施本申请实施例提供的一种分布式节点设备的共识方法、节点设备、分布式网络、计算机可读存储介质及计算机程序产品具有以下有益效果:
本申请实施例提供的分布式节点设备的共识方法,由于主节点设备是在可信执行环境中对客户端发送的交易信息进行编号,且主节点设备向从节点设备广播交易信息以及交易信息的编号值发送给后,从节点设备会对交易信息的编号值进行检测,在确认该交易信息的编号值未被其他交易信息占用时才会向主节点设备返回针对该交易信息的编号值的确认信息;且主节点设备在向从节点设备广播针对交易信息的编号值的共识信息后,从节点设备会对该共识信息的有效性进行验证,在确认该共识信息有效后才会提交该交易信息,从而避免了共识过程中节点作恶情况的发生。另外,在节点设备的共识过程中,各个从节点设备只需与主节点设备进行通信,相对于节点设备基于现有的BFT共识算法进行共识而言,降低了节点设备共识过程中的通信复杂度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种分布式网络的结构示意图;
图2为本申请实施例提供的一种分布式节点设备的共识方法的示意性流程图;
图3为本申请另一实施例提供的一种分布式节点设备的共识方法的示意性流程图;
图4为本申请实施例提供的一种节点设备的结构示意图;
图5为本申请另一实施例提供的一种节点设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其他实施例中也可以实现本申请。在其他情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
还应当理解,在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
请参阅图1,图1为本申请实施例提供的一种分布式网络的结构示意图。如图1所示,该分布式网络可以包括多个分布式的节点设备11,每个节点设备11均可以与分布式网络中任意一个其他节点设备11进行点对点(peer to peer,P2P)通信。
在具体应用中,上述分布式网络可以为区块链,也可以为其他类型的分布式网络,此处不对分布式网络的具体类型做特别限定。
节点设备11可以为具有计算及存储功能的电子设备。节点设备11可以与对应的客户端进行通信,例如,节点设备11可以接收对应的客户端发送的交易信息,并对该交易信息进行共识。作为示例而非限定,当节点设备11为某个应用程序的服务器时,对应的客户端可以为该应用程序的客户端。
本申请实施例中,每个节点设备11的中央处理器(central processing unit,CPU)中都配置有可信执行环境(Trusted Execution Environment,TEE)。可信执行环境是基于CPU的一种指令集扩展,它可以在CPU中划分出一块与外部完全隔离的安全区域作为一个安全的执行环境,任何程序或数据均可以运行或存储在该安全区域中。可信执行环境可以保证运行或存储在安全区域中的程序及数据的机密性和完整性,进而保证运行或存储在安全区域中的程序或数据不会被泄露出去。CPU中除了可信执行环境之外的部分为非可信空间,非可信空间无法干预可信执行环境中程序的运行过程,且在可信执行环境中生成的数据也无法在非可信空间中被篡改,即基于可信执行环境的分布式节点设备的共识过程只会出现节点崩溃问题,而不会出现节点作恶问题(即拜占庭错误)。
作为示例而非限定,可信执行环境可以是基于英特尔(Intel)芯片的软件保护扩展(software guard extension,SGX)。SGX通过在Intel架构上增加新的指令集和内存访问机制,允许应用程序实现一个被称为enclave的容器,同时会在相应应用程序的地址空间中划分出一块被保护的专属区域,为enclave容器中的程序和数据提供机密性和完整性的保护,这样,即使节点设备的操作***被攻破也不会影响enclave容器中的程序和数据。
分布式网络中的各个节点设备11是通过共识操作来保证彼此之间数据的一致性的。本申请实施例中,分布式网络中的各个节点设备11在进行共识操作时,会先投票选择选出一个节点设备11作为主节点设备(即领导者)。在整个共识过程中,只要主节点变更事件未被触发,则该节点设备11将会一直作为主节点设备;当主节点变更事件被触发时,各个节点设备11会重新投票选择出另一个节点设备11作为主节点设备,即主节点设备可以是分布式网络中的任一节点设备11,分布式网络中的每个节点设备11均有可能被选为主节点设备。
分布式网络中的各个节点设备11在进行共识操作时,分布式网络中除了主节点设备之外的其他节点设备11均为从节点设备(即跟随者),且分布式网络在任一时刻仅允许有一个主节点设备。
本申请实施例可以将节点设备11的共识过程分为一个一个的任期,主节点设备每变更一次,则进入一个新的任期。为了对不同的任期进行区分,本申请实施例可以通过主节点任期值来标识任期,即每个任期都有对应的主节点任期值,不同任期对应的主节点任期值不同。
在本申请的一个实施例中,节点设备11可以基于增量为第一数值的任期值递增策略确定每个任期的主节点任期值。其中,主节点任期值的初始值(即第一个任期的主节点任期值)以及第一数值均可以根据实际需求确定。
例如,假如第一个任期的主节点任期值为1,第一数值为1,则第二个任期对应的主节点任期值为2,第三个任期对应的主节点任期值为3,第n个任期对应的主节点任期值为n。
以下对本申请实施例提供的分布式节点设备的共识方法进行详细说明:
请参阅图2,图2为本申请实施例提供的一种分布式节点设备的共识方法的示意性流程图,该分布式节点设备的共识方法的执行主体可以为图1所示的分布式网络。图2以一个从节点设备为例,对分布式节点设备的共识过程中主节点设备与从节点设备之间的交互过程进行说明。如图2所示,分布式节点设备的共识方法可以包括S21~S25,详述如下:
S21:主节点设备在其可信执行环境中对客户端发送的交易信息进行编号,并向各个从节点设备广播所述交易信息以及所述交易信息的编号值。
本实施例中,当主节点设备接收到客户端发送的交易信息时,可以在其可信执行环境中对该交易信息进行编号,确定该交易信息的编号值。
在具体应用中,客户端发送的交易信息可以为一个或多个。
在本申请的一个实施例中,交易信息的编号值可以由当前任期对应的主节点任期值以及该交易信息在当前任期内的序号构成。当前任期指主节点设备接收到该交易信息时所在的任期。
在本实施例的一种实现方式中,主节点设备可以基于增量为第二数值的序号递增策略确定每个交易信息在当前任期内的序号。其中,第二数值可以根据实际需求设置,例如,第二数值可以为1。
在本申请的一个实施例中,主节点设备向从节点设备广播交易信息以及所述交易信息的编号值时,可以将交易信息与该交易信息的编号值进行关联,并向各个从节点设备广播具有关联关系的交易信息以及交易信息的编号值。
S22:所述从节点设备在接收到所述主节点设备广播的所述交易信息以及所述交易信息的编号值时,若确定所述交易信息的编号值未被其他交易信息占用,则向所述主节点设备发送针对所述编号值的确认信息。
本实施例中,为了防止多条不同的交易信息采用同一个编号值,进而影响节点设备对交易信息的共识结果,各个从节点设备接收到主节点设备广播的交易信息以及该交易信息的编号值后,可以检测每个交易信息的编号值是否已被其他交易信息占用。
具体地,从节点设备可以将每个交易信息的编号值与从节点设备接收到的各个其他交易信息的编号值进行比较。
在本申请的一个实施例中,从节点设备若确定其他交易信息的编号值中不存在与该交易信息的编号值相同的编号值,则说明该交易信息的编号值未被其他交易信息占用,此时从节点设备可以向主节点设备发送针对该交易信息的编号值的确认信息。其中,针对交易信息的编号值的确认信息用于表示从节点设备已确认该交易信息的编号值未被其他交易信息占用。
在本申请的另一个实施例中,从节点设备若确定其他交易信息的编号值中存在与该交易信息的编号值相同的编号值,则说明该交易信息的编号值已被其他交易信息占用,此时从节点设备可以触发主节点变更事件。主节点变更事件被触发后,各个节点设备进入主节点选举环节,由于主节点选举环节的具体过程为现有技术,因此此处不对其进行详细描述。
S23:所述主节点设备在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息。
通常,主节点设备获得一半以上的节点设备(包括其自身)针对某个交易信息的编号值的确认信息时,即认为该交易信息的编号值已被所有节点设备确认,基于此,第一预设数目不小于n/2,其中,n为分布式网络包括的节点设备的总数量。示例性的,例如,若n=5,则第一预设数目可以为3;若n=4,则第一预设数目也可以为3;若n=3,则第一预设数目可以为2。
在本申请的一个实施例中,节点设备提交交易信息具体可以为:节点设备执行该交易信息对应的交易操作。
本申请实施例中,主节点设备在接收到第一预设数目个从节点设备返回的针对某个交易信息的编号值的确认信息后,还可以向发送该交易信息的客户端发送该交易信息以及该交易信息的编号值,以便客户端确定其发送的该交易信息是否已被各个节点设备共识。
S24:所述主节点设备在其可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息。
本申请实施例中,为了保证各个节点设备的操作或者数据的一致性,主节点设备在提交交易信息后,还在其可信执行环境中基于接收到的第一预设数目个针对该交易信息的编号值的确认信息以及主节点设备自身生成的针对该编号值的确认信息,生成针对该编号值的共识信息。
其中,针对某个交易信息的编号值的共识信息用于表示该交易信息的编号值已被大部分节点设备确认。
主节点设备生成针对某个交易信息的编号值的共识信息后,向各个从节点设备广播针对该交易信息的编号值的共识信息。
S25:所述从节点设备在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息。
本申请实施例中,从节点设备接收到主节点设备广播的针对某个交易信息的编号值的共识信息后,需要验证该共识信息是否有效,即验证该共识信息是否确实能够表示该交易信息的编号值已被大部分节点设备确认。
在本申请的一个实施例中,从节点设备可以通过检测针对某个交易信息的编号值的共识信息中是否包括第二预设数目个节点设备针对该编号值的确认信息来检测该共识信息是否有效。其中,第二预设数目为第一预设数目与1之和。
具体地,从节点设备若确认针对某个交易信息的编号值的共识信息中包括第二预设数目个节点设备针对该编号值的确认信息,则确认该共识信息有效;从节点设备若确认针对某个交易信息的编号值的共识信息中未包括第二预设数目个节点设备针对该编号值的确认信息,则确认该共识信息无效。
在本申请的一个实施例中,从节点设备若确认针对某个交易信息的编号值的共识信息有效,则提交该交易信息。其中,从节点设备提交交易信息可以为:从节点设备执行该交易信息对应的交易操作。
在本申请的另一个实施例中,从节点设备若确认针对某个交易信息的编号值的共识信息无效,则触发主节点变更事件。
在具体应用中,从节点设备在确认针对某个交易信息的编号值的共识信息有效后,还可以向发送该交易信息的客户端发送该交易信息以及该交易信息的编号值,以便客户端确定其发送的该交易信息是否已被各个节点设备共识。
具体地,针对客户端发送的某个交易信息,客户端若接收到第二预设数目个不同节点设备发送的该交易信息的编号值,且该第二预设数目个编号值相同,则客户端确定该交易信息已被各个节点设备共识。
以上可以看出,本申请实施例提供的分布式节点设备的共识方法,由于主节点设备是在可信执行环境中对客户端发送的交易信息进行编号,且主节点设备向从节点设备广播交易信息以及交易信息的编号值发送给后,从节点设备会对交易信息的编号值进行检测,在确认该交易信息的编号值未被其他交易信息占用时才会向主节点设备返回针对该交易信息的编号值的确认信息;且主节点设备在向从节点设备广播针对交易信息的编号值的共识信息后,从节点设备会对该共识信息的有效性进行验证,在确认该共识信息有效后才会提交该交易信息,从而避免了共识过程中节点作恶情况的发生。另外,在节点设备的共识过程中,各个从节点设备只需与主节点设备进行通信,相对于节点设备基于现有的BFT共识算法进行共识而言,降低了节点设备共识过程中的通信复杂度。
请参阅图3,图3为本申请另一实施例提供的一种分布式节点设备的共识方法的示意性流程图。相对于图2对应的实施例,本实施例中的分布式节点设备的共识方法在S21之后,还可以包括S31~S36,详述如下:
S31:所述主节点设备在其可信执行环境中生成所述编号值对应的第一秘密信息以及所述第一秘密信息的电子签名。
本实施例中,针对每个交易信息,主节点设备可以在其可信执行环境中随机生成一个与该交易信息的编号值对应的第一秘密信息。
具体地,在本申请的一个实施例中,主节点设备可以调用可信执行环境提供的随机数生成函数TEE.Random()为每个交易信息生成一个随机数,并将该随机数确定为与该交易信息的编号值对应的第一秘密信息。
第一秘密信息的电子签名用于对第一秘密信息进行校验。
在本申请的一个实施例中,第一秘密信息的电子签名可以为第一秘密信息的哈希值。基于此,主节点设备在得到交易信息的编号值对应的第一秘密信息后,计算该第一秘密信息的哈希值,该第一秘密信息的哈希值即为该第一秘密信息的电子签名。
在本申请的另一实施例中,S31具体可以包括以下步骤:
所述主节点设备若确认所述编号值对应的交易信息未被提交,则在其可信执行环境中生成所述编号值对应的第一秘密信息以及所述第一秘密信息的电子签名。
本实施例中,为了避免节点设备重复对同一个交易信息进行多次共识操作,各个节点设备可以对其已提交的交易信息的编号值进行记录。基于此,主节点设备在为每个交易信息进行编号后,可以将该交易信息的编号值与主节点设备已提交的各个交易信息的编号值进行比较。主节点设备在检测到已提交的交易信息的编号值中不存在与该交易信息的编号值相同的编号值时,确认该交易信息未被提交,此时主节点设备才在其可信执行环境中生成该交易信息的编号值对应的第一秘密信息以及该第一秘密信息的电子签名。
S32:所述主节点设备在其可信执行环境中基于所述第一秘密信息生成所述编号值对应的各个节点设备的共享密钥。
本实施例中,主节点设备生成交易信息的编号值对应的第一秘密信息后,可以在其可信执行环境中基于预设秘密共享算法将该第一秘密信息拆分为n份共享密钥,其中,n为分布式网络包括的节点设备的总数量,即拆分得到的每份共享密钥分别对应一个节点设备。
需要说明的是,由于第一秘密信息的密钥拆分操作是在主节点设备的可信执行环境中执行的,因此,主节点设备自身并不知晓该n份共享密钥。只有从节点设备将其共享密钥告知主节点设备后,主节点设备才会拥有该从节点设备的共享密钥。
本申请实施例中,主节点设备拥有第二预设数目个节点设备(包括其自身)的共享密钥后,即可基于该第二预设数目个共享密钥还原出第一秘密信息。
在具体应用中,预设秘密共享算法可以是现有的任一秘密共享算法。
S33:所述主节点设备在其可信执行环境中加密各个所述从节点设备的所述共享密钥得到各个所述从节点设备的所述共享密钥的密文。
本实施例中,为了提高从节点设备的共享密钥的安全性,保证每个从节点设备的共享密钥不被其他从节点设备获知,主节点设备向从节点设备广播从节点设备的共享密钥时,可以在其可信执行环境中对各个从节点设备的共享密钥进行加密,得到各个从节点设备的共享密钥的密文。
在本申请的一个实施例中,主节点设备可以采用每个从节点设备所拥有的非对称密钥中的公钥分别对每个从节点设备的共享密钥进行加密。这样,从节点设备接收到共享密钥的密文后,只能通过其拥有的非对称密钥中的私钥解密出其自身的共享密钥,而无法解密出其他从节点设备的共享密钥,从而可以保证各个从节点设备只知晓其自身的共享密钥。
S34:所述主节点设备向各个所述从节点设备广播所述第一秘密信息的电子签名以及各个所述从节点设备的所述共享密钥的密文。
本实施例中,主节点设备得到交易信息的编号值对应的各个从节点设备的共享密钥的密文后,向各个从节点设备广播第一秘密信息的电子签名以及各个从节点设备的共享密钥的密文。
S35:所述从节点设备在接收到所述主节点设备广播的所述编号值对应的第一秘密信息的电子签名以及各个所述从节点设备的所述共享密钥的密文时,在其可信执行环境中解密自身的所述共享密钥的密文,得到自身的所述共享密钥。
从节点设备接收到主节点设备广播的某个交易信息的编号值对应的第一秘密信息的电子签名以及该编号值对应的各个从节点设备的共享密钥的密文后,从节点设备可以在其可信执行环境中采用其拥有的非对称密钥的私钥解密其自身的共享密钥的密文,得到其自身的共享密钥。
需要说明的是,在本申请另一个实施例中,若某个从节点设备无法正确解密出其自身的共享密钥,则该从节点设备可以触发主节点变更事件。
S36:所述从节点设备在自身的可信执行环境中存储自身的所述共享密钥以及所述第一秘密信息的电子签名。
本实施例中,从节点设备得到其自身的共享密钥后,可以将交易信息的编号值对应的第一秘密信息以及其自身的共享密钥存储在其可信执行环境中。
基于图3对应的实施例,在一种实现方式中,S22具体可以包括以下步骤:
所述从节点设备向所述主节点设备发送所述从节点设备自身的所述共享密钥。
相应地,S23具体可以包括以下步骤:
所述主节点设备在接收到第一预设数目个所述从节点设备返回的所述从节点设备自身的共享密钥时提交所述交易信息。
本实施中,从节点设备在确定某个交易信息的编号值未被其他交易信息占用时向主节点设备发送自身的与该编号值对应的共享密钥。
主节点设备接收到第一预设数目个从节点设备返回的针对该交易信息的编号值的共享密钥后,确认该交易信息的编号值已被大部分节点设备确认,此时主节点设备可以提交该交易信息。
在另一种实现方式中,S24具体可以包括以下步骤:
所述主节点设备在其可信执行环境中基于所述第一预设数目个所述从节点设备的共享密钥生成所述编号值对应的第二秘密信息,并向各个所述从节点设备广播所述第二秘密信息。
相应地,S25具体可以包括以下步骤:
所述从节点设备在接收到所述主节点设备广播的所述编号值对应的第二秘密信息时,在所述从节点设备的可信执行环境中采用所述第一秘密信息的电子签名对所述第二秘密信息的有效性进行验证,并在确认所述第二秘密信息有效后提交所述交易信息。
本实施例中,主节点设备接收到第一预设数目个从节点设备返回的针对该交易信息的编号值的共享密钥后,可以在其可信执行环境中基于该第一预设数目个共享密钥以及主节点设备自身的共享密钥,生成该交易信息的编号值对应的第二秘密信息。
在具体应用中,主节点设备可以基于预设秘密共享算法将该第一预设数目个共享密钥与其自身的共享密钥聚合为第二秘密信息。
主节点设备得到该交易信息的编号值对应的第二秘密信息后,向各个从节点设备广播该第二秘密信息。从节点设备接收到主节点设备广播的某个交易信息的编号值对应的第二秘密信息后,可以在其可信执行环境中采用该交易信息的编号值对应的第一秘密信息的电子签名对该第二秘密信息的有效性进行验证。从节点设备在确认该交易信息的编号值对应的第二秘密信息有效时,说明该第二秘密信息确实为主节点设备基于第二预设数目个节点设备的共享密钥生成的,即主节点设备确实接收到了第一预设数目个从节点设备发送的针对该交易信息的编号值的共享密钥。其中,第二预设数目为第一预设数目与1之和。
在具体应用中,当第一秘密信息的电子签名为第一秘密信息的哈希值时,S25具体可以包括以下步骤:
从节点设备在其可信执行环境中生成所述第二秘密信息的哈希值;
从节点设备若确认所述第二秘密信息的哈希值与所述第一秘密信息的哈希值相同,则提交所述交易信息。
本实施例中,从节点设备在确定某个交易信息的编号值对应的第二秘密信息的哈希值与针对该编号值的第一秘密信息的编号值相同,则说明针对该编号值的第二秘密信息与针对该编号值的第一秘密信息相同,即说明该交易信息的编号值对应的第二秘密信息是有效的。
在具体应用中,主节点设备生成某个交易信息的编号值对应的第二秘密信息后,可以向发送该交易信息的客户端返回该交易信息、该交易信息的编号值以及该交易信息的编号值对应的第二秘密信息。
从节点设备在确认该交易信息的编号值对应的第二秘密信息有效后,也可以向发送该交易信息的客户端返回该交易信息、该交易信息的编号值以及该交易信息的编号值对应的第二秘密信息。
基于此,针对某个交易信息,当客户端接收到的来自第二预设数目个不同节点设备的该交易信息的编号值以及该交易信息的编号值对应的第二秘密信息均相同时,可以认为该交易信息已被各个节点设备共识。
以上可以看出,本实施例提供的分布式节点设备的共识算法,由于将交易信息的编号值对应的第一秘密信息拆分为多个共享密钥,并通过该多个共享密钥来分别表示各个从节点设备针对该交易信息的编号值的确认信息,因此,当主节点设备接收到第一预设数目个从节点设备返回的针对该编号值的共享密钥时便可基于该第一预设数目个共享密钥与其自身的共享密钥对该编号值的第一秘密信息进行恢复。基于此,从节点设备可以直接通过该编号值对应的第一秘密信息的电子签名验证主节点设备恢复出的针对该编号值的第二秘密信息的有效性,不仅可以避免节点设备共识过程中出现节点作恶问题,而且可以提高各节点之间的共识效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
基于上述实施例所提供的分布式节点设备的共识方法,本发明实施例进一步给出实现上述方法实施例的节点设备的实施例。
请参阅图4,图4为本申请实施例提供的一种节点设备的结构示意图。本申请实施例中,节点设备包括的各单元用于执行图2至图3对应的实施例中的各步骤。具体请参阅图2至图3以及图2至图3对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。如图4所示,节点设备40可以包括:编号值确定单元41、第一交易处理单元42及共识信息生成单元43;和/或确认信息发送单元44及第二交易处理单元45。其中:
编号值确定单元41用于主节点设备在其可信执行环境中对客户端发送的交易信息进行编号,并向各个从节点设备广播所述交易信息以及所述交易信息的编号值。
第一交易处理单元42用于所述主节点设备在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息。
共识信息生成单元43用于所述主节点设备在其可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息。
确认信息发送单元44用于所述从节点设备在接收到所述主节点设备广播的所述交易信息以及所述交易信息的编号值时,若确定所述交易信息的编号值未被其他交易信息占用,则向所述主节点设备发送针对所述编号值的确认信息。
第二交易处理单元45用于所述从节点设备在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息。
可选的,节点设备40还包括秘密信息生成单元、共享密钥生成单元、加解密单元、共享密钥分发单元以及第一存储单元。其中:
秘密信息生成单元用于所述主节点设备在其可信执行环境中生成所述编号值对应的第一秘密信息以及所述第一秘密信息的电子签名。
共享密钥生成单元用于所述主节点设备在其可信执行环境中基于所述第一秘密信息生成所述编号值对应的各个节点设备的共享密钥。
加解密单元用于所述主节点设备在其可信执行环境中加密各个所述从节点设备的所述共享密钥得到各个所述从节点设备的所述共享密钥的密文。
共享密钥分发单元用于所述主节点设备向各个所述从节点设备广播所述第一秘密信息的电子签名以及各个所述从节点设备的所述共享密钥的密文。
所述加解密单元还用于所述从节点设备在接收到所述主节点设备广播的所述编号值对应的第一秘密信息的电子签名以及各个所述从节点设备的所述共享密钥的密文时,在其可信执行环境中解密自身的所述共享密钥的密文,得到自身的所述共享密钥。
第一存储单元用于所述从节点设备在自身的可信执行环境中存储自身的所述共享密钥以及所述第一秘密信息的电子签名。
可选的,秘密信息生成单元具体用于:所述主节点设备若确认所述编号值对应的交易信息未被提交,则在其可信执行环境中生成所述编号值对应的第一秘密信息以及所述第一秘密信息的电子签名。
可选的,确认信息发送单元44具体用于:所述从节点设备向所述主节点设备发送所述从节点设备自身的所述共享密钥。
相应的,第一交易处理单元42具体用于:所述主节点设备在接收到第一预设数目个所述从节点设备返回的所述从节点设备自身的共享密钥时提交所述交易信息。
可选的,共识信息生成单元43具体用于:所述主节点设备在其可信执行环境中基于所述第一预设数目个所述从节点设备的共享密钥生成所述编号值对应的第二秘密信息,并向各个所述从节点设备广播所述第二秘密信息。
相应的,第二交易处理单元45具体用于:所述从节点设备在接收到所述主节点设备广播的所述编号值对应的第二秘密信息时,在所述从节点设备的可信执行环境中采用所述第一秘密信息的电子签名对所述第二秘密信息的有效性进行验证,并在确认所述第二秘密信息有效后提交所述交易信息。
可选的,第二交易处理单元45具体用于:
从节点设备在其可信执行环境中生成所述第二秘密信息的哈希值;
从节点设备若确认所述第二秘密信息的哈希值与所述第一秘密信息的哈希值相同,则提交所述交易信息。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参照方法实施例部分,此处不再赘述。
图5为本申请另一实施例提供的一种节点设备的结构示意图。如图5所示,该实施例提供的节点设备5包括:处理器50、存储器51以及存储在所述存储器51中并可在所述处理器50上运行的计算机程序52,例如分布式节点设备的共识方法对应的程序。处理器50执行所述计算机程序52时实现上述各个分布式节点设备的共识方法实施例中的步骤,例如图2所示的S21~S25。或者,所述处理器50执行所述计算机程序52时实现上述各节点设备实施例中各模块/单元的功能,例如图4所示单元41~45的功能。
示例性的,所述计算机程序52可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器51中,并由处理器50执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序52在所述节点设备5中的执行过程。例如,所述计算机程序52可以被分割成编号值确定单元、第一交易处理单元及共识信息生成单元;和/或确认信息发送单元及第二交易处理单元,各单元具体功能请参阅图2对应地实施例中的相关描述,此处不赘述。
所述节点设备可包括但不仅限于,处理器50、存储器51。本领域技术人员可以理解,图5仅仅是节点设备5的示例,并不构成对节点设备5的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述节点设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器50可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器51可以是所述节点设备5的内部存储单元,例如节点设备5的硬盘或内存。所述存储器51也可以是所述节点设备5的外部存储设备,例如所述节点设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器51还可以既包括所述节点设备5的内部存储单元也包括外部存储设备。所述存储器51用于存储所述计算机程序以及所述节点设备所需的其他程序和数据。所述存储器51还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机可读存储介质。计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时可实现上述分布式节点设备的共识方法。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在节点设备上运行时,使得节点设备执行时实现可实现上述分布式节点设备的共识方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述节点设备的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参照其他实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (14)

1.一种分布式节点设备的共识方法,应用于分布式网络中的主节点设备,其特征在于,所述共识方法包括:
在可信执行环境中对客户端发送的交易信息进行编号,并向各个从节点设备广播所述交易信息以及所述交易信息的编号值;
在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息;所述确认信息为所述从节点设备在确定所述交易信息的编号值未被其他交易信息占用时返回的,具体为:从节点设备将所述交易信息的编号值与从节点设备接收到的各个其他交易信息的编号值进行比较,以检测所述交易信息的编号值是否已被其他交易信息占用;第一预设数目不小于n/2,其中,n为分布式网络包括的节点设备的总数量;
在所述可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息;所述共识信息在被所述从节点设备确认有效后指示所述从节点设备提交所述交易信息;节点设备提交所述交易信息体为:节点设备执行所述交易信息对应的交易操作。
2.根据权利要求1所述的共识方法,其特征在于,所述在可信执行环境中对客户端发送的交易信息进行编号之后,所述共识方法还包括:
在所述可信执行环境中生成所述编号值对应的第一秘密信息以及所述第一秘密信息的电子签名;
在所述可信执行环境中基于所述第一秘密信息生成所述编号值对应的各个节点设备的共享密钥;
在所述可信执行环境中加密各个所述从节点设备的所述共享密钥得到各个所述从节点设备的所述共享密钥的密文;
向各个所述从节点设备广播所述第一秘密信息的电子签名以及各个所述从节点设备的所述共享密钥的密文。
3.根据权利要求2所述的共识方法,其特征在于,所述在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息,包括:
在接收到第一预设数目个所述从节点设备返回的其自身的共享密钥时提交所述交易信息。
4.根据权利要求3所述的共识方法,其特征在于,所述在所述可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息,包括:
在所述可信执行环境中基于所述第一预设数目个所述从节点设备的共享密钥生成所述编号值对应的第二秘密信息;
向各个所述从节点设备广播所述第二秘密信息。
5.一种分布式节点设备的共识方法,应用于分布式网络中的从节点设备,其特征在于,所述共识方法包括:
在接收到主节点设备广播的交易信息以及所述交易信息的编号值时,若确定所述交易信息的编号值未被其他交易信息占用,则向所述主节点设备发送针对所述编号值的确认信息,具体为:从节点设备将所述交易信息的编号值与从节点设备接收到的各个其他交易信息的编号值进行比较,以检测所述交易信息的编号值是否已被其他交易信息占用;
在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息;节点设备提交所述交易信息体为:节点设备执行所述交易信息对应的交易操作。
6.根据权利要求5所述的共识方法,其特征在于,所述共识方法还包括:
在接收到所述主节点设备广播的所述编号值对应的第一秘密信息的电子签名以及所述从节点设备自身的共享密钥的密文时,在自身的可信执行环境中解密自身的所述共享密钥的密文,得到自身的所述共享密钥;
在所述可信执行环境中存储自身的所述共享密钥以及所述第一秘密信息的电子签名。
7.根据权利要求6所述的共识方法,其特征在于,所述在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息,包括:
在接收到所述主节点设备广播的所述编号值对应的第二秘密信息时,在所述可信执行环境中采用所述第一秘密信息的电子签名对所述第二秘密信息的有效性进行验证,并在确认所述第二秘密信息有效后提交所述交易信息。
8.根据权利要求7所述的共识方法,其特征在于,所述第一秘密信息的电子签名为所述第一秘密信息的哈希值;相应地,所述在所述可信执行环境中采用所述第一秘密信息的电子签名对所述第二秘密信息的有效性进行验证,并在确认所述第二秘密信息有效后提交所述交易信息,包括:
在所述可信执行环境中生成所述第二秘密信息的哈希值;
若所述第二秘密信息的哈希值与所述第一秘密信息的哈希值相同,则提交所述交易信息。
9.一种分布式节点设备的共识方法,应用于分布式网络,其特征在于,所述共识方法包括:
主节点设备在其可信执行环境中对客户端发送的交易信息进行编号,并向各个从节点设备广播所述交易信息以及所述交易信息的编号值;
所述从节点设备在接收到所述主节点设备广播的所述交易信息以及所述交易信息的编号值时,若确定所述交易信息的编号值未被其他交易信息占用,则向所述主节点设备发送针对所述编号值的确认信息,具体为:从节点设备将所述交易信息的编号值与从节点设备接收到的各个其他交易信息的编号值进行比较,以检测所述交易信息的编号值是否已被其他交易信息占用;
所述主节点设备在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息;第一预设数目不小于n/2,其中,n为分布式网络包括的节点设备的总数量;
所述主节点设备在其可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息;
所述从节点设备在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息;节点设备提交所述交易信息体为:节点设备执行所述交易信息对应的交易操作。
10.根据权利要求9所述的共识方法,其特征在于,所述主节点设备在其可信执行环境中对客户端发送的交易信息进行编号之后,所述共识方法还包括:
所述主节点设备在其可信执行环境中生成所述编号值对应的第一秘密信息以及所述第一秘密信息的电子签名;
所述主节点设备在其可信执行环境中基于所述第一秘密信息生成所述编号值对应的各个节点设备的共享密钥;
所述主节点设备在其可信执行环境中加密各个所述从节点设备的所述共享密钥得到各个所述从节点设备的所述共享密钥的密文;
所述主节点设备向各个所述从节点设备广播所述第一秘密信息的电子签名以及各个所述从节点设备的所述共享密钥的密文;
所述从节点设备在接收到所述主节点设备广播的所述编号值对应的第一秘密信息的电子签名以及各个所述从节点设备的共享密钥的密文时,在其可信执行环境中解密自身的所述共享密钥的密文,得到自身的所述共享密钥;
所述从节点设备在自身的可信执行环境中存储自身的所述共享密钥以及所述第一秘密信息的电子签名。
11.根据权利要求10所述的共识方法,其特征在于,所述从节点设备向所述主节点设备发送针对所述编号值的确认信息,包括:
所述从节点设备向所述主节点设备发送所述从节点设备自身的所述共享密钥;
相应地,所述主节点设备在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息,包括:
所述主节点设备在接收到第一预设数目个所述从节点设备返回的所述从节点设备自身的共享密钥时提交所述交易信息。
12.一种节点设备,其特征在于,包括:
编号值确定单元,用于在可信执行环境中对客户端发送的交易信息进行编号,并向各个从节点设备广播所述交易信息以及所述交易信息的编号值;
第一交易处理单元,用于在接收到第一预设数目个所述从节点设备返回的针对所述编号值的确认信息时提交所述交易信息;所述确认信息为所述从节点设备在确定所述交易信息的编号值未被其他交易信息占用时返回的,具体为:从节点设备将所述交易信息的编号值与从节点设备接收到的各个其他交易信息的编号值进行比较,以检测所述交易信息的编号值是否已被其他交易信息占用;
共识信息生成单元,用于在所述可信执行环境中基于所述第一预设数目个所述确认信息生成针对所述编号值的共识信息,并向各个所述从节点设备广播所述共识信息;所述共识信息在被所述从节点设备确认有效后指示所述从节点设备提交所述交易信息;第一预设数目不小于n/2,其中,n为分布式网络包括的节点设备的总数量;和/或
确认信息发送单元,用于在接收到主节点设备广播的交易信息以及所述交易信息的编号值时,若确定所述交易信息的编号值未被其他交易信息占用,则向所述主节点设备发送针对所述编号值的确认信息;
第二交易处理单元,用于在接收到所述主节点设备广播的针对所述编号值的共识信息时,若确认所述共识信息有效,则提交所述交易信息;节点设备提交所述交易信息体为:节点设备执行所述交易信息对应的交易操作。
13.一种节点设备,其特征在于,所述节点设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4任一项或者如权利要求5至8任一项所述的共识方法。
14.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项或者如权利要求5至8任一项所述的共识方法。
CN202011630328.3A 2020-12-30 2020-12-30 分布式节点设备的共识方法、节点设备及分布式网络 Active CN112865959B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202011630328.3A CN112865959B (zh) 2020-12-30 2020-12-30 分布式节点设备的共识方法、节点设备及分布式网络
PCT/CN2021/073329 WO2022141700A1 (zh) 2020-12-30 2021-01-22 分布式节点设备的共识方法、节点设备及分布式网络

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011630328.3A CN112865959B (zh) 2020-12-30 2020-12-30 分布式节点设备的共识方法、节点设备及分布式网络

Publications (2)

Publication Number Publication Date
CN112865959A CN112865959A (zh) 2021-05-28
CN112865959B true CN112865959B (zh) 2022-05-31

Family

ID=75999805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011630328.3A Active CN112865959B (zh) 2020-12-30 2020-12-30 分布式节点设备的共识方法、节点设备及分布式网络

Country Status (2)

Country Link
CN (1) CN112865959B (zh)
WO (1) WO2022141700A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113923093B (zh) * 2021-10-29 2024-02-06 博雅正链(北京)科技有限公司 一种基于可信执行环境的新型拜占庭容错共识方法
CN115134145B (zh) * 2022-06-28 2023-10-20 蚂蚁区块链科技(上海)有限公司 区块链***中的共识方法、装置、计算设备和计算机可读存储介质
CN116170289A (zh) * 2022-08-01 2023-05-26 北京奥星贝斯科技有限公司 一种节点选举的方法、装置、存储介质及电子设备
CN115048337B (zh) * 2022-08-15 2022-11-08 南方科技大学 基于tee的拜占庭容错共识方法及相关设备

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3337119B1 (en) * 2016-12-13 2019-09-11 Nxp B.V. Updating and distributing secret keys in a distributed network
CN107392040B (zh) * 2017-04-28 2019-08-09 阿里巴巴集团控股有限公司 一种共识验证的方法及装置
CN107220130B (zh) * 2017-05-12 2021-12-07 北京众享比特科技有限公司 一种在区块链的节点处实现的信息共识方法、装置及***
US10887090B2 (en) * 2017-09-22 2021-01-05 Nec Corporation Scalable byzantine fault-tolerant protocol with partial tee support
CN108111604B (zh) * 2017-12-21 2020-08-14 广州广电运通金融电子股份有限公司 区块链共识方法、装置和***、标识信息处理方法和装置
CN109064328B (zh) * 2018-07-09 2022-04-15 夸克链科技(深圳)有限公司 一种区块链的共识方法
EP3549306A4 (en) * 2018-11-07 2020-01-01 Alibaba Group Holding Limited RECOVERY OF ENCRYPTED TRANSACTION INFORMATION IN CONFIDENTIAL BLOCK CHAIN TRANSACTIONS
CN109727029A (zh) * 2018-12-18 2019-05-07 杭州茂财网络技术有限公司 一种联盟链共识方法和***
CN109995536A (zh) * 2019-03-15 2019-07-09 广州杰赛科技股份有限公司 一种区块链共识方法、装置及可读存储介质
CN110636113A (zh) * 2019-08-23 2019-12-31 上海电力大学 区块链的拜占庭容错共识方法、***、设备和存储介质
CN114401150B (zh) * 2019-09-05 2023-10-20 创新先进技术有限公司 区块链网络中加入节点的方法和区块链***
CN111191292A (zh) * 2019-12-16 2020-05-22 平安壹钱包电子商务有限公司 记账方法、装置、***及计算机可读存储介质
CN111612455A (zh) * 2020-04-21 2020-09-01 国网江苏省电力有限公司电力科学研究院 一种面向用电信息保护的拜占庭容错联盟链共识方法及其***、存储介质

Also Published As

Publication number Publication date
CN112865959A (zh) 2021-05-28
WO2022141700A1 (zh) 2022-07-07

Similar Documents

Publication Publication Date Title
CN112865959B (zh) 分布式节点设备的共识方法、节点设备及分布式网络
JP6811339B2 (ja) 高可用な高信頼実行環境を使用したブロックチェーンネットワークのためのパブリックデータの読み出し
JP6547079B1 (ja) 登録・認可方法、装置及びシステム
CN108768978B (zh) 一种基于sgx的远端存储服务方法及***
WO2019119929A1 (zh) 区块链共识方法、装置和***、标识信息处理方法和装置
CN112926051B (zh) 多方安全计算方法和装置
CN112311735B (zh) 可信认证方法,网络设备、***及存储介质
CN110832519A (zh) 提高区块链网络与外部数据源之间的通信的完整性
CN112651037B (zh) 区块链***的链外数据访问方法和***
US20210143986A1 (en) Method for securely sharing data under certain conditions on a distributed ledger
CN101241528A (zh) 终端接入可信pda的方法和接入***
CN113987554B (zh) 获取数据授权的方法、装置及***
CN113098697B (zh) 一种区块链数据写入、访问方法及装置
CN113259123B (zh) 一种区块链数据写入、访问方法及装置
US20210359847A1 (en) Exchanging Cryptographic Key Information
CN113722749A (zh) 基于加密算法的区块链baas服务的数据处理方法及装置
CN116881936A (zh) 可信计算方法及相关设备
CN115549984A (zh) 跨链交易方法、装置、设备和存储介质
CN113259124A (zh) 一种区块链数据写入、访问方法及装置
EP3200388A1 (en) User permission check system
US11784790B2 (en) Method for operating keystream generators for secure data transmission, the keystream generators being operated in counter mode, keystream generator having counter mode operation for secure data transmission, and computer program product for keystream generation
Shipman et al. A Zero Trust Architecture for Automotive Networks
CN113098696A (zh) 一种区块链数据写入、访问方法及装置
Andréasson et al. Device Attestation for In-Vehicle Network
CN116388992A (zh) 针对分布式tee应用的远程认证方法及装置

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
CB03 Change of inventor or designer information

Inventor after: Qiu Weiwei

Inventor after: Li Wei

Inventor after: Zhang Kejie

Inventor after: Huang Fanglei

Inventor after: Hu Maifang

Inventor after: Wang Guangren

Inventor before: Qiu Weiwei

Inventor before: Li Wei

Inventor before: Zhang Kejie

Inventor before: Huang Fanglei

Inventor before: Hu Maifang

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant