CN115134145B - 区块链系统中的共识方法、装置、计算设备和计算机可读存储介质 - Google Patents

区块链系统中的共识方法、装置、计算设备和计算机可读存储介质 Download PDF

Info

Publication number
CN115134145B
CN115134145B CN202210742536.5A CN202210742536A CN115134145B CN 115134145 B CN115134145 B CN 115134145B CN 202210742536 A CN202210742536 A CN 202210742536A CN 115134145 B CN115134145 B CN 115134145B
Authority
CN
China
Prior art keywords
consensus
node
tee
proposal
state
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
CN202210742536.5A
Other languages
English (en)
Other versions
CN115134145A (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.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Ant Blockchain Technology Shanghai 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 Ant Blockchain Technology Shanghai Co Ltd filed Critical Ant Blockchain Technology Shanghai Co Ltd
Priority to CN202210742536.5A priority Critical patent/CN115134145B/zh
Publication of CN115134145A publication Critical patent/CN115134145A/zh
Application granted granted Critical
Publication of CN115134145B publication Critical patent/CN115134145B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/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)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

一种区块链系统中的共识方法、装置和节点。区块链系统包括第一节点和N个第二节点,方法包括:第一节点的TEE从TEE外获取第一节点提供的拟提议信息,包括与多个交易对应的多个第一密文以及其排列顺序,生成拟提议信息的第一签名,向TEE外提供第一签名以及用于解密多个第一密文的多个第一密钥,并由允许处理拟提议信息的第一状态进入禁止处理拟提议信息的第二状态;第一节点和N个第二节点对第一节点生成的共识提议进行共识,其中包括拟提议信息、第一签名和多个第一密钥;第一节点的TEE从TEE外获取共识凭证,根据共识凭证、拟提议信息、第一签名以及多个第一密钥确定是否对共识提议达成共识,在确定对共识提议达成共识后,由第二状态进入第一状态。

Description

