CN115296843B - 区块链系统中的交易执行方法、第一节点和第二节点 - Google Patents

区块链系统中的交易执行方法、第一节点和第二节点 Download PDF

Info

Publication number
CN115296843B
CN115296843B CN202210753253.0A CN202210753253A CN115296843B CN 115296843 B CN115296843 B CN 115296843B CN 202210753253 A CN202210753253 A CN 202210753253A CN 115296843 B CN115296843 B CN 115296843B
Authority
CN
China
Prior art keywords
node
nodes
block
private key
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.)
Active
Application number
CN202210753253.0A
Other languages
English (en)
Other versions
CN115296843A (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 CN202210753253.0A priority Critical patent/CN115296843B/zh
Publication of CN115296843A publication Critical patent/CN115296843A/zh
Application granted granted Critical
Publication of CN115296843B publication Critical patent/CN115296843B/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • 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
    • 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
    • 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
    • H04L67/104Peer-to-peer [P2P] networks
    • 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)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

一种区块链系统中的交易执行方法、第一节点和第二节点。区块链系统中的第一节点和N个第二节点分别持有第一私钥的不同分片。该第一节点可以:获取用于生成第一区块的若干交易各自的交易密文,交易密文由用户设备利用与第一区块对应的第一公钥对对应的交易进行加密以生成;生成包括若干交易各自的交易密文以及其共识顺序的共识提议中;与N个第二节点对共识提议进行共识,并向N个第二节点发送第一节点持有的第一私钥的分片,从N个第二节点接收其各自持有的第一私钥的分片;进而在达成共识的情况下,根据第一节点持有的以及其从N个第二节点接收的第一私钥的分片生成第一私钥,根据第一私钥解密各个交易密文以获得若干交易,并执行若干交易。

Description