区块链系统中的共识方法、装置、计算设备和计算机可读存储 介质
技术领域
本说明书实施例属于计算机技术领域,尤其涉及区块链系统中的共识方法、装置和节点。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
发明内容
本发明的目的在于提供一种区块链系统中的共识方法、装置和节点。
第一方面,提供了一种区块链系统中的共识方法,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述方法应用于所述第一节点的可信执行环境(Trusted Execution Environment,TEE)。所述方法包括:从所述TEE外获取拟提议信息,所述拟提议信息中包括与多个交易对应的多个第一密文以及其排列顺序,所述TEE中包括用于解密所述多个第一密文的多个第一密钥;生成所述拟提议信息的第一签名,向所述TEE外提供所述第一签名以及所述多个第一密钥,并由第一状态进入第二状态,使所述第一节点和所述N个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括所述拟提议信息、所述第一签名和所述多个第一密钥,所述TEE处于所述第一状态时允许处理拟提议信息,处于所述第二状态时禁止处理拟提议信息;从所述TEE外获取共识凭证,并根据所述共识凭证、所述拟提议信息、所述第一签名以及所述多个第一密钥,确定是否对所述共识提议达成共识;确定对所述共识提议达成共识后,由所述第二状态进入所述第一状态。
第二方面,提供了一种区块链系统中的共识方法,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述方法应用于所述第一节点。所述方法包括:向所述第一节点的TEE提供拟提议信息,其中包括与多个交易对应的多个第一密文以及其排列顺序,使所述TEE返回所述拟提议信息的第一签名以及用于解密所述多个第一密文的多个第一密钥,并由第一状态进入第二状态,所述TEE处于所述第一状态时允许处理拟提议信息,处于所述第二状态时禁止处理拟提议信息;生成共识提议,所述共识提议包括所述拟提议信息、所述第一签名和所述多个第一密钥;与所述N个第二节点对所述共识提议进行共识;在对所述共识提议达成共识的情况下,向所述TEE提供共识凭证,使所述TEE在根据所述共识凭证确定对所述共识提议达成共识的情况下由所述第二状态进入所述第一状态。
第三方面,提供了一种区块链系统中的共识方法,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述方法应用于任一所述第二节点。所述方法包括:与所述第一节点以及其余N-1个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括拟提议信息、由所述第一节点的TEE提供的所述拟提议信息的第一签名以及多个第一密钥,所述拟提议信息包括与多个交易对应的多个第一密文以及其排列顺序,所述多个第一密钥用于解密所述多个第一密文;其中所述第二节点在所述第一签名未通过验证的情况下不赞同所述共识提议。
第四方面,提供了一种区块链系统中的共识装置,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述装置部署在所述第一节点的TEE中。所述装置包括:提议获取单元,配置为从所述TEE外获取拟提议信息,所述拟提议信息中包括与多个交易对应的多个第一密文以及其排列顺序,所述TEE中包括用于解密所述多个第一密文的多个第一密钥;提议处理单元,配置为生成所述拟提议信息的第一签名,向所述TEE外提供所述第一签名以及所述多个第一密钥,并由第一状态进入第二状态,使所述第一节点和所述N个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括所述拟提议信息、所述第一签名和所述多个第一密钥,所述TEE处于所述第一状态时允许处理拟提议信息,处于所述第二状态时禁止处理拟提议信息;验证处理单元,配置为从所述TEE外获取共识凭证,并根据所述共识凭证、所述拟提议信息、所述第一签名以及所述多个第一密钥,确定是否对所述共识提议达成共识;确定对所述共识提议达成共识后,由所述第二状态进入所述第一状态。
第五方面,提供了一种区块链系统中的共识装置,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述装置部署在所述第一节点的TEE外。所述装置包括:预提议单元,配置为向所述第一节点的TEE提供拟提议信息,所述拟提议信息包括与多个交易对应的多个第一密文以及其排列顺序,使所述TEE返回所述拟提议信息的第一签名以及用于解密所述多个第一密文的多个第一密钥,并由第一状态进入第二状态,所述TEE处于所述第一状态时允许处理拟提议信息,处于所述第二状态时禁止处理拟提议信息;提议生成单元,配置为生成共识提议,所述共识提议包括所述拟提议信息、所述第一签名和所述多个第一密钥;共识处理单元,配置为与所述N个第二节点对所述共识提议进行共识;在对所述共识提议达成共识的情况下,向所述TEE提供共识凭证,使所述TEE在根据所述共识凭证确定对所述共识提议达成共识的情况下由所述第二状态进入所述第一状态。
第六方面,提供了一种区块链系统中的第二节点,所述区块链系统中还包括当前被选举为共识提议节点的第一节点,所述第二节点是当前未被选举为共识提议的N个第二节点之一;所述第二节点,用于与所述第一节点以及其余N-1个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括拟提议信息、由所述第一节点的TEE提供的所述拟提议信息的第一签名以及多个第一密钥,所述拟提议信息包括与多个交易对应的多个第一密文以及其排列顺序,所述多个第一密钥用于解密所述多个第一密文;其中所述第二节点在所述第一签名未通过验证的情况下不赞同所述共识提议。
第七方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序/指令,所述处理器执行所述计算机程序/指令时,实现第一方面或第二方面中所述的方法。
第八方面,提供了一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,计算设备执行第一方面或第二方面中所述的方法。
上述实施例中,共识提议节点的TEE对拟提议信息的第一签名需要包含在共识提议节点发起的包含该拟提议信息的共识提议中,该第一签名可以用于验证共识提议中的拟提议信息的完整性,避免共识提议节点在其TEE外对已经由TEE签名的拟提议信息进行更改。而且共识提议节点的TEE在完成处理拟提议信息后将会进入禁止处理拟提议信息的第二状态,当且仅当其在确定对包含已被其处理过的拟提议信息的共识提议达成共识后,才会由第二状态进入允许处理拟提议信息的第一状态,从而可以确保共识提议节点无法从其TEE中恶意骗取用于解密并未进行共识的第一密文的第一密钥。如此,共识提议节点无法预知需要执行的各个交易,共识过程中无法通过对不同的交易进行区分服务,区块链系统具有更高的公平性。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为为本说明书实施例中示例性提供的PBFT共识算法中的共识过程示意图;
图2为本说明书实施例中示例性提供的区块链系统的示意图;
图3为本说明书实施例中提供的选举共识提议节点的过程示意图;
图4为为示例性提供的第一节点获得用于生成拟提议信息的第一密文的过程示意图;
图5为本说明书实施例中示例性提供的用户设备向第一节点传输数据的过程示意图之一;
图6为本说明书实施例中示例性提供的用户设备向第一节点传输数据的过程示意图之二;;
图7为本说明书实施例中提供的一种区块链系统中的共识方法的流程图;
图8为本说明书实施例中提供的一种区块链系统中的共识装置的示意图之一;
图9为本说明书实施例中提供的一种区块链系统中的共识装置的示意图之二。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
区块链系统是通过多个节点(Node)来建立的分布式网络,区块链系统中的不同节点间通过对等(Peer-to-Peer,P2P)网络实现在应用层的通信连接。利用链式区块结构构造的去中心化(或称为多中心化)的分布式账本,保存于分布式的区块链网络中的每个节点(或大多节点上,如共识节点)上。这样的区块链系统需要解决去中心化(或多中心化)的多个节点上各自的账本数据的一致性和正确性的问题。每个节点上都运行着区块链程序,在一定容错需求的设计下,通过共识(consensus)机制保证所有忠诚节点具有相同的交易,从而保证所有忠诚节点对相同交易的执行结果一致,将交易打包成区块并基于相同交易的执行结果更新世界状态。其中当前主流的共识机制可以包括但不限于:工作量证明(Proof ofWork,POW)、股权证明(Proof of Stake,POS)、实用拜占庭容错(Practical ByzantineFault Tolerance,PBFT)算法,以及蜜獾拜占庭容错(HoneyBadgerBFT)算法等等。
图1为本说明书实施例中示例性提供的PBFT共识算法中的共识过程示意图。请参见图1所示,根据PBFT共识算法可将共识过程划分为请求、预备、准备和提交四个阶段。假设区块链系统中包括节点0~节点3等四个共识节点,其中节点0例如为主节点,节点1~节点3例如为从节点,根据PBFT算法在节点0-节点3中可容忍f=1个恶意节点。具体是,在请求阶段,节点0例如可以接收区块链系统的用户通过其用户设备向区块链系统发送的请求,该请求例如为区块链交易的形式。在预备阶段,节点0在接收到来自若干用户设备的多个交易之后,可将该多个交易打包为共识提议,并将该共识提议及节点0对该共识提议的签名发送给其他共识节点(即节点1-节点3),以用于生成区块,该共识提议中可以包括该多个交易以及其共识顺序/提交顺序等信息。在准备阶段,各个从节点可对共识提议进行签名并发送给其他各个节点。假设节点3为恶意节点,节点0、节点1和节点2在分别接收到2f=2个其他共识节点的对共识提议的签名之后,可确定准备阶段完成,可进入提交阶段。例如节点0在接收到节点1和节点2的签名之后,验证节点1和节点2的签名都是正确的对共识提议的签名,则确定准备阶段完成,节点1在接收到节点2的签名和预备阶段节点0的签名并验证通过之后,确定准备阶段完成。在提交阶段,各个共识节点对共识提议进行提交阶段的签名并发送给其他各个共识节点,各个共识节点在接收到2f=2个其他共识节点的提交阶段的签名之后,可确定提交阶段完成,共识成功。例如,节点0在接收到节点1和节点2的提交阶段的签名并验证之后,确定提交阶段完成,从而节点0可根据共识提议执行其包含的多个交易,生成包括该多个交易的区块,并根据该多个交易的执行结果更新世界状态。类似地,节点1和节点2在确定提交阶段完成之后,生成包括该多个交易的区块,并根据该多个交易的执行结果更新世界状态。通过上述过程,实现了节点0、节点1和节点2存储的数据的一致性。即节点0-节点3在存在一个恶意节点的情况下仍可以实现对共识提议的共识成功,完成对多个交易的执行并生成区块。
前文虽然示例性描述了节点0~节点3执行共识机制的过程,然而可以理解的是区块链系统中还可以包括更多的共识节点,甚至区块链系统中还可以包括除共识节点以外的若干非共识节点。例如参照图2所示的区块链系统,其还可以包括节点4,而节点4既可能作为共识节点,也可能作为非共识节点。其中非共识节点可以从共识节点同步区块和世界状态,例如作为非共识节点的节点4可以从作为共识节点的节点0接收共识结果,该共识结果例如是节点0生成的区块或其与其余共识节点达成共识的共识提议,进而使得节点4可以基于共识结果生成相应的区块并对应更新其存储的世界状态,保证不同节点存储的数据的一致性。
参照前文所述,主节点(共识提议节点)可能对其接收的多个交易按照某种顺序进行打包以生成共识提议。如果主节点作恶,则其可能根据交易中暴露的发送方字段(from)、接收方字段(to)等信息,对不同交易进行区分服务。例如主节点可能有选择的将某个交易优先或推迟打包到共识提议中,以便某个交易被优先执行或推迟执行,影响区块链系统的公平性。
本说明书实施例中提供的一种区块链系统中的共识方法、装置和节点。该区块链系统中可以包括N+1个共识节点,该N+1个共识节点中包含1个由该N+1个共识节点选举的共识提议节点,N的取值例如为3f或3f+1,f的值为大于0的整数。该N+1个共识节点均配置TEE,此外该N+1个共识节点的TEE共享1组非对称密钥,该组非对称密钥的公钥key11可以用于与区块链系统连接的用户设备对其获取的交易进行加密,该N+1个共识节点的TEE均可持有该组非对称密钥的私钥key12。该N+1个共识节点各自的TEE中,还可以维护用于对交易的进行加解密处理的对称密钥key2,使得该N+1个共识节点中任意共识节点在其TEE内利用该对称密钥key2生成与某个交易对应的密文后,该密文能够被其余N个共识节点利用该对称密钥进行解密。
区块链系统启动时,或者说前述N+1个共识节点中的任意节点被作为参与执行前述各种共识机制的共识节点时,由于任意共识节点的TEE均可能通过其私钥key31按需实施对某些数据进行签名,与私钥key31对应的公钥key32可以被输出到其余N个共识节点,其余N个共识节点还可以将其接收的公钥key32提供给其各自的TEE,进而使其余N个共识节点可以在其TEE内或TEE外对在该共识节点的TEE中生成的签名进行验证。此外,任意共识节点与其余N个共识节点对某个共识提议进行共识的过程中,可能通过其持有的私钥key41对相应的数据例如共识提议进行签名,因此与私钥key41对应的公钥key42可以被输出到其余N个共识节点,其余N个共识节点还可以将其接收的公钥key42提供给其各自的TEE,进而使得其余N个共识节点可以在其TEE内或TEE外使用公钥key42验证该任意节点对相应数据生成的签名。
图3为本说明书实施例中提供的选举共识提议节点的过程示意图。需要说明的是图3示例的过程仅仅是示例性的,确保任意共识节点以及其TEE能够准确判断该任意共识节点是否被选举为共识提议节点即可。此外图3中示例的是节点0以及其TEE在选举共识提议节点时所需执行的方法步骤,可以理解的是对于前述N+1个共识节点中除节点0以外的其余N个共识节点,均可以执行与节点0相同或相似的过程,进而完成从N+1个共识节点中选举出共识提议节点。
步骤31,节点0向其TEE提供选举码获取请求。
选举码获取请求中可以包括区块链系统中当前最新生成的区块的区块高度vote_block。如果要求选举码获取请求中包含vote_block,则需要执行步骤32,否则直接执行如下步骤33。
步骤32,TEE根据vote_block和最后一次从TEE外获取的拟提议信息中所包含的区块高度propose_block,确定是否向TEE外提供允许节点0被选举为共识提议节点的选举码。
其中propose_block是指节点0最后一次向其TEE提供拟提议信息时,区块链系统中当前最新生成的区块的区块高度。如果propose_block和vote_block,说明节点0在本轮选举共识提议节点之前已经是共识提议节点,可拒绝向TEE外提供允许节点0被选举为共识提议节点的选举码,更具体地说是节点0的TEE可以不再继续执行后续步骤33,或者通过后续步骤33向TEE外提供的选举码会使节点0无法被选中为选举码,使得节点0无法被连续两次被选举为共识提议节点,进而使得曾被选举为共识提议节点的节点0因某种机制被确定为恶意节点而触发重新选举共识提议节点时,已经被确定为恶意节点的节点0无法继续被选举为共识提议节点。
步骤33,向TEE外提供选举码。
步骤34,节点0向其余N个共识节点广播其TEE返回的选举码,并从其余N个共识节点接收其各自广播的选举码。
步骤35,节点0向其TEE提供来自其余共识节点的选举码。
步骤361,TEE根据各个选举码生成第二签名。
步骤362,向TEE外提供第二签名。
步骤37,节点0向其余N个共识节点广播其TEE返回的第二签名,并从其余N个共识节点接收其各自广播的第二签名。
步骤38,节点0向其TEE提供来自其余共识节点的第二签名。
通过前述步骤31~步骤35,N+1个共识节点的TEE均可能获得多个选举码。进而,如步骤361所述,N+1个节点各自的TEE均可以执行相同的算法从其获得的多个选举码中选择1个选举码进行签名;假设节点0的TEE可以获得节点0从其余N个共识节点接收的N个选举码,如此则其实质上获得了包含节点0的TEE自身提供的选举码在内的N+1个选举码,节点0的TEE可以去除该N+1个选举码中表征不允许相应节点被选举为共识提议节点的m个选举码,包括去除在前一次执行选举共识提议节点时被选举为共识提议节点的TEE所提供的选举码,进而计算剩余的N+1-m个选举码各自的哈希值,利用相应的私钥生成哈希值最小/最大的选举码的第二签名。
步骤391,TEE根据各个第二签名确定节点0是否被选举为共识提议节点。
步骤392,节点0根据各个第二签名确定节点0是否被选举为共识提议节点。
节点0及其TEE不仅可以基于各个第二签名确定其自身是否被选举为共识提议节点,还能够基于各个第二签名确定出具体是某个节点被选举为共识提议节点。例如可以通过对第二签名进行验证以确定出与该第二签名对应的特定选举码,当与某个特定选举码对应的第二签名的数量达到预定数量时,提供该特定选举码的TEE所属的节点即可被确定为共识提议节点。
前述N+1个共识节点各自的TEE可以分别维护其所处的状态,例如通过相应的状态机维护TEE处于第一状态或第二状态。其中在TEE处于第一状态时,允许将来自TEE外的与交易对应的第二密文处理为将要用于生成拟提议信息的第一密文,允许处理来自TEE外的拟提议信息;在处于第二状态时,禁止将来自TEE外的与交易对应的第二密文处理为将要用于生成拟提议信息的第一密文,并且禁止处理来自TEE外的拟提议信息。第二密文的数据结构、拟提议信息的数据结构以及TEE处理第二密文和拟提议信息的过程将在后续过程中进行详细描述。
通过前述图3示例性提供的过程选举出共识提议节点后,N+1个共识节点中未被选举为共识提议节点的节点的TEE需要持续处于第二状态,被选举为共识提议节点的节点的TEE会由第二状态进入第一状态。本文中为了方便描述,将N+1个共识节点中当前被选举为共识提议节点的节点表述为第一节点,其余N个未被选举为共识提议节点的节点均表述为第二节点。
下面接着描述第一节点获得将要用于生成前述拟提议信息的第一密文的过程。
图4为示例性提供的第一节点获得用于生成拟提议信息的第一密文的过程示意图。需要特别说明的是图4示例的过程仅仅是示例性的,确保第一节点在其TEE获得第一密文的过程中,无法在其TEE外准确获知与该第一密文对应的交易的相关信息(例如交易的发送方字段和/或接收方字段)即可。如图4所示,第一节点获得第一密文的过程可以包括如下步骤41~步骤493。
步骤41,第一节点接收与交易对应的第二密文。
前述第二密文可以由用户设备对其获取的交易进行加密以生成,例如由用户设备利用前述的公钥key11对其获取的交易进行加密以得到与该交易对应的第二密文。
或者为了防止用户设备和第一节点联合作恶,导致第一节点在其TEE外预先获知特定交易的第二密文而优先或推迟执行该交易,可以要求用户设备对其获取的交易进行加密后发送至与其连接的第二节点,进而由位于用户设备与第一节点间的通信链路上的某个第二节点在其TEE中生成与该交易对应的第二密文。其中在第二密文由某个第二节点在其TEE中生成的情况下,该第二密文具体可以是由该第二节点在其TEE中对相应的交易以及该第二节点自身的标识生成的,或者具体可以是在该第二节点的TEE中对相应的交易以及用户设备与第一节点间的通信链路上的每个第二节点各自的标识生成的。其中第二节点的标识可以是其TEE外部无法伪造的标识,例如是利用第二节点的私钥对其余节点均知悉的数据的签名,或者第二节点的标识还可以是其最近一次执行选举共识提议节点时由其TEE提供的选举码。
假设节点0是第一节点,节点1~节点3是第二节点且用户设备与节点2连接,节点1~节点3各自的标识依次是d1~d3。请参见图5,用户设备可以向节点2发送利用前述公钥key11对交易Tx1进行加密以得到的密文E1(key11,Tx1),E1表征该用户设备对交易Tx1进行加密时使用的加密算法。接着节点2可在其TEE中利用与公钥key11对对应的前述私钥key12对E1(key11,Tx1)进行解密以获得Tx1,利用前述对称密钥key2和对称加密算法E2对Tx1以及节点2的标识d2进行加密以得到新的密文E2(key2,d2,Tx1),无论节点2与节点0间的通信链路上是否还包括其它第二节点,密文E2(key2,d2,Tx1)均可作为与交易Tx1对应的第二密文发送到节点0。
请参见图6,继续假设用户设备与节点0间的通信链路上除了节点2以外,还包括依次连接的节点3和节点1等其它第二节点。节点2在其TEE中获得密文E2(key2,d2,Tx1)后,密文E2(key2,d2,Tx1)将发送至节点3。节点3可以在其TEE中利用对称密钥Key2将密文E2(key2,d2,Tx1)处理为密文E2(key2,d3,Tx1)或者密文E2(key3,d2,d3,Tx1)。节点1可以在其TEE中将来自节点3的密文E2(key2,d3,Tx1)处理为密文E2(key2,d1,Tx1),或者在其TEE中将来自节点3的密文E2(key2,d2,d3,Tx1)处理为密文E2(key2,d2,d3,d1,Tx1)。其中E2(key2,d1,Tx1)或者密文E2(key2,d2,d3,d1,Tx1)可以被作为交易Tx1的第二密文发送至节点0。
回到图4,在步骤43,第一节点向其TEE提供第二密文。
由于第一节点的TEE在其确定第一节点被选举为共识提议节点后,由第二状态进如第一状态,处于第一状态的第一节点可以继续执行如下步骤45以及其后续步骤以处理第二密文。
在步骤45,TEE对第二密文进行解密以获得解密结果。其中该第二密文的解密结果中至少包括与该第二密文相对应的交易。
当允许用户设备直接生成由第一节点接收的第二密文的情况下,例如在TEE中可以利用前述的私钥key12对第二密文进行解密以得到相应的交易,进而可以直接执行步骤491。
当不允许用户设备直接生成由第一节点接收的第二密文,而是要求第一节点接收的第二密文由第二节点生成的情况下,参照前文由第二节点生成第二密文的过程可知,第二密文的解密结果中还应当包括至少一个第二节点的标识。进而,如果某个第二密文的解密结果中并并未包含至少一个第二节点的标识,则说明该第二密文可能由用户设备直接发送至第一节点,存在用户设备与第一节点联合作恶而优先或推迟执行该第二密文所对应的交易的可能性。因而在此种情况下,第一节点还可以执行步骤47,TEE确定第二密文的解密结果是否包含至少一个第二节点的标识,如果是则执行如下步骤步骤491。
在步骤491,TEE生成与解密结果中所包含的交易相对应的第一密文,并确定用于解密该第一密文的第一密钥。其中对于在TEE中通过对第二密文进行解密以获得的交易例如Tx1,可在TEE中随机获取1个非对称密钥对或者随机获取1个对称密钥。进而通过该非对称密钥对中的私钥或者对称密钥对交易Tx1进行加密,获得与交易Tx1对应的第一密文,其中非对称密钥对中的公钥或该对称密钥即为与该第一密文对应的第一密钥。
在步骤493,向TEE外提供该第一密文。
其中TEE还可以记录其向TEE外提供的各个第一密文的顺序。
第一节点在通过例如前述图4示例性提供的过程获得与多个交易对应的多个第一密文后,可以基于与多个交易对应的多个第一密文启动对该多个交易的共识过程。
图7为本说明书实施例中提供的一种区块链系统中的共识方法的流程图。
在步骤71,第一节点向其TEE提供拟提议信息,拟提议信息中包括与多个交易对应的多个第一密文以及其排列顺序。其中需要说明的是,该多个第一密文由第一节点的TEE返回时,该多个第一密文在拟提议信息中的排列顺序可以和TEE返回该多个第一密文的顺序相同。
在步骤731,TEE生成拟提议信息的第一签名。
在步骤733,向TEE外提供第一签名以及用于解密拟提议信息中的多个第一密文的多个第一密钥。其中参照前文所述,对于单个第一密文而言,用于解密该第一密文的第一密钥可以是其对应的某个非对称密钥对中的公钥,也可以是其对应的某个对称密钥。
在步骤735,TEE由第一状态进入第二状态。
在步骤751,第一节点生成共识提议,其中包括拟提议信息、第一签名和多个第一密钥。
在步骤753,第一节点与N个第二节点对共识提议进行共识。其中对共识提议进行共识的过程中,第二节点可以对第一签名进行验证。
参照前文所述,第一节点在其TEE中通过相应的私钥例如key31对拟提议信息进行签名,每个第二节点均持有与私钥key31对应的公钥key32,因此每个第二节点在其接收到来自第一节点的共识提议后,均可使用其持有的公钥key32来验证共识提议中所包含的第一签名,以确定拟提议信息的完整性是否受到破坏,在第一签名通过验证的情况下,即第二节点接收的共识提议中的拟提议信息的完整性未受到破坏的情况下,第二节点才继续执行对共识提议进行共识的过程,否则第二节点可以拒绝赞同该共识提议,例如拒绝/终止执行在前述图1所示共识处理过程中的准备阶段向第一节点以及其余N-1个第二节点广播其对共识提议的签名。
在步骤77,第一节点在对共识提议达成共识的情况下,向其TEE提供共识凭证。
第一节点与N个第二节点对共识提议进行共识的过程中,可以采用前文描述的各种共识机制,例如第一节点和N个第二节点可以采用与前述图1中预备、准备和提交等阶段相似的过程完成对共识提议进行共识,此处不再赘述。需要特别说明的是,在对共识提议达成共识的情况下,参与对共识提议进行共识的第一节点和N个第二节点均可能获得由第一节点和N个第二节点生成的至少Q个表征赞同共识提议的签名,该至少Q个表征赞同共识提议的签名可以作为表征对共识提议达成共识的共识凭证,其中Q的取值基于第一节点和N个第二节点的总量进行确定,例如第一节点和N个第二节点的总量可以为3f+1或者3f+2个,则Q的取值应当不小于2f。此外前述表征赞同共识提议的签名,例如可以为前述示例的PBFT共识算法中,第一节点和N个第二节点在提交阶段生成的相关于共识提议的正确签名。
对共识提议达成共识的情况下,第一节点还可以在其TEE外利用与多个第一密文对应的多个密钥分别解密多个第一密文,获得与多个第一密文对应的多个交易并执行该多个交易。
步骤791,TEE根据共识凭证、拟提议信息、第一签名以及多个第一密钥,确定是否对共识提议达成共识。由于TEE中的拟提议信息、第一签名和多个第一密钥实质上组成第一节点生成的共识提议,因此步骤791中实质上可以是确定共识凭证中是否包含由N个第二节点生成的至少Q个表征赞同共识提议的签名,例如N个第二节点各自在前述图1所示的准备阶段广播的对由第一节点生成的共识提议的正确签名。
步骤793,TEE在确定对共识提议达成共识的情况下,由第二状态进入第一状态。
通过本说明书实施例中提供的前述各个方法实施例,共识提议节点的TEE对拟提议信息的第一签名需要包含在共识提议节点发起的包含该拟提议信息的共识提议中,该第一签名可以用于验证共识提议中的拟提议信息的完整性,避免共识提议节点在其TEE外对已经由TEE签名的拟提议信息进行更改。而且,共识提议节点的TEE在完成处理拟提议信息后将会进入禁止处理拟提议信息的第二状态,当且仅当其在确定对包含已被其处理过的拟提议信息的共识提议达成共识后,才会由第二状态进入允许处理拟提议信息的第一状态,从而可以确保共识提议节点无法从其TEE中恶意骗取用于解密并未进行共识的第一密文的第一密钥。如此,共识提议节点无法预知需要执行的各个交易,共识过程中无法通过对不同的交易进行区分服务,区块链系统具有更高的公平性。
对于非共识提议节点而言,其TEE是在“准确获知其已经被选举为共识提议节点”时,才处理与交易对应的第二密文并输出相应的第一密文,当其TEE持有共识提议节点的正确的签名公钥时,其无法伪造其它节点的签名来让其TEE相信“其已经被选举为共识提议节点”。进而,其仅可以在对共识提议节点发起的共识提议进行共识的过程中,才能获得与交易对应的第一密文以及用于对第一密文进行解密的第一密钥,无法影响交易的执行顺序。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种区块链系统中的共识装置,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述装置部署在所述第一节点的TEE中。如图8所示,该装置包括:提议获取单元81,配置为从所述TEE外获取拟提议信息,所述拟提议信息中包括与多个交易对应的多个第一密文以及其排列顺序,所述TEE中包括用于解密所述多个第一密文的多个第一密钥;提议处理单元83,配置为生成所述拟提议信息的第一签名,向所述TEE外提供所述第一签名以及所述多个第一密钥,并由第一状态进入第二状态,使所述第一节点和所述N个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括所述拟提议信息、所述第一签名和所述多个第一密钥,所述TEE处于所述第一状态时允许处理拟提议信息,处于所述第二状态时禁止处理拟提议信息;验证处理单元85,配置为从所述TEE外获取共识凭证,并根据所述共识凭证、所述拟提议信息、所述第一签名以及所述多个第一密钥,确定是否对所述共识提议达成共识;确定对所述共识提议达成共识后,由所述第二状态进入所述第一状态。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种区块链系统中的共识装置,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述装置部署在所述第一节点的TEE外。如图9所示,所述装置包括:预提议单元91,配置为向所述第一节点的TEE提供拟提议信息,其中包括与多个交易对应的多个第一密文以及其排列顺序,使所述TEE返回所述拟提议信息的第一签名以及用于解密所述多个第一密文的多个第一交易,并由第一状态进入第二状态,所述TEE处于所述第一状态时允许处理拟提议信息,处于所述第二状态时禁止处理拟提议信息;提议生成单元93,配置为生成共识提议,其中包括所述拟提议信息、所述第一签名和所述多个第一密钥;共识处理单元95,配置为与所述N个第二节点对所述共识提议进行共识;在对所述共识提议达成共识的情况下,向所述TEE提供共识凭证,使所述TEE在基于所述共识凭证确定对所述共识提议达成共识的情况下由所述第二状态进入所述第一状态。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种区块链系统中的第二节点,所述区块链系统中还包括当前被选举为共识提议节点的第一节点,所述第二节点是当前未被选举为共识提议的N个第二节点之一,用于与所述第一节点以及其余N-1个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括拟提议信息、由所述第一节点的TEE提供的所述拟提议信息的第一签名以及多个第一密钥,所述拟提议信息包括与多个交易对应的多个第一密文以及其排列顺序,所述多个第一密钥用于解密所述多个第一密文;其中所述第二节点在所述第一签名未通过验证的情况下不赞同所述共识提议。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (18)

1.一种区块链系统中的共识方法,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述方法应用于所述第一节点的可信执行环境TEE,所述方法包括:
从所述TEE外获取拟提议信息,所述拟提议信息中包括与多个交易对应的多个第一密文以及其排列顺序,所述TEE中包括用于解密所述多个第一密文的多个第一密钥;
生成所述拟提议信息的第一签名,向所述TEE外提供所述第一签名以及所述多个第一密钥,并由第一状态进入第二状态,使所述第一节点和所述N个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括所述拟提议信息、所述第一签名和所述多个第一密钥,所述TEE处于所述第一状态时允许处理拟提议信息,处于所述第二状态时禁止处理拟提议信息;
从所述TEE外获取共识凭证,并根据所述共识凭证、所述拟提议信息、所述第一签名以及所述多个第一密钥,确定是否对所述共识提议达成共识;
确定对所述共识提议达成共识后,由所述第二状态进入所述第一状态。
2.根据权利要求1所述的方法,所述方法还包括:
对从所述TEE外获取的第二密文进行解密以获得解密结果,所述解密结果中包括与所述第二密文对应的交易;
对所述解密结果中的交易进行加密以获得其对应的第一密文,确定用于解密所述第一密文的第一密钥,并向所述TEE外提供所述第一密文。
3.根据权利要求2所述的方法,所述方法还包括:确定所述解密结果中是否包括至少一个所述第二节点的标识。
4.根据权利要求2所述的方法,所述第一密钥是所述TEE在获得所述第二密文后随机获取的对称密钥。
5.根据权利要求2所述的方法,所述方法还包括:确定所述多个第一密文的排列顺序与向所述TEE外提供各个所述第一密文的顺序是否相同。
6.根据权利要求2-5中任一项所述的方法,在所述第一节点被选举为共识提议节点之前,所述方法还包括:
从所述TEE外获取选举码获取请求;
向所述TEE外提供选举码,使所述N个第二节点各自在其TEE中基于所述选举码生成表征是否赞成所述第一节点被选举为共识提议节点的第二签名;
从所述TEE外获取各个所述第二签名,根据各个所述第二签名确定所述第一节点是否被选举为共识提议节点,并在确定所述第一节点被选举为共识提议节点的情况下由所述第二状态进入所述第一状态,处于所述第一状态时允许处理第二密文,处于所述第二状态时禁止处理第二密文。
7.根据权利要求6所述的方法,所述方法还包括:根据所述选举码获取请求中的区块高度,以及在获取所述选举码获取请求之前最后一次接收的拟提议信息中的区块高度,确定是否提供允许所述第一节点被选举为共识提议节点的选举码。
8.一种区块链系统中的共识方法,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述方法应用于所述第一节点,所述方法包括:
向所述第一节点的可信执行环境TEE提供拟提议信息,所述拟提议信息中包括与多个交易对应的多个第一密文以及其排列顺序,使所述TEE返回所述拟提议信息的第一签名以及用于解密所述多个第一密文的多个第一密钥,并由第一状态进入第二状态,所述TEE处于所述第一状态时允许处理拟提议信息,处于所述第二状态时禁止处理拟提议信息;
生成共识提议,所述共识提议包括所述拟提议信息、所述第一签名和所述多个第一密钥;
与所述N个第二节点对所述共识提议进行共识;
在对所述共识提议达成共识的情况下,向所述TEE提供共识凭证,使所述TEE在根据所述共识凭证确定对所述共识提议达成共识的情况下由所述第二状态进入所述第一状态。
9.根据权利要求8所述的方法,所述方法还包括:向所述TEE提供第二密文,使所述TEE返回与所述第二密文对应的第一密文。
10.根据权利要求9所述的方法,所述第二密文来自所述N个第二节点,由对应的第二节点在其TEE中对所述对应的第二节点的标识和对应的交易进行加密以生成。
11.根据权利要求10所述的方法,所述对应的交易由所述对应的第二节点在其TTE中对第三密文进行解密以得到,所述第三密文由用户设备或其他第二节点生成。
12.根据权利要求9所述的方法,所述多个第一密文的排列顺序与所述TEE返回各个所述第一密文的顺序相同。
13.根据权利要求8-12中任一项所述的方法,在所述第一节点被选举为共识提议节点之前,所述方法还包括:
向所述TEE提供选举码获取请求,使所述TEE返回选举码;
向所述N个第二节点发送所述选举码,使所述N个第二节点各自在其TEE中基于所述选举码生成表征是否赞成所述第一节点被选举为共识提议节点的第二签名;
接收来自所述N个第二节点的各个所述第二签名,并向所述TEE提供各个所述第二签名,使所述TEE在根据各个所述第二签名确定所述第一节点被选举为共识提议节点的情况下,由所述第二状态进入所述第一状态,所述TEE处于所述第一状态时允许处理第二密文,处于第二状态时禁止处理第二密文。
14.根据权利要求13所述的方法,所述选举码获取请求中包括当前最新生成的区块的区块高度;所述拟提议信息中包括当前最新生成的区块的区块高度。
15.一种区块链系统中的共识装置,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述装置部署在所述第一节点的可信执行环境TEE中,所述装置包括:
提议获取单元,配置为从所述TEE外获取拟提议信息,所述拟提议信息中包括与多个交易对应的多个第一密文以及其排列顺序,所述TEE中包括用于解密所述多个第一密文的多个第一密钥;
提议处理单元,配置为生成所述拟提议信息的第一签名,向所述TEE外提供所述第一签名以及所述多个第一密钥,并由第一状态进入第二状态,使所述第一节点和所述N个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括所述拟提议信息、所述第一签名和所述多个第一密钥,所述TEE处于所述第一状态时允许处理拟提议信息,处于所述第二状态时禁止处理拟提议信息;
验证处理单元,配置为从所述TEE外获取共识凭证,并根据所述共识凭证、所述拟提议信息、所述第一签名以及所述多个第一密钥,确定是否对所述共识提议达成共识;确定对所述共识提议达成共识的情况下,由所述第二状态进入所述第一状态。
16.一种区块链系统中的共识装置,所述区块链系统中包括当前被选举为共识提议节点的第一节点以及未被选举为共识提议节点的N个第二节点,所述装置部署在所述第一节点的可信执行环境TEE外,所述装置包括:
预提议单元,配置为向所述第一节点的可信执行环境TEE提供拟提议信息,所述拟提议信息中包括与多个交易对应的多个第一密文以及其排列顺序,使所述TEE返回所述拟提议信息的第一签名以及用于解密所述多个第一密文的多个第一密钥,并由第一状态进入第二状态,所述TEE处于所述第一状态时允许处理拟提议信息,所述TEE处于所述第二状态时禁止处理拟提议信息;
提议生成单元,配置为生成共识提议,所述共识提议中包括所述拟提议信息、所述第一签名和所述多个第一密钥;
共识处理单元,配置为与所述N个第二节点对所述共识提议进行共识;在对所述共识提议达成共识的情况下,向所述TEE提供共识凭证,使所述TEE在基于所述共识凭证确定对所述共识提议达成共识的情况下由所述第二状态进入所述第一状态。
17.一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现权利要求1-14中任一项所述的方法。
18.一种计算机可读存储介质,其上存储有计算机程序/指令,当所述计算机程序/指令在计算设备中执行时,实现权利要求1-14中任一项所述的方法。
CN202210742536.5A 2022-06-28 2022-06-28 区块链系统中的共识方法、装置、计算设备和计算机可读存储介质 Active CN115134145B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210742536.5A CN115134145B (zh) 2022-06-28 2022-06-28 区块链系统中的共识方法、装置、计算设备和计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210742536.5A CN115134145B (zh) 2022-06-28 2022-06-28 区块链系统中的共识方法、装置、计算设备和计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN115134145A CN115134145A (zh) 2022-09-30
CN115134145B true CN115134145B (zh) 2023-10-20