区块链系统中的交易执行方法、第一节点和第二节点
技术领域
本说明书实施例属于区块链技术领域,尤其涉及一种区块链系统中的交易执行方法、第一节点和第二节点。
背景技术
区块链(Blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。
发明内容
本发明的目的在于提供一种区块链系统中的交易执行方法、第一节点和第二节点。
第一方面,提供了一种区块链系统中的交易执行方法,所述方法涉及所述区块链系统中的第一节点和N个第二节点,所述第一节点和所述N个第二节点分别持有与第一区块对应的第一私钥的不同分片,所述方法由所述第二节点执行。所述方法包括:与所述第一节点和其余N-1个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括用于生成第一区块的若干交易各自的交易密文以及其共识顺序,所述交易密文由用户设备利用与所述第一区块对应的第一公钥对对应的交易进行加密以生成;向所述第一节点和其余N-1个第二节点发送其持有的所述第一私钥的分片,从所述第一节点和其余N-1个第二节点接收其各自持有的所述第一私钥的分片;在对所述共识提议达成共识的情况下,根据所述第二节点持有的以及其从所述第一节点和其余N-1个第二节点接收的所述第一私钥的分片生成所述第一私钥;根据所述第一私钥解密各个所述交易密文以获得所述若干交易,并执行所述若干交易。
第二方面,提供了一种区块链系统中的交易执行方法,所述方法涉及所述区块链系统中的第一节点和N个第二节点,所述第一节点和所述N个第二节点分别持有与第一区块对应的第一私钥的不同分片,所述方法由所述第一节点执行。所述方法包括:获取用于生成第一区块的若干交易各自的交易密文,所述交易密文由用户设备利用与所述第一区块对应的第一公钥对对应的交易进行加密以生成;生成共识提议,所述共识提议中包括所述若干交易各自的交易密文以及其共识顺序;与所述N个第二节点对所述共识提议进行共识,并向所述N个第二节点发送所述第一节点持有的所述第一私钥的分片,从所述N个第二节点接收其各自持有的所述第一私钥的分片;在对所述共识提议达成共识的情况下,根据所述第一节点持有的以及其从所述N个第二节点接收的所述第一私钥的分片生成所述第一私钥;根据所述第一私钥解密各个所述交易密文以获得所述若干交易,并执行所述若干交易。
第三方面,提供了一种区块链系统中的第二节点,所述区块链系统中还包括第一节点以及其余N-1个第二节点,所述第一节点和N个所述第二节点分别持有与第一区块对应的第一私钥的不同分片。所述第二节点包括:共识处理单元,配置为与所述第一节点和其余N-1个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括用于生成第一区块的若干交易各自的交易密文以及其共识顺序,所述交易密文由用户设备利用与所述第一区块对应的第一公钥对对应的交易进行加密以生成;向所述第一节点和其余N-1个第二节点发送其持有的所述第一私钥的分片,以及从所述第一节点和其余N-1个第二节点接收其各自持有的所述第一私钥的分片;密钥处理单元,配置为在对所述共识提议达成共识的情况下,根据所述第二节点持有的以及其从所述第一节点和其余N-1个第二节点接收的所述第一私钥的分片生成所述第一私钥;交易执行单元,配置为根据所述第一私钥解密各个所述交易密文以获得所述若干交易,并执行所述若干交易。
第四方面,提供了一种区块链系统中的第一节点,所述区块链系统中还包括N个第二节点,所述第一节点和所述N个第二节点分别持有与第一区块对应的第一私钥的不同分片。所述第一节点包括:信息处理单元,配置为获取用于生成第一区块的若干交易各自的交易密文,所述交易密文由用户设备利用与所述第一区块对应的第一公钥对对应的交易进行加密以生成;共识处理单元,配置为生成共识提议,所述共识提议中包括所述若干交易各自的交易密文以及其共识顺序;与所述N个第二节点对所述共识提议进行共识,并向所述N个第二节点发送所述第一节点持有的所述第一私钥的分片,从所述N个第二节点接收其各自持有的所述第一私钥的分片;密钥处理单元,配置为在对所述共识提议达成共识的情况下,根据所述第一节点持有的以及其从所述N个第二节点接收的所述第一私钥的分片生成所述第一私钥;交易执行单元,配置为根据所述第一私钥解密各个所述交易密文以获得所述若干交易,并执行所述若干交易。
第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算设备中执行时,计算设备执行第一方面或第二方面中任一项所述的方法。
第七方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现第一方面或第二方面中任一项所述的方法。
上述实施例中,预先为待生成的区块配置其对应的第一公钥和第一私钥,使得第一节点和N个节点分别持有该第一私钥的不同分片;用户设备并不向第一节点或者第二节点发送交易明文而是发送利用第一公钥对交易进行加密以生成的交易密文。在生成共识提议并对共识提议进行共识之前,第一节点和N个第二节点均无法获知交易的明文,从而无法对交易进行区分服务,有利于提高区块链系统的公平性。
附图说明
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例中示例性提供的PBFT共识算法中的共识过程示意图;
图2为本说明书实施例中示例性提供的区块链系统的示意图;
图3为本说明书实施例中示例性提供的密钥配置过程的流程图;
图4为本说明书实施例中示例性提供的一种区块链系统中的交易执行方法的流程图;
图5为本说明书实施例中示例性提供的一种区块链系统中的第二节点的示意图;
图6为本说明书实施例中示例性提供的一种区块链系统中的第二节点的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
区块链系统是通过多个节点(Node)来建立的分布式网络,区块链系统中的不同节点间通过对等(Peer-to-Peer,P2P)网络实现在应用层的通信连接。利用链式区块结构构造的去中心化(或称为多中心化)的分布式账本,保存于分布式的区块链网络中的每个节点(或大多节点上,如共识节点)上。这样的区块链系统需要解决去中心化(或多中心化)的多个节点上各自的账本数据的一致性和正确性的问题。每个节点上都运行着区块链程序,在一定容错需求的设计下,通过共识(consensus)机制保证所有忠诚节点具有相同的交易,从而保证所有忠诚节点对相同交易的执行结果一致,将交易打包成区块并基于相同交易的执行结果更新世界状态。其中当前主流的共识机制可以包括但不限于:工作量证明(Proof ofWork,POW)、股权证明(Proof of Stake,POS)、委任权益证明(Delegated Proof of Stake,DPOS)、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法,以及蜜獾拜占庭容错(HoneyBadgerBFT)算法等等。
图1为本说明书实施例中示例性提供的PBFT共识算法中的共识过程示意图。如图1所示,根据PBFT共识算法可将共识过程划分为请求、预备、准备和提交四个阶段。假设区块链系统中包括节点n1~节点n4等四个共识节点,其中节点n1例如为主节点(本文中也将其表述为第一节点),节点n2~节点n4例如为从节点(本文中也将其表述为第二节点),根据PBFT算法在节点n1-节点n4中可容忍f=1个恶意节点。具体是,在请求阶段,节点n1例如可以接收区块链系统的用户通过其用户设备向区块链系统发送的请求,该请求例如为区块链交易的形式。在预备阶段,节点n1在接收到来自若干用户设备的多个交易之后,可将该多个交易打包为共识提议,并将该共识提议及节点n1对该共识提议的签名发送给其他共识节点(即节点n2-节点n4),以用于生成区块,该共识提议中可以包括该多个交易以及其共识顺序/提交顺序等信息。在准备阶段,各个从节点可对共识提议进行签名并发送给其他各个节点。假设节点n4为恶意节点,节点n1、节点n2和节点n3在分别接收到2f=2个其他共识节点的对共识提议的签名之后,可确定准备阶段完成,可进入提交阶段。例如节点n1在接收到节点n2和节点n3的签名之后,验证节点n2和节点n3的签名都是正确的对共识提议的签名,则确定准备阶段完成,节点n2在接收到节点n3的签名和预备阶段节点n1的签名并验证通过之后,确定准备阶段完成。在提交阶段,各个共识节点对共识提议进行提交阶段的签名并发送给其他各个共识节点,各个共识节点在接收到2f=2个其他共识节点的提交阶段的签名之后,可确定提交阶段完成,共识成功。例如,节点n1在接收到节点n2和节点n3的提交阶段的签名并验证之后,确定提交阶段完成,从而节点n1可根据共识提议执行其包含的多个交易,生成包括该多个交易的区块,并根据该多个交易的执行结果更新世界状态。类似地,节点n2和节点n3在确定提交阶段完成之后,生成包括该多个交易的区块,并根据该多个交易的执行结果更新世界状态。通过上述过程,实现了节点n1、节点n2和节点n3存储的数据的一致性。即节点n1-节点n4在存在一个恶意节点的情况下仍可以实现对共识提议的共识成功,完成对多个交易的执行并生成区块。
前文虽然示例性描述了节点n1~节点n4执行共识机制的过程,然而可以理解的是区块链系统中还可以包括更多的共识节点,甚至区块链系统中还可以包括除共识节点以外的若干非共识节点。例如参照图2所示的区块链系统,其还可以包括节点n5,而节点n5既可能作为共识节点,也可能作为非共识节点。其中非共识节点可以从共识节点同步区块和世界状态,例如作为非共识节点的节点n5可以从作为共识节点的节点n1接收共识结果,该共识结果例如是节点n1生成的区块或其与其余共识节点达成共识的共识提议,进而使得节点n5可以基于共识结果生成相应的区块并对应更新其存储的世界状态,保证不同节点存储的数据的一致性。
参照前文所述,第一节点可能对其接收的多个交易按照某种顺序进行打包以生成共识提议。如果第一节点作恶,则其可能根据交易中暴露的发送方字段(from)、接收方字段(to)或者其它信息,对不同的交易进行区分服务。例如主节点可能有选择的将某个交易优先或推迟打包到共识提议中,以便某个交易被优先执行或推迟执行,影响区块链系统的公平性。
本说明书实施例中提供了一种区块链系统中的交易执行方法、第一节点和第二节点,以期使得第一节点无法对其接收的多个交易进行区分服务,从而提高区块链系统的公平性。其中为了达到以上目的,对于区块链系统中待生成的任意的区块,可以预先为该区块配置其对应的第一公钥和第一私钥,并且使区块链系统中参与执行前述示例的各种共识机制的第一节点和N个第二节点分别持有该第一私钥的不同分片。
图3为本说明书实施例中示例性提供的密钥配置过程的示意图。其中为了清楚且准确的描述本说明书实施例中提供的技术方案,图3以及后续各个实施例中将具体以第一节点是节点n1,N个第二节点包括节点n2、节点n3和节点n4为例,对本说明书实施例中提供的技术方案进行示例性描述。请参见图3所示,可以通过包含密钥生成阶段、分片处理阶段和密钥分发阶段和公钥共识阶段的密钥配置过程,完成为待生成的某个区块配置其对应的第一公钥和第一私钥,并且使第一节点和N个第二节点分别获得该第一私钥的不同分片。
密钥生成阶段:N个第二节点各自为待生成的区块高度为M+K的目标区块生成公钥和私钥。例如节点n2为目标区块生成公钥k21和私钥k22,节点n3为目标区块生成公钥k31和私钥k32,节点n4为目标区块生成公钥k41和私钥k42。
分片处理阶段:第二节点生成其为目标区块生成的私钥的N+1个分片。例如节点n2可以生成私钥k22的4个分片,节点n3可以生成私钥k32的4个分片,节点n4可以生成私钥k42的4个分片。其中对于单个私钥而言,可以采用门限加密方法或者纠删码算法等生成该私钥的N个分片,使得第一节点或单个第二节点在后续过程中可以通过搜集不少于门限数量的该私钥的分片来恢复该私钥。前述门限数量通常可以基区块链系统中允许的故障/恶意节点的数量进行确定,例如对于前述示例的PBFT共识算法而言,第一节点和N个第二节点的总量N+1的取值通常可以为3f+1或者3f+2,其允许的故障/恶意节点的数量为f,则该门限数量的取值可以为2f+1。
密钥分发阶段:第二节点向第一节点和其余N-1个第二节点广播其为第一区块生成的公钥,并且向第一节点和其余N-1个第二节点分发其为第一区块生成的私钥的N个分片。例如节点n2可以向节点节点n1、节点n3和节点n4发送其生成的公钥k21,并且将私钥k22的其中3个分片对应分发给节点n1、节点n3和节点n4,使得节点n1~节点n4分别持有私钥k22的1个分片。
公钥共识阶段:第一节点与N个第二节点联合执行公钥共识协议,以从N个第二节点为目标区块生成的N个公钥中选取与目标区块对应的第一公钥。其中为了避免第一节点和某个第二节点联合作恶,可以限定从N个公钥中选取的第一公钥满足预定条件,例如计算N个公钥各自的哈希值,将哈希值最小/最大的公钥选取为第一公钥。此外可以理解的是,由生成第一公钥的第二节点为目标区块生成的私钥即为目标区块对应的第一私钥。
前述图3所示的密钥配置过程通常可以在位于目标区块之前的某个区块所对应的区块时间内完成执行。例如待生成的目标区块的区块高度为M+K,第一节点和N个第二节点可以在第M个区块所对应的区块时间内,即在生成第M个区块的过程中为该目标区块执行前述图3所示的密钥配置过程。其中K的取值不小于1,此外考虑到网络延迟的影响,K的取值通常可以大于1。
还可以通过除如图3所示方法以外的其他方法实现对单个区块的密钥配置,例如还可以由可信第三方生成目标区块对应的第一公钥和第一私钥,由可信第三方将第一公钥发送至第一节点和N个第二节点,并且由可信第三方生成第一私钥的N+1个分片后将该N+1个分片分发给第一节点和N个第二节点,使得第一节点和N个第二节点各自持有该第一私钥的不同分片。
前文描述了在区块高度为M的区块所对应的区块时间内为区块高度为M+K的区块进行密钥配置,在此基础上可以理解的是在当前最新生成的区块高度为M-1时,区块链系统中实质上已经完成对后续即将生成的区块高度为M至区块高度为M+K-1的K个区块进行密钥配置。与之相应的,在当前最新生成的区块的区块高度为M-1时,第一节点和N个第二节点可以有目的向与其连接的用户设备返回该K个区块中的部分或全部区块各自对应的第一公钥。例如用户设备期望向区块链系统发送交易以完成相应的事务时,可以向其连接的第一节点或者第二节点发送查询请求;如果第一节点或者第二节点在区块高度为M的区块所对应的区块时间内接收到来自用户设备的查询请求,即如果第一节点或者第二节点接收到来自用户设备的查询请求时最新生成的区块的区块高度为M-1,则该第一节点或第二节点例如可以向用户设备发送区块高度不小于M+1的区块所对应的第一公钥,或者向用户设备发送已确定的并且位于区块高度为M的区块之后的多个区块各自对应的第一公钥。
用户设备从第一节点或者第二节点接收到与某个区块对应的第一公钥后,可以利用该第一公钥加密其生成的交易以得到相应的交易密文,并向其连接的第一节点或者第二节点发送包含该交易密文的交易请求。其中当第一节点或者第二节点基于查询请求向用户设备返回的第一公钥的数量为多个时,用户设备还可以在其发送的交易请求中携带相应的指示信息,该指示信息用于指示生成该交易请求中所包含的交易密文时所实际使用的第一密钥。其中可以理解的是,第二节点可以将其接收的来自用户设备的交易请求转发到第一节点。
第一节点接收到来自用户设备的交易请求后,可以和N个第二节点联合执行如图4中所示的各个方法步骤以完成对交易的执行。参见图4,该方法可以包括如下步骤41~步骤49。
在步骤41,第一节点获取用于生成第一区块的若干交易各自的交易密文。
其中前述第一区块是指待生成的某个区块。例如当前最新生成的区块的区块号是M-1,则该第一区块通常可以是区块号为M的区块,部分技术场景中也可能是区块号大于M的区块。此外参照前文所述,来自用户设备的交易请求中包括交易密文,第一节点可以从交易请求中读取用于生成第一区块的交易的交易密文。更具体地,第一节点例如可以对来自用户设备的每个交易请求,确定该交易请求中包含的第一公钥是否为与该第一区块对应的公钥,如果是则将该交易请求中包含的交易密文确定为用于生成第一区块的交易的交易密文。
在步骤43,第一节点生成共识提议。
步骤451,第一节点和N个第二节点对共识提议进行共识。
步骤453,第一节点向N个第二节点广播其持有的与第一区块对应的第一私钥的分片。
步骤455,第二节点向第一节点和其余N-1个第二节点广播其持有的与第一区块对应的第一私钥的分片。需要特别说明的是,图4中仅示出第一节点与单个第二节点间的交互过程,第一节点与N个第二节点间的交互过程完全相同;此外图4中未示出每个第二节点均向其余N-1个第二节点广播其持有的与第一区块对应的第一私钥的分片的过程。
共识提议中可以包括前述若干交易各自的交易密文以及其共识顺序/提交顺序,还可以包括第一节点持有的与第一区块对应的第一私钥的分片。参见前文示例性描述的第一节点和N个第二节点执行共识机制的过程,第一节点可以通过在执行共识机制的过程中向N个第二节点发送共识提议,完成向N个第二节点广播其持有的与第一区块对应的第一私钥的分片。此外继续参见前文示例性描述的第一节点和N个第二节点执行共识机制的过程,单个第二节点实质上需要在准备阶段和提交阶段分别向第一节点和其余N-1个第二节点广播响应消息,该两条响应消息分别用于承载该第二节点在准备阶段和提交阶段生成的与共识提议对应的签名,该第二节点还可以通过在任意响应消息中携带其持有的与第一区块对应的第一私钥的分片,完成向第一节点和N个第二节点广播其持有的与第一区块对应的第一私钥的分片。换而言之即第一节点和N个第二节点可以在联合执行前述步骤451的过程中实现对步骤453和步骤455的执行。
步骤47,对共识提议达成共识的第一节点和第二节点,根据其各自搜集的与第一区块对应的第一私钥的分片生成第一私钥。对于第一节点和N个第二节点中的单个节点而言,其各自搜集的与第一区块对应的第一私钥的分片,包含其自身持有的与第一区块对应的第一私钥的分片,以及由其他节点广播到该节点的与第一区块对应的第一私钥的分片。单个节点具体可以通过搜集不少于门限数量的与第一区块对应的第一私钥的分片生成该第一私钥。
步骤49,对共识提议达成共识的第一节点和第二节点,根据其各自生成的第一私钥解密各个交易密文以获得若干交易,并执行该若干交易。
对共识提议达成共识的第一节点/第二节点完成对该若干交易的执行后,可以根据该若干交易的执行结果对应的更新其存储的世界状态,进而生成包含该若干交易的第一区块。
需要特别说明的是,当出现共识换主时,如果某个节点为待生成的某个区块生成的公钥被选取为与该区块对应的第一公钥,则该节点无资格被选举为新的主节点。例如在生成区块号为M的区块的过程中节点n1为主节点,生成区块号为M的区块后节点n1将会作为第二节点,并且需要从节点n2~节点n4中选取1个节点作为主节点;如果已通过前述图3所示的密钥配置过程确定区块号为M+K的区块所对应的第一公钥是节点n2为区块号为M+K的区块生成的公钥,则此时节点n2不会被选取为新的主节点。
通过本说明书实施例的技术方案,预先为待生成的区块配置其对应的第一公钥和第一私钥,使得第一节点和N个节点分别持有该第一私钥的不同分片;用户设备并不向第一节点或者第二节点发送交易明文而是发送利用第一公钥对交易进行加密以生成的交易密文。在生成共识提议并对共识提议进行共识之前,第一节点和N个第二节点均无法获知交易的明文,从而无法对交易进行区分服务,有利于提高区块链系统的公平性。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种区块链系统中的第二节点,所述区块链系统中还包括第一节点以及其余N-1个第二节点,所述第一节点和N个所述第二节点分别持有与第一区块对应的第一私钥的不同分片。如图5所示,所述第二节点包括:共识处理单元51,配置为与所述第一节点和其余N-1个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括用于生成第一区块的若干交易各自的交易密文以及其共识顺序,所述交易密文由用户设备利用与所述第一区块对应的第一公钥对对应的交易进行加密以生成;向所述第一节点和其余N-1个第二节点发送其持有的所述第一私钥的分片,以及从所述第一节点和其余N-1个第二节点接收其各自持有的所述第一私钥的分片;密钥处理单元53,配置为在对所述共识提议达成共识的情况下,根据所述第二节点持有的以及其从所述第一节点和其余N-1个第二节点接收的所述第一私钥的分片生成所述第一私钥;交易执行单元55,配置为根据所述第一私钥解密各个所述交易密文以获得所述若干交易,并执行所述若干交易。
与前述方法实施例基于相同的构思,本说明书实施例中还提供了一种区块链系统中的第一节点,所述区块链系统中还包括N个第二节点,所述第一节点和所述N个第二节点分别持有与第一区块对应的第一私钥的不同分片。如图6所示,所述第一节点包括:信息处理单元61,配置为获取用于生成第一区块的若干交易各自的交易密文,所述交易密文由用户设备利用与所述第一区块对应的第一公钥对对应的交易进行加密以生成;共识处理单元63,配置为生成共识提议,所述共识提议中包括所述若干交易各自的交易密文以及其共识顺序;与所述N个第二节点对所述共识提议进行共识,并向所述N个第二节点发送所述第一节点持有的所述第一私钥的分片,从所述N个第二节点接收其各自持有的所述第一私钥的分片;密钥处理单元65,配置为在对所述共识提议达成共识的情况下,根据所述第一节点持有的以及其从所述N个第二节点接收的所述第一私钥的分片生成所述第一私钥;交易执行单元67,配置为根据所述第一私钥解密各个所述交易密文以获得所述若干交易,并执行所述若干交易。
虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

Claims (15)

1.一种区块链系统中的交易执行方法,所述方法涉及所述区块链系统中的第一节点和N个第二节点,所述第一节点和所述N个第二节点分别持有与第一区块对应的第一私钥的不同分片,所述方法由所述第二节点执行,所述方法包括:
与所述第一节点和其余N-1个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括用于生成第一区块的若干交易各自的交易密文以及其共识顺序,所述交易密文由用户设备利用与所述第一区块对应的第一公钥对对应的交易进行加密以生成;
在对所述共识提议进行共识的过程中,向所述第一节点和其余N-1个第二节点发送其持有的所述第一私钥的分片,以及从所述第一节点和其余N-1个第二节点接收其各自持有的所述第一私钥的分片;其中,所述共识提议中还包括所述第一节点持有的所述第一私钥的分片,所述第二节点持有的所述第一私钥的分片位于所述第二节点基于所述共识提议向所述第一节点和其余N-1个第二节点广播的响应消息中;
在对所述共识提议达成共识的情况下,根据所述第二节点持有的以及其从所述第一节点和其余N-1个第二节点接收的所述第一私钥的分片生成所述第一私钥;
根据所述第一私钥解密各个所述交易密文以获得所述若干交易,并执行所述若干交易。
2.根据权利要求1所述的方法,所述方法还包括:基于当前最新生成的区块的区块高度向所述用户设备发送所述第一公钥,其中所述第一区块的区块高度与所述当前最新生成的区块的区块高度之间的高度差大于预定数值。
3.根据权利要求1所述的方法,所述方法还包括:向所述用户设备发送待生成的多个区块各自对应的第一公钥,所述多个区块中包括所述第一区块。
4.根据权利要求1-3中任一项所述的方法,所述第一公钥和所述第一私钥由任一第二节点生成;所述第一节点和所述N个第二节点各自持有的所述第一私钥的分片由所述任一第二节点提供。
5.根据权利要求4所述的方法,所述方法还包括:
向其余N-1个第二节点发送其为所述第一区块生成的公钥,并从其余N-1个第二节点接收其为所述第一区块生成的N-1个公钥;
与所述第一节点以及其余N-1个第二节点联合执行公钥共识协议,以从为所述第一区块生成的N个公钥中选取与所述第一区块对应的所述第一公钥。
6.根据权利要求5所述的方法,从所述N个公钥中选取的所述第一公钥满足预定条件。
7.一种区块链系统中的交易执行方法,所述方法涉及所述区块链系统中的第一节点和N个第二节点,所述第一节点和所述N个第二节点分别持有与第一区块对应的第一私钥的不同分片,所述方法由所述第一节点执行,所述方法包括:
获取用于生成第一区块的若干交易各自的交易密文,所述交易密文由用户设备利用与所述第一区块对应的第一公钥对对应的交易进行加密以生成;
生成共识提议,所述共识提议中包括所述若干交易各自的交易密文以及其共识顺序;
与所述N个第二节点对所述共识提议进行共识,并在对所述共识提议进行共识的过程中,向所述N个第二节点发送所述第一节点持有的所述第一私钥的分片,从所述N个第二节点接收其各自持有的所述第一私钥的分片;其中,所述共识提议中还包括所述第一节点持有的所述第一私钥的分片,所述第二节点持有的所述第一私钥的分片位于所述第二节点基于所述共识提议向所述第一节点和其余N-1个第二节点广播的响应消息中;
在对所述共识提议达成共识的情况下,根据所述第一节点持有的以及其从所述N个第二节点接收的所述第一私钥的分片生成所述第一私钥;
根据所述第一私钥解密各个所述交易密文以获得所述若干交易,并执行所述若干交易。
8.根据权利要求7所述的方法,所述方法还包括:基于当前最新生成的区块的区块高度向所述用户设备发送所述第一公钥,其中所述第一区块的区块高度与所述当前最新生成的区块的区块高度之间的高度差大于预定数值。
9.根据权利要求7所述的方法,所述方法还包括:向所述用户设备发送待生成的多个区块各自对应的第一公钥,所述多个区块中包括所述第一区块。
10.根据权利要求9所述的方法,所述方法还包括:
接收由用户设备生成的交易请求,所述交易请求中包括指示信息以及其对应的交易密文,所述指示信息用于指示生成对应的交易密文时所使用的公钥;
根据所述指示信息确定所述交易请求中的交易密文是否为用于生成所述第一区块的交易的交易密文。
11.根据权利要求7-10中任一项所述的方法,所述第一公钥和所述第一私钥由任一第二节点生成;所述第一节点和所述N个第二节点各自持有的所述第一私钥的分片由所述任一第二节点提供。
12.根据权利要求11所述的方法,所述方法还包括:从所述N个第二节点接收其为所述第一区块生成的N个公钥;与所述N个第二节点联合执行公钥共识协议,以从所述N个公钥中选取与所述第一区块对应的所述第一公钥。
13.根据权利要求12所述的方法,从所述N个公钥中选取的所述第一公钥满足预定条件。
14.一种区块链系统中的第二节点,所述区块链系统中还包括第一节点以及其余N-1个第二节点,所述第一节点和N个所述第二节点分别持有与第一区块对应的第一私钥的不同分片,所述第二节点包括:
共识处理单元,配置为与所述第一节点和其余N-1个第二节点对由所述第一节点生成的共识提议进行共识,所述共识提议中包括用于生成第一区块的若干交易各自的交易密文以及其共识顺序,所述交易密文由用户设备利用与所述第一区块对应的第一公钥对对应的交易进行加密以生成;在对所述共识提议进行共识的过程中,向所述第一节点和其余N-1个第二节点发送其持有的所述第一私钥的分片,以及从所述第一节点和其余N-1个第二节点接收其各自持有的所述第一私钥的分片;其中,所述共识提议中还包括所述第一节点持有的所述第一私钥的分片,所述第二节点持有的所述第一私钥的分片位于所述第二节点基于所述共识提议向所述第一节点和其余N-1个第二节点广播的响应消息中;
密钥处理单元,配置为在对所述共识提议达成共识的情况下,根据所述第二节点持有的以及其从所述第一节点和其余N-1个第二节点接收的所述第一私钥的分片生成所述第一私钥;
交易执行单元,配置为根据所述第一私钥解密各个所述交易密文以获得所述若干交易,并执行所述若干交易。
15.一种区块链系统中的第一节点,所述区块链系统中还包括N个第二节点,所述第一节点和所述N个第二节点分别持有与第一区块对应的第一私钥的不同分片,所述第一节点包括:
信息处理单元,配置为获取用于生成第一区块的若干交易各自的交易密文,所述交易密文由用户设备利用与所述第一区块对应的第一公钥对对应的交易进行加密以生成;
共识处理单元,配置为生成共识提议,所述共识提议中包括所述若干交易各自的交易密文以及其共识顺序;与所述N个第二节点对所述共识提议进行共识,并在对所述共识提议进行共识的过程中,向所述N个第二节点发送所述第一节点持有的所述第一私钥的分片,从所述N个第二节点接收其各自持有的所述第一私钥的分片;其中,所述共识提议中还包括所述第一节点持有的所述第一私钥的分片,所述第二节点持有的所述第一私钥的分片位于所述第二节点基于所述共识提议向所述第一节点和其余N-1个第二节点广播的响应消息中;
密钥处理单元,配置为在对所述共识提议达成共识的情况下,根据所述第一节点持有的以及其从所述N个第二节点接收的所述第一私钥的分片生成所述第一私钥;
交易执行单元,配置为根据所述第一私钥解密各个所述交易密文以获得所述若干交易,并执行所述若干交易。
CN202210753253.0A 2022-06-29 2022-06-29 区块链系统中的交易执行方法、第一节点和第二节点 Active CN115296843B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210753253.0A CN115296843B (zh) 2022-06-29 2022-06-29 区块链系统中的交易执行方法、第一节点和第二节点

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210753253.0A CN115296843B (zh) 2022-06-29 2022-06-29 区块链系统中的交易执行方法、第一节点和第二节点

Publications (2)

Publication Number Publication Date
CN115296843A CN115296843A (zh) 2022-11-04
CN115296843B true CN115296843B (zh) 2024-04-16

Family

ID=83821229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210753253.0A Active CN115296843B (zh) 2022-06-29 2022-06-29 区块链系统中的交易执行方法、第一节点和第二节点

Country Status (1)

Country Link
CN (1) CN115296843B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111723387A (zh) * 2020-06-22 2020-09-29 深圳前海微众银行股份有限公司 一种基于区块链的数据解密的方法及装置
CN111753335A (zh) * 2020-08-28 2020-10-09 支付宝(杭州)信息技术有限公司 区块内容的编辑方法及装置
CN112367168A (zh) * 2020-10-30 2021-02-12 深圳前海微众银行股份有限公司 一种区块链用户的密钥生成的方法及装置
CN112487100A (zh) * 2020-04-02 2021-03-12 支付宝(杭州)信息技术有限公司 一种基于区块链的信息发布方法、装置及计算机设备
CN114640451A (zh) * 2022-03-29 2022-06-17 蚂蚁区块链科技(上海)有限公司 区块链上实现分布式密钥生成的方法、系统和共识节点

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109345386B (zh) * 2018-08-31 2020-04-14 阿里巴巴集团控股有限公司 基于区块链的交易共识处理方法及装置、电子设备
EP3639182A4 (en) * 2019-04-29 2021-03-17 Advanced New Technologies Co., Ltd. METHODS AND DEVICES FOR VALIDATING TRANSACTIONS IN A BLOCKCHAIN SYSTEM

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112487100A (zh) * 2020-04-02 2021-03-12 支付宝(杭州)信息技术有限公司 一种基于区块链的信息发布方法、装置及计算机设备
CN111723387A (zh) * 2020-06-22 2020-09-29 深圳前海微众银行股份有限公司 一种基于区块链的数据解密的方法及装置
CN111753335A (zh) * 2020-08-28 2020-10-09 支付宝(杭州)信息技术有限公司 区块内容的编辑方法及装置
CN112367168A (zh) * 2020-10-30 2021-02-12 深圳前海微众银行股份有限公司 一种区块链用户的密钥生成的方法及装置
CN114640451A (zh) * 2022-03-29 2022-06-17 蚂蚁区块链科技(上海)有限公司 区块链上实现分布式密钥生成的方法、系统和共识节点

Also Published As

Publication number Publication date
CN115296843A (zh) 2022-11-04

Similar Documents

Publication Publication Date Title
US10067810B2 (en) Performing transactions between application containers
US11265173B2 (en) Methods and systems for consensus in blockchains
US11354199B2 (en) Byzantine fault tolerance with verifiable secret sharing at constant overhead
CN102187615B (zh) 生成加密密钥的方法、网络
WO2023185046A1 (zh) 区块链系统中共识节点的轮换方法、节点和区块链系统
CN113810465B (zh) 一种异步二元共识方法及装置
KR20230078767A (ko) 비밀 공유의 재배포
CN114640451A (zh) 区块链上实现分布式密钥生成的方法、系统和共识节点
CN114726517A (zh) 一种区块链上产生随机数种子的方法、系统和共识节点
US20150023498A1 (en) Byzantine fault tolerance and threshold coin tossing
CN114650132A (zh) 区块链上实现分布式密钥生成的方法、系统和共识节点
WO2022256057A1 (en) Two-round byzantine fault tolerant (bft) state machine replication (smr) protocol with linear authenticator complexity and optimistic responsiveness
CN115296843B (zh) 区块链系统中的交易执行方法、第一节点和第二节点
CN115834064B (zh) 一种安全多方计算方法、装置、系统、设备及存储介质
CN115941164A (zh) 一种区块链上实现分布式密钥生成的方法、系统和节点
CN115941163A (zh) 一种区块链上实现分布式密钥生成的方法、系统和节点
CN115766038A (zh) 区块链中的交易发送方法和区块链节点
CN115134145B (zh) 区块链系统中的共识方法、装置、计算设备和计算机可读存储介质
US20230179409A1 (en) Verification key generation in distributed networks
CN114640452A (zh) 区块链上实现分布式密钥生成的方法、系统和共识节点
CN113746635A (zh) 提高pbft共识可扩展性的方法、装置、计算设备及存储介质
Benedetti et al. Certified Byzantine Consensus with Confidential Quorum for a Bitcoin-derived Permissioned DLT
CN111784338A (zh) 信息处理方法、装置、系统及存储介质
CN114710512B (zh) 共识结果的分发方法、节点和区块链系统
Ren et al. Flexico: An efficient dual-mode consensus protocol for blockchain networks

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