Family

ID=83379806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210742536.5A Active CN115134145B (zh) 2022-06-28 2022-06-28 区块链系统中的共识方法、装置、计算设备和计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115134145B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512939A (zh) * 2018-04-17 2018-09-07 深圳市元征科技股份有限公司 一种区块链共识方法、装置及相关设备
CN110060054A (zh) * 2019-02-19 2019-07-26 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点、系统和存储介质
CN111095899A (zh) * 2019-04-26 2020-05-01 阿里巴巴集团控股有限公司 针对可信执行环境的分布式密钥管理
CN112865959A (zh) * 2020-12-30 2021-05-28 杭州趣链科技有限公司 分布式节点设备的共识方法、节点设备及分布式网络
CN113923093A (zh) * 2021-10-29 2022-01-11 博雅正链(北京)科技有限公司 一种基于可信执行环境的新型拜占庭容错共识方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10887090B2 (en) * 2017-09-22 2021-01-05 Nec Corporation Scalable byzantine fault-tolerant protocol with partial tee support
US11736271B2 (en) * 2018-09-21 2023-08-22 Nec Corporation Method for signing a new block in a decentralized blockchain consensus network

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108512939A (zh) * 2018-04-17 2018-09-07 深圳市元征科技股份有限公司 一种区块链共识方法、装置及相关设备
CN110060054A (zh) * 2019-02-19 2019-07-26 阿里巴巴集团控股有限公司 区块链中实现隐私保护的方法、节点、系统和存储介质
CN111095899A (zh) * 2019-04-26 2020-05-01 阿里巴巴集团控股有限公司 针对可信执行环境的分布式密钥管理
CN112865959A (zh) * 2020-12-30 2021-05-28 杭州趣链科技有限公司 分布式节点设备的共识方法、节点设备及分布式网络
CN113923093A (zh) * 2021-10-29 2022-01-11 博雅正链(北京)科技有限公司 一种基于可信执行环境的新型拜占庭容错共识方法

Also Published As

Publication number Publication date
CN115134145A (zh) 2022-09-30

Similar Documents

Publication Publication Date Title
CN109981641A (zh) 一种基于区块链技术的安全发布订阅系统及发布订阅方法
CN102187615B (zh) 生成加密密钥的方法、网络
EP2667539A1 (en) Key sharing methods, device and system for configuration thereof.
CN111401904B (zh) 联盟链中的共识方法和系统
CN109565440B (zh) 密钥交换方法,密钥交换系统
CN114710370B (zh) 基于雾区块链和属性加密的细粒度访问控制方法及系统
CN112468297A (zh) 基于区块链的密钥备份方法及装置
US20150023498A1 (en) Byzantine fault tolerance and threshold coin tossing
CN115913677A (zh) 一种基于区块链的协作边缘存储数据隐私保护系统及方法
CN113706150B (zh) 一种区块确认方法及装置
CN117675216A (zh) 一种数据处理方法及相关设备
CN115134075A (zh) 跨子网调用方法、装置、电子设备和存储介质
CN114528601A (zh) 基于区块链数据的访问方法和装置、处理器及电子设备
CN113472734B (zh) 一种身份认证方法及装置
CN112418850A (zh) 一种基于区块链的交易方法、装置及电子设备
CN112948868A (zh) 一种基于区块链的电力数据存储方法及电力数据共享方法
CN115834064B (zh) 一种安全多方计算方法、装置、系统、设备及存储介质
CN115134145B (zh) 区块链系统中的共识方法、装置、计算设备和计算机可读存储介质
US20220385453A1 (en) Secure file transfer
US20220360429A1 (en) Location-key encryption system
CN111784338A (zh) 信息处理方法、装置、系统及存储介质
CN113691376B (zh) 一种密钥管理方法及装置
CN117896069A (zh) 基于隐私计算的隐私数据使用方法和装置
Hahn et al. Verifiable outsourced decryption of encrypted data from heterogeneous trust networks
CN114297721A (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