CN110300985B - 基于智能合约白名单在区块链网络中并行执行交易 - Google Patents

基于智能合约白名单在区块链网络中并行执行交易 Download PDF

Info

Publication number
CN110300985B
CN110300985B CN201880006516.3A CN201880006516A CN110300985B CN 110300985 B CN110300985 B CN 110300985B CN 201880006516 A CN201880006516 A CN 201880006516A CN 110300985 B CN110300985 B CN 110300985B
Authority
CN
China
Prior art keywords
smart contract
transactions
blockchain network
nodes
transaction
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
CN201880006516.3A
Other languages
English (en)
Other versions
CN110300985A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Publication of CN110300985A publication Critical patent/CN110300985A/zh
Application granted granted Critical
Publication of CN110300985B publication Critical patent/CN110300985B/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/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3827Use of message hashing
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Storage Device Security (AREA)

Abstract

本文实施方式包括:识别要在区块链中执行的多个交易,其中,交易按执行顺序排列,交易包括对具有白名单的智能合约的一个或多个智能合约调用,每个智能合约的白名单识别被授权执行该智能合约的一个或多个账户,并且,执行顺序包括排列在所述多个交易之后的对不具有白名单的智能合约的智能合约调用;识别多个交易内的交易组;指示区块链网络中的节点并行地执行每个交易组;确定区块链网络中的节点已经完成所有交易组的执行;以及,作为响应,指示区块链网络中的节点执行不包括白名单的智能合约调用。

Description

基于智能合约白名单在区块链网络中并行执行交易
背景技术
分布式账本***(DLS),也可称为共识网络和/或区块链网络,使参与的实体能够安全地且不可篡改地存储数据。在不引用任何特定用例的情况下,DLS通常被称为区块链网络。区块链网络的示例类型可以包括公有区块链网络、私有区块链网络和联盟区块链网络。联盟区块链网络针对选择的实体组群提供,该实体组群控制共识处理,并包括访问控制层。
智能合约是由区块链网络存储和执行的可执行软件指令集。智能合约通常以未加密的方式存储,因此对区块链网络中的所有参与者可见。区块链网络中的参与者可以编写和发布他们自己的智能合约,并且通常也可以调用已经部署在区块链网络中的智能合约。
区块链网络中遇到的一个问题是处理交易的速度。通常,区块链网络中的节点按照交易(包括智能合约调用)被提交的顺序处理交易。这可能导致交易吞吐量降低,并且导致在提交交易和清除交易之间的延迟。
解决区块链网络中的这些交易执行问题的技术将是有利的。
发明内容
本文实施方式包括计算机实施的用于基于智能合约白名单在区块链网络中并行地执行交易的方法。更具体地,本文实施方式涉及用于将具有共享依赖关系的智能合约调用和交易组与其他组并行地执行的技术。
在一些实施例中,动作包括:识别要在区块链中执行的多个交易,其中,交易按执行顺序排列,交易包括对具有白名单的智能合约的一个或多个智能合约调用,每个智能合约的白名单识别被授权执行智能合约的一个或多个账户,并且执行顺序包括排在多个交易之后的对不具有白名单的智能合约的智能合约调用;识别多个交易内的交易组,其中,每组中的交易与区块链网络中的具体账户集相关联,并且与一个或多个智能合约调用各自相关联的具体账户集是基于与智能合约调用相关联的白名单来确定的;指示区块链网络中的节点并行地执行每个交易组,其中,执行每个交易组包括根据执行顺序串行地执行该组内的交易;确定区块链网络中的节点已经完成所有交易组的执行;并且响应于确定区块链网络中的节点已经完成所有交易组的执行,指示区块链网络中的节点执行不包括白名单的智能合约调用。其他实施方式包括相应的***、装置、计算机程序,该计算机程序被编码在计算机存储设备上并被配置为执行该方法的动作。
这些和其他实施方式可以各自可选地包括以下特征中的一个或多个:
在一些情况下,指示所述区块链网络中的节点并行执行每个所述交易组,包括:指示第一节点集执行第一交易组,以及指示第二节点集合执行第二交易组。
在一些实施方式中,确定所述区块链网络中的所述节点已经完成所有所述交易组的执行,包括:确定所述多个交易中的所有交易已被包括在存储于由所述区块链网络维护的区块链的一个或多个区块中。
在一些情况下,指示所述区块链网络中的节点并行执行每个所述交易组,包括:通过网络向所述节点发送消息。
在一些情况下,识别要在所述区块链中执行的所述多个交易,包括:接收向所述区块链网络广播的交易。
在一些实施方式中,白名单被包括在与每个智能合约相关联的可执行指令集内。
在一些情况下,白名单和与每个智能合约相关联的可执行指令集分离。
在一些实施方式中,白名单包括被授权访问每个智能合约的一个或多个账户的标识。
在一些情况下,白名单包括对每个智能合约外部的位置的引用,该位置存储被授权访问每个智能合约的一个或多个账户。
本文还提供了耦接到一个或多个处理器并且其上存储有指令的一个或多个非暂态计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令促使所述一个或多个处理器按照本文提供的方法的实施例执行操作。
本文还提供了用于实施本文提供的所述方法的***。该***包括一个或多个处理器以及耦接到所述一个或多个处理器并且其上存储有指令的计算机可读存储介质,当所述指令由所述一个或多个处理器执行时,所述指令导致所述一个或多个处理器按照本文提供的方法的实施例执行操作。
应了解,依据本文的方法可以包括本文描述的方面和特征的任意组合。也就是说,根据本文的方法不限于本文具体描述的方面和特征的组合,还包括所提供的方面和特征的任意组合。
以下在附图和描述中阐述了本文的一个或多个实施例的细节。根据文和附图以及权利要求,本文的其他特征和优点将显而易见。
附图说明
图1描绘了可用于执行本文实施方式的环境的示例。
图2描绘了根据本文实施方式的概念性架构的示例。
图3描绘了根据本文实施例的用于使能智能合约白名单的环境的示例。
图4A描绘了根据本文实施方式的区块链网络内的交易的执行顺序的示例。
图4B描绘了根据本文实施方式的区块链网络内的交易的并行执行顺序的示例。
图5描绘了可根据本文实施方式执行的处理的示例。
图6描绘了根据本文实施方式的装置的模块的示例。
各附图中相同的附图标记表示相同的元件。
具体实施方式
本文实施方式包括计算机实施的用于为智能合约实施账户白名单的方法。更具体地,本文实施方式涉及用于允许智能合约的创建者定义白名单的技术,该白名单指定哪些账户可以调用智能合约。
为本文实施方式提供进一步的背景,并且如上所述,分布式账本***(DLS),又可称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体能够安全地、不可篡改地进行交易和存储数据。在不参考任何特定用例的情况下,本文所使用的术语区块链一般指DLS。
区块链是以交易不可篡改并随后可被验证的方式存储交易的数据结构。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据经哈希处理,并且在该树的每个分支中的所有哈希值在该分支的根处连接。沿着该树持续该处理一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。通过确定哈希值是否与树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。
区块链是用于存储交易的数据结构,而区块链网络是用于管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。
在公有区块链网络中,共识处理由共识网络的节点控制。例如,数百、数千甚至数百万个实体可以协同运作公有区块链网络,每个实体操作该公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是关于参与实体的公有网络。在一些示例中,大多数实体(节点)必须对每个区块签名以使该区块有效,并被添加到区块链网络的区块链(分布式账本)中。示例性公有区块链网络包括利用分布式账本(即区块链)的特定点对点支付网络。如上所述,区块链一词通常用于指代分布式账本,而不特指任何特定的区块链网络。
通常,联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识处理由授权的节点集控制,一个或多个节点由相应的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是与参与实体相关的私有网络。在一些示例中,每个实体(节点)必须对每个区块签名,以使区块有效并被添加到区块链中。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个区块签名,以使区块有效并被添加到区块链中。
预期本文的实施方式可以在任何适当类型的区块链网络中实现。
鉴于以上背景,本文进一步详细描述了本文的实施方式。更具体地,并且如上所述,本文的实施方式涉及用于允许智能合约的创建者定义白名单的技术,该白名单指定哪些账户可以调用智能合约。
通常,智能合约是存储在区块链中并由区块链网络中的节点执行的一个或多个计算机指令集。用于智能合约的代码通常被转换为可由区块链网络中的节点执行的形式(例如,字节码),并且将字节码本身或者被配置为检索智能合约字节码的字节码存储在区块链中。然后,区块链网络中的参与者可以调用智能合约代码中定义的函数,从而使节点执行所调用的函数中的指令。
本文描述了允许智能合约的创建者指定区块链网络中被允许调用智能合约的账户列表(白名单)的技术。当区块链网络中的参与者调用部署在由区块链网络管理的区块链中的智能合约时,参与者提供账户作为调用的一部分。区块链网络针对参与者的账户检查与智能合约相关联的白名单。如果参与者的账户在白名单中,则区块链网络执行智能合约调用。如果参与者的账户不在白名单中,则区块链网络不执行智能合约调用。区块链网络还可以存储参与者尝试访问智能合约失败的记录。
本文的实施方式涉及将具有共享依赖关系(即,影响相同账户)的交易组(包括智能合约调用)与其他组并行地执行。可以基于与智能合约相关联的白名单来确定受智能合约调用影响的账户。因为不同组中的交易彼此不相关(例如,不影响区块链网络中的相同账户),所以不同组中的交易相对于彼此执行的顺序不会影响区块链网络的整体状态。因此,这些交易可以并行执行,这可导致区块链网络中的交易的吞吐量增加。
图1描绘了可用于执行本文实施方式的环境100的示例。在一些示例中,环境100使实体能够参与到区块链网络102中。环境100包括计算***106、108以及网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网络站点、用户设备(例如,计算设备)和后台***。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。在一些示例中,网络110使得与区块链网络102通信以及在区块链网络102内部进行通信成为可能。通常,网络110表示一个或多个通信网络。在一些情况下,计算***106、108可以是云计算***(未示出)的节点,或者每个计算***106、108可以是单独的云计算***,所述云计算***包括由网络互连的多个计算机并且用作分布式处理***。
在所描绘的示例中,计算***106、108可以各自包括能够作为节点参与至区块链网络102中的任何适当的计算设备120。计算设备的示例包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备以及智能电话。在一些示例中,计算***106、108承载一个或多个由计算机实施的服务,用于与区块链网络102进行交互。例如,计算***106可以承载第一实体(例如,参与者A)的由计算机实施的、例如交易管理***的服务,第一实体使用该交易管理***管理其与一个或多个其他实体(例如,其他参与者)的交易。计算***108可以承载第二实体(例如,参与者B)的由计算机实施的、例如交易管理***的服务,例如,第二实体使用该交易管理***管理其与一个或多个其他实体(例如,其他参与者)的交易。在图1的示例中,区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),且计算***106、108分别提供参与区块链网络102的第一实体和第二实体的节点。
图2描绘了根据本文实施方式的概念架构200的示例。概念架构200的示例包括分别对应于参与者A、参与者B和参与者C的参与者***202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络提供的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如图中进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
在所描绘的示例中,每个参与者***202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中作为各自的节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使相应的参与者能够参与到区块链网络中的个体***(例如,计算机、服务器)。在图2的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者***202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或通过区块链网络212进行通信。
节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识处理(例如,作为将区块添加到区块链216的监视节点),而其他节点214不参与此共识处理。作为另一示例,一些节点214存储区块链216的完整的副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应***内存储的区块链数据。在图2的示例中,参与者***202、204、206存储区块链216的相应的完整副本216'、216”、216”'。
区块链(例如,图2的区块链216)由一系列区块组成,每个区块存储数据。数据的示例包括表示两个或更多个参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以存储在区块链中(例如,文档、图像、视频、音频)。交易的示例可以包括但不限于有价物的交换(例如,资产、产品、服务)。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能改变。
在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度哈希值(也作为字符串数据提供)的处理。不可能对哈希值进行去哈希处理(un-hash)以获取交易数据。哈希处理可确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括但不限于输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被进行哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此处理,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并竞相将区块添加到区块链中。这样的节点被称为矿工(或监视节点)。上文介绍的工作量证明(POW)用作非限制性示例。
矿工节点执行共识处理以将交易添加到区块链中。尽管多个矿工节点参与共识处理,但只有一个矿工节点可以将区块写入区块链。也就是说,矿工节点在共识处理中竞相将他们的区块添加到区块链中。更详细地,矿工节点周期性地从交易池中收集待处理的交易(例如,最多达到区块中可包括的交易数量的预定限制,如果有的话)。交易池包括来自区块链网络中的参与者的交易消息。矿工节点创建区块,并将交易添加到区块中。在将多个交易添加到区块之前,矿工节点检查所述多个交易中是否有任一已经包含在区块链的区块中。如果有交易已包含在另一个区块中,则该交易将被丢弃。
矿工节点生成区块头,对区块中的所有交易进行哈希处理,并将所得的哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)。将此哈希值添加到区块头中。矿工还确定区块链中最近的区块的哈希值(即,添加到区块链中的最后一个区块)。矿工节点还向区块头添加随机数(nonce)和时间戳。在挖矿处理中,矿工节点尝试查找满足所需参数的哈希值。矿工节点不断更改随机数,直到找到满足所需参数的哈希值。
区块链网络中的每个矿工都试图找到满足所需参数的哈希值,并且以这种方式彼此竞争。最终,矿工节点之一找到满足所需参数的哈希值,并将其通告给区块链网络中的所有其他矿工节点。其他矿工节点验证该哈希值,如果确定为正确,则验证区块中的每个交易,接受该区块,并将该区块附加到他们的区块链副本中。以这种方式,区块链的全局状态在区块链网络内的所有矿工节点上是一致的。上述处理是POW共识协议。
参考图2提供了非限制性示例。在此示例中,参与者A想要向参与者B发送金额。参与者A生成交易消息(例如,包括发送方、接收方和数值字段),并将交易消息发送到区块链网络,从而将交易消息添加到了交易池中。区块链网络中的每个矿工节点创建一个区块,从交易池中取出所有交易(例如,最多达到可添加到区块的交易数量的预定限制,如果有的话),并将交易添加到区块。以这种方式,参与者A发布的交易被添加到矿工节点的区块中。
在一些区块链网络中,用密码术来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密方法的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密处理。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅被相应节点所知,而公钥被区块链网络中的任何或所有其他节点所知。节点可以使用另一个节点的公钥来加密数据,并且该加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥来加密数据,并将加密数据发送给参与者B。参与者B可以使用其私钥来解密该加密数据(密文)并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥解密。
非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与者A的该数字签名来确认该消息是由该节点发送的。数字签名也可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥加密该哈希值以提供为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥解密该数字签名,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,参与者B可以确认该消息确实来自参与者A,且未被篡改。
图3描绘了根据本文实施方式的用于使能智能合约白名单的环境300的示例。如图所示,智能合约302存储在图2的区块链网络212中的区块链216中。智能合约302包括指令304和白名单306。白名单306包括一个或多个账户308。
如上所述,智能合约302存储在区块链216中。区块链网络212中的参与者可以调用智能合约302,这可以使区块链网络212中的节点214执行指令304。在一些实施方式中,区块链网络中的节点214将检查由智能合约的调用者指定的账户是否被包括在由白名单306指定的一个或多个账户308中。如果账户在白名单306中,则节点214执行指令304。如果账户不在白名单306中,则节点214不执行指令304。
在一些实施方式中,指令304可以是以由区块链网络212中的节点214支持的例如诸如Solidity、Serpent、LLL、Viper、Mutan、C、C++、Python、Java、Javascript、或其他编程语言的高级编程语言编写的软件代码。指令304还可以是从与智能合约302相关联的软件代码生成的被编译的字节码。
在一些实施方式中,白名单306和账户308与智能合约302一起存储在区块链216中。在一些情况下,白名单306和账户308被包括在智能合约302的指令304内。例如,白名单306可以被包括在指令304中的指令中,例如预处理器指令或特殊格式的注释。还可以使用例如函数修饰符的专用于创作智能合约所用的编程语言的结构来包括白名单306。白名单306还可以在指令304内的可执行指令中指定。在一些实施方式中,在节点214执行指令304之前检查白名单306。在一些情况下,例如当白名单306被包括在可执行指令中时,在评估白名单306之前,节点214可以开始执行指令304。例如,智能合约302可以包括用指令304定义的私有函数,其将调用者的账户作为参数并基于白名单306验证调用者被授权调用智能合约。这种函数可以在执行智能合约302时自动调用,并且如果调用者的账户未被授权执行合约,则智能合约302可以简单地退出。在一些情况下,正在执行智能合约302的节点214可以调用私有函数来检查白名单306,并且如果对私有函数的调用表明调用者的账户被授权执行智能合约302,则仅执行智能合约302的主函数。
图4A描绘了根据本文实施方式的用于区块链网络中的交易的执行顺序400的示例。如图所示,执行顺序400包括根据要由区块链网络中的节点执行的多个交易的顺序来排序的多个交易(405、410、415、420)。交易405a、405b和405c是对智能合约的调用。除了智能合约调用外,所述执行顺序400包括多个交易组,交易组内的交易共享共同的依赖关系(由交叉阴影线表示),例如,诸如影响相同的一个或多个账户。智能合约调用405a和405b基于他们相应白名单的内容与其他交易被分到一组,所述白名单的内容定义了以下账户:所述账户可以执行智能合约并且智能合约由此可以改变他们的状态。如下所述,根据本文的实施方式,每个交易组可以由区块链网络中的节点并行执行。
图4B描绘了根据本文实施方式的区块链网络内的交易的并行执行顺序450的示例。如图所示,在并行执行顺序450中,交易组455、460、465已经被识别出。如图4B所示以及以上所讨论的,区块链网络中的节点可以并行执行交易组。在一些情况下,组内的所有交易共享共同的依赖关系,因此根据原始执行顺序串行地执行。这确保了根据并行执行顺序450执行交易之后的区块链网络的状态(例如,账户余额),与根据在图4A中的执行顺序400执行交易之后的区块链网络的状态相同。
考虑在执行图4B中的任何交易之前账户A具有余额$0的示例,其中交易410a表示从账户B向账户A支付金额$300,以及交易410b表示从账户A向账户C支付$50。如果交易410a和410b是串行执行的(如最初在执行顺序400中所述),则账户A将首先存入$300的资金,然后支出(debit)$50,留下的余额为$250。然而,如果交易410a和410b没有被串行执行,而在交易410a之前执行交易410b,则当执行交易410b的支付时,账户A将具有余额$0。账户A将没有足够的余额来为这种场景下的支付提供资金,这可能导致交易410b被区块链网络拒绝。
基于该示例,考虑交易420a表示从账户D向账户E支付$100的情况。因为受交易420a影响的账户(账户D和E)不包括受交易410a和410b影响的任何账户(账户A、B和C),所以交易420a与交易410a和410b没有共同的依赖关系。因此,交易420a可以与交易410a和410b并行执行。
智能合约调用(例如,405a-c)与其他类型的交易的不同之处在于:智能合约的执行将影响的账户可能无法基于该智能合约本身来确定。由于智能合约是可由区块链网络中的任何参与者调用的可执行软件程序,因此理论上它可以影响区块链网络中的任何账户。然而,通过添加上述白名单,可以确定特定智能合约可以影响的账户。因为只有白名单中的账户才能使智能合约执行,所以只有那些账户才有可能通过执行智能合约来改变他们的状态(例如,他们的余额)。因此,白名单允许智能合约调用与影响相同账户的其他交易被分到一组,以在区块链网络中并行地执行。
在一些实施方式中,可以将要被串行执行的交易分到一组。例如,如图4B所示,交易410a-b和智能合约调用405b被分到组455中,交易415a-e被分到组460中,并且交易420a-c和智能合约调用405a被分到组465中。可以由区块链网络中的节点并行地执行组455、460和465中的每一个。并行地执行交易组455、460和465可以导致区块链网络上的交易吞吐量增加,因为这样网络在任一时间并行地执行三个交易,而不是如所有交易都是串行执行时那么只执行一个交易。
在一些实施方式中,如果智能合约不包括白名单,则区块链网络中的任何账户可以执行该智能合约。智能合约调用405c是未指定白名单的智能合约调用。因为智能合约调用405c可以由区块链网络中的任何账户执行,所以它不能与其他交易并行地执行。合约调用405c表示并行执行收敛(converge)的同步点。由于合约调用导致构成智能合约的指令的执行,因此可能无法确定具体的合约调用将影响的账户范围。例如,考虑一个简单的智能合约,它将具体账户和支付金额作为参数,并且若某些条件为真时将所述支付金额应用于所述具体账户。因为由这个智能合约的调用者在调用该智能合约时指定具体账户,所以根据该智能合约本身的定义(即,其源代码)无法确定对该智能合约的具体调用将影响哪些账户。为此,在一些实施方式中,合约调用可被视为可能影响区块链网络中的所有账户的交易,因此不能与其他交易并行执行。因此,并行执行顺序450在到达合约调用405c时收敛。例如,如图所示,组455、460和465并行执行,直到到达合约调用405c为止。在该点处,区块链网络开始等待,直到组455、460和465中的所有交易都已完成执行,然后继续执行智能合约调用405c。
图5描绘了可以根据本文实施方式执行的处理500的示例。在一些实施方式中,可以使用利用一个或多个计算设备执行的一个或多个计算机可执行程序来执行处理400。
在502处,识别要在区块链中执行的多个交易。这些交易按执行顺序排列,并且可以包括针对具有白名单的智能合约的一个或多个智能合约调用,每个智能合约的白名单识别被授权执行该智能合约的一个或多个账户。执行顺序包括排在所述多个交易之后的对没有白名单的智能合约的智能合约调用。在一些情况下,识别要在区块链中执行的多个交易包括接收向区块链网络广播的交易。在一些实施方式中,每个智能合约的白名单被包括在与每个智能合约相关联的可执行指令集内。白名单可以和与每个智能合约相关联的可执行指令集分离。白名单可以包括被授权访问每个智能合约的一个或多个账户的标识。在一些情况下,白名单包括对每个智能合约外部的位置的引用,该位置存储被授权访问每个智能合约的一个或多个账户。
在504,识别多个交易内的交易组,其中,每组中的交易与区块链网络中的特定账户集相关联,并且,与一个或多个智能合约调用各自相关联的特定账户集是基于与智能合约调用相关联的白名单确定的。
在506处,指示区块链网络中的节点并行执行每个交易组,其中,执行每个交易组包括根据所述执行顺序串行地执行该组内的交易。在一些情况下,指示区块链网络中的节点并行地执行每个交易组包括:指示第一节点集执行第一交易组以及指示第二节点集执行第二交易组。在一些情况下,指示区块链网络中的节点并行地执行每个交易组包括:通过网络向节点发送消息。
在508处,确定区块链网络中的节点已完成所有交易组的执行。在一些情况下,确定区块链网络中的节点已经完成所有交易组的执行,包括:确定所述多个交易中的所有交易已经包括在存储于由区块链网络维护的区块链的一个或多个区块中。
在510处,响应于确定区块链网络中的节点已经完成所有交易组的执行,指示区块链网络中的节点执行不包括白名单的智能合约调用。
图6描绘了根据本文实施方式的装置600的模块的示例。装置600可以是被配置为能够在例如联盟区块链网络的区块链网络中并行执行交易的示例性实施方式。装置600可以对应于上述实施方式,并且装置600包括以下:第一识别器或第一识别单元602,用于识别要在区块链中执行的多个交易,其中,所述交易按执行顺序排列,其中,所述交易包括对具有白名单的智能合约的一个或多个智能合约调用,每个智能合约的白名单识别被授权执行该智能合约的一个或多个账户,并且,执行顺序包括排在所述多个交易之后的对没有白名单的智能合约的智能合约调用;第二识别器或第二识别单元604,用于识别多个交易内的交易组,其中,每组中的交易与区块链网络中的特定账户集相关联,并且,基于与智能合约调用相关联的白名单来确定与一个或多个智能合约调用各自相关联的特定账户集;第一指示器或第一指示单元606,用于指示区块链网络中的节点并行地执行每个交易组,其中,执行每个交易组包括根据所述执行顺序串行地执行该组内的交易;确定器或确定单元608,用于确定区块链网络中的节点已经完成所有交易组的执行;以及第二指示器或第二指示单元610,用于响应于确定区块链网络的节点已经完成所有交易组的执行,指示区块链网络中的节点执行不包括白名单的智能合约调用。
在先前实施中示出的***、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实现设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板电脑、可穿戴设备或这些设备的任意组合。
对于装置中各个单元的功能和角色的实施过程,可以参考前一方法中相应步骤的实施过程。为简单起见,这里省略了细节。
由于装置实施基本上对应于方法实施,对于相关部分,可以参考方法实施中的相关描述。先前描述的装置实施仅是示例。被描述为单独部分的单元可以是或不是物理上分离的,并且显示为单元的部分可以是或不是物理单元,可以位于一个位置,或者可以分布在多个网络单元上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员无需付出创造性劳动就能理解和实现本申请的实施方式。
再次参见图6,它可以被解释为示出了用于实现在区块链网络中并行执行交易的装置的内部功能模块和结构。并行执行装置可以是被配置为实现在区块链网络中并行执行交易的装置的示例。
本文中描述的主题、动作以及操作的实施可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实现,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施可以实现为一个或多个计算机程序,例如,一个或多个计算机程序指令模块,编码在计算机程序载体上,用于由数据处理装置执行或控制数据处理装置的操作。载体可以是有形的非暂态计算机存储介质。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电、光或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或者多处理器或计算机。数据处理装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPU(图形处理单元)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***或者它们中的一个或多个的组合的代码。
计算机程序也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或演绎性语言、说明或程序性语言;它可以配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由通信数据网络互联的在一个或多个位置的一台或多台计算机。
计算机程序可以但非必须对应于文件***中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件;或者多个协调文件,例如,存储一个或多个模块、子程序或代码部分的多个文件。
本文中描述的处理和逻辑流程可由一台或多台计算机执行一个或多个计算机程序进行,以进行通过对输入数据进行运算并生成输出的操作。处理和逻辑流程也可以由例如FPGA、ASIC、GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将耦接至至少一个非暂态计算机可读存储介质(也被称为计算机可读存储器)。耦接至该计算机的存储介质可以是计算机的内部元件(例如集成硬盘驱动器)或外部元件(例如通用串行总线(USB)硬盘驱动器或可通过网络访问的存储***)。存储介质的示例可以包括,例如,磁盘、磁光盘或光盘、固态驱动器、诸如云存储***的网络存储资源或其他类型的存储介质。但是,计算机不需要具有这样的设备。此外,计算机可以嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位***(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)轮流发送文本消息或其他形式的消息并接收来自用户的响应消息来与用户交互。
本文使用与***、装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的***,意味着***已经在其上安装了在运行中促使该***执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包含许多具体实施细节,但是这些不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文多个单独实施例的上下文中描述的多个特定特征也可以在单个实施例中的组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在一些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种***模块和组件的划分不应被理解为所有实施例中都要求如此划分,而应当理解,所描述的程序组件和***通常可以一起集成在单个软件产品或者打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的处理无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务和并行处理可能是有利的。

Claims (20)

1.一种计算机实施的用于在区块链网络中并行地执行交易的方法,所述方法包括:
识别要在所述区块链网络中执行的多个交易,其中,
所述交易按执行顺序排列,
所述交易包括对具有白名单的智能合约的一个或多个智能合约调用,每个所述智能合约的白名单识别被授权执行所述智能合约的一个或多个账户,并且
所述执行顺序包括排在所述多个交易之后的对不具有白名单的智能合约的智能合约调用;
识别所述多个交易内的交易组,其中,
每组中的交易与所述区块链网络中的特定账户集相关联,并且
与所述一个或多个智能合约调用各自相关联的所述特定账户集是基于与所述智能合约调用相关联的所述白名单来确定的;
指示所述区块链网络中的节点并行地执行每个所述交易组,其中,执行每个所述交易组包括根据所述执行顺序串行地执行该组内的交易;
确定所述区块链网络中的所述节点已经完成所有所述交易组的执行;以及
响应于确定所述区块链网络中的所述节点已经完成所有所述交易组的执行,指示所述区块链网络中的所述节点执行所述不具有白名单的智能合约调用。
2.根据权利要求1所述的方法,其中,指示所述区块链网络中的节点并行地执行每个所述交易组,包括:
指示第一节点集执行第一交易组;以及
指示第二节点集执行第二交易组。
3.根据权利要求1所述的方法,其中,确定所述区块链网络中的所述节点已经完成所有所述交易组的执行,包括:
确定所述多个交易中的所有交易已被包括在存储于由所述区块链网络维护的区块链的一个或多个区块中。
4.根据权利要求1所述的方法,其中,指示所述区块链网络中的节点并行地执行每个所述交易组,包括:
通过网络向所述节点发送消息。
5.根据权利要求1所述的方法,其中,识别要在所述区块链网络中执行的所述多个交易,包括:
接收向所述区块链网络广播的交易。
6.根据权利要求1所述的方法,其中,一个智能合约的所述白名单被包括在与该智能合约相关联的可执行指令集内。
7.根据权利要求1所述的方法,其中,一个智能合约的所述白名单和与该智能合约相关联的可执行指令集分离。
8.根据权利要求1所述的方法,其中,一个智能合约的所述白名单包括被授权访问该智能合约的所述一个或多个账户的标识。
9.根据权利要求1所述的方法,其中,一个智能合约的所述白名单包括对该智能合约外部的位置的引用,所述位置存储被授权访问每个智能合约的所述一个或多个账户。
10.一种非暂态计算机可读存储介质,耦接到一个或多个计算机并且其上存储有能够由所述一个或多个计算机执行以用于以下的指令:
识别要在区块链网络中执行的多个交易,其中,所述交易按执行顺序排列,所述交易包括对具有白名单的智能合约的一个或多个智能合约调用,每个所述智能合约的白名单识别被授权执行所述智能合约的一个或多个账户,并且,所述执行顺序包括排在所述多个交易之后的对不具有白名单的智能合约的智能合约调用;
识别所述多个交易内的交易组,其中,每组中的交易与所述区块链网络中的具体账户集相关联,并且与所述一个或多个智能合约调用各自相关联的所述具体账户集是基于与所述智能合约调用相关联的所述白名单来确定的;
指示所述区块链网络中的节点并行地执行每个所述交易组,其中,执行每个所述交易组包括根据所述执行顺序串行地执行该组内的交易;
确定所述区块链网络中的所述节点已经完成所有所述交易组的执行;以及
响应于确定所述区块链网络中的所述节点已经完成所有所述交易组的执行,指示所述区块链网络中的所述节点执行所述不具有白名单的智能合约调用。
11.根据权利要求10所述的非暂态计算机可读存储介质,其中,指示所述区块链网络中的节点并行地执行每个所述交易组,包括:
指示第一节点集执行第一交易组;以及
指示第二节点集执行第二交易组。
12.根据权利要求10所述的非暂态计算机可读存储介质,其中,确定所述区块链网络中的所述节点已经完成所有所述交易组的执行,包括:
确定所述多个交易中的所有交易已被包括在存储于由所述区块链网络维护的区块链的一个或多个区块中。
13.根据权利要求10所述的非暂态计算机可读存储介质,其中,指示所述区块链网络中的节点并行地执行每个所述交易组,包括:
通过网络向所述节点发送消息。
14.根据权利要求10所述的非暂态计算机可读存储介质,其中,识别要在所述区块链网络中执行的所述多个交易,包括:
接收向所述区块链网络广播的交易。
15.根据权利要求10所述的非暂态计算机可读存储介质,其中,一个智能合约的所述白名单被包括在与该智能合约相关联的可执行指令集内。
16.根据权利要求10所述的非暂态计算机可读存储介质,其中,一个智能合约的所述白名单和与该智能合约相关联的可执行指令集分离。
17.根据权利要求10所述的非暂态计算机可读存储介质,其中,一个智能合约的所述白名单包括被授权访问该智能合约的所述一个或多个账户的标识。
18.根据权利要求10所述的非暂态计算机可读存储介质,其中,一个智能合约的所述白名单包括对该智能合约外部的位置的引用,所述位置存储被授权访问每个智能合约的所述一个或多个账户。
19.一种用于在区块链网络中并行地执行交易的***,包括:
一个或多个计算机;和
一个或多个计算机可读存储器,耦接到所述一个或多个计算机并且其上存储有能够由所述一个或多个计算机执行以用于以下的指令:
识别要在区块链网络中执行的多个交易,其中,所述交易按执行顺序排列,所述交易包括对具有白名单的智能合约的一个或多个智能合约调用,每个所述智能合约的白名单识别被授权执行所述智能合约的一个或多个账户,并且所述执行顺序包括排在所述多个交易之后的对不具有白名单的智能合约的智能合约调用;
识别所述多个交易内的交易组,其中,每组中的交易与所述区块链网络中的具体账户集相关联,并且与所述一个或多个智能合约调用各自相关联的所述具体账户集是基于与所述智能合约调用相关联的所述白名单来确定的;
指示所述区块链网络中的节点并行地执行每个所述交易组,其中,执行每个所述交易组包括根据所述执行顺序串行地执行该组内的交易;
确定所述区块链网络中的所述节点已经完成所有所述交易组的执行;以及
响应于确定所述区块链网络中的所述节点已经完成所有所述交易组的执行,指示所述区块链网络中的所述节点执行所述不具有白名单的智能合约调用。
20.根据权利要求19所述的***,其中,指示所述区块链网络中的节点并行地执行每个所述交易组,包括:
指示第一节点集执行第一交易组;以及
指示第二节点集执行第二交易组。
CN201880006516.3A 2018-12-28 2018-12-28 基于智能合约白名单在区块链网络中并行执行交易 Active CN110300985B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/124873 WO2019072305A2 (en) 2018-12-28 2018-12-28 PARALLEL EXECUTION OF TRANSACTIONS IN A BLOCK CHAIN NETWORK BASED ON WHITE LISTS OF INTELLIGENT CONTRACTS

Publications (2)

Publication Number Publication Date
CN110300985A CN110300985A (zh) 2019-10-01
CN110300985B true CN110300985B (zh) 2023-08-01

Family

ID=66100122

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880006516.3A Active CN110300985B (zh) 2018-12-28 2018-12-28 基于智能合约白名单在区块链网络中并行执行交易

Country Status (17)

Country Link
US (2) US10911461B2 (zh)
EP (1) EP3566391B1 (zh)
JP (1) JP7012730B2 (zh)
KR (1) KR102294223B1 (zh)
CN (1) CN110300985B (zh)
AU (1) AU2018347205C1 (zh)
BR (1) BR112019016290A2 (zh)
CA (1) CA3052884C (zh)
ES (1) ES2879907T3 (zh)
MX (1) MX2019009344A (zh)
MY (1) MY201623A (zh)
PH (1) PH12019501847A1 (zh)
PL (1) PL3566391T3 (zh)
RU (1) RU2731417C1 (zh)
SG (1) SG11201907243UA (zh)
WO (1) WO2019072305A2 (zh)
ZA (1) ZA201905218B (zh)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11243810B2 (en) * 2018-06-06 2022-02-08 The Bank Of New York Mellon Methods and systems for improving hardware resiliency during serial processing tasks in distributed computer networks
US11405182B2 (en) 2018-12-03 2022-08-02 Ebay Inc. Adaptive security for smart contracts using high granularity metrics
US11250125B2 (en) 2018-12-03 2022-02-15 Ebay Inc. Highly scalable permissioned block chains
US11263315B2 (en) 2018-12-03 2022-03-01 Ebay Inc. System level function based access control for smart contract execution on a blockchain
CN118196938A (zh) * 2018-12-06 2024-06-14 开利公司 由区块链支持的智能锁***
JP6816300B2 (ja) 2018-12-28 2021-01-20 アドバンスド ニュー テクノロジーズ カンパニー リミテッド ブロックチェーンネットワークにおけるトランザクションの並列実行
EP3566391B1 (en) * 2018-12-28 2021-04-21 Advanced New Technologies Co., Ltd. Parallel execution of transactions in a blockchain network based on smart contract whitelists
SG11201910057QA (en) 2019-04-12 2019-11-28 Alibaba Group Holding Ltd Performing parallel execution of transactions in a distributed ledger system
CA3060790C (en) 2019-04-12 2021-06-08 Alibaba Group Holding Limited Performing parallel execution of transactions in a distributed ledger system
SG11202000784SA (en) * 2019-04-30 2020-02-27 Alibaba Group Holding Ltd Methods and devices for managing access to account in blockchain system
SG11201910069YA (en) 2019-04-30 2019-11-28 Alibaba Group Holding Ltd Method and device for avoiding double-spending problem in read-write set-model-based blockchain technology
CN110175844A (zh) * 2019-05-07 2019-08-27 深圳前海微众银行股份有限公司 一种区块链中智能合约的发布方法及装置
WO2021032115A1 (zh) * 2019-08-19 2021-02-25 杭州趣链科技有限公司 智能合约并行执行的方法、装置、设备和介质
CN110968437A (zh) * 2019-11-27 2020-04-07 杭州趣链科技有限公司 一种基于Java智能合约的单个合约并行执行的方法、装置、设备及介质
US10783082B2 (en) * 2019-08-30 2020-09-22 Alibaba Group Holding Limited Deploying a smart contract
KR102304953B1 (ko) * 2019-08-30 2021-09-27 주식회사 미디움 피어 노드와 그 정보 처리 방법 및 블록체인 플랫폼 시스템
US11768701B2 (en) * 2019-09-17 2023-09-26 Western Digital Technologies, Inc. Exception analysis for data storage devices
CN110691122B (zh) * 2019-09-23 2022-04-05 杭州复杂美科技有限公司 平行链共识方法、设备及存储介质
DE102019216744A1 (de) * 2019-10-30 2021-05-06 Robert Bosch Gmbh Granulare Speicherverwaltung für einen Distributed Ledger
KR102342788B1 (ko) * 2019-11-19 2021-12-24 한양대학교 산학협력단 트랜잭션의 병렬적 실행을 지원하는 방법, 이를 이용하는 블록체인 노드 및 프로그램
US11387979B2 (en) 2019-12-23 2022-07-12 International Business Machines Corporation Partially-ordered blockchain
CN111294234B (zh) * 2020-01-17 2022-07-29 麦科思(苏州)数据科技有限公司 一种基于智能合约优化模型的并行区块链分片方法
CN111339108A (zh) * 2020-02-18 2020-06-26 杭州复杂美科技有限公司 一种交易并行执行方法、设备及存储介质
CN111414374B (zh) * 2020-03-20 2023-04-28 深圳市迅雷网络技术有限公司 一种区块链交易并发处理方法、装置及设备
CN111325928B (zh) * 2020-04-01 2021-12-21 中国银行股份有限公司 银行自助设备的业务执行方法及装置
CN111563820B (zh) * 2020-05-08 2023-09-22 中国工商银行股份有限公司 智能合约并行执行方法及装置
CN111339208B (zh) * 2020-05-15 2020-08-25 支付宝(杭州)信息技术有限公司 调用智能合约的方法及装置
CN111754350B (zh) 2020-08-28 2020-11-24 支付宝(杭州)信息技术有限公司 并行获取区块链中的交易访问变量的编号的方法和装置
CN111754349B (zh) 2020-08-28 2020-12-04 支付宝(杭州)信息技术有限公司 对区块链中的交易进行分组的方法和装置
CN111770202B (zh) 2020-08-31 2021-10-29 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111770204B (zh) 2020-08-31 2021-10-22 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111768183B (zh) 2020-08-31 2024-04-19 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和存储介质
CN111768184A (zh) * 2020-08-31 2020-10-13 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法及区块链节点
CN111770113B (zh) * 2020-08-31 2021-07-30 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和节点设备
CN113191895B (zh) * 2020-09-04 2022-04-26 支付宝(杭州)信息技术有限公司 一种交易执行方法、***及装置
CN113454597A (zh) 2020-09-28 2021-09-28 支付宝(杭州)信息技术有限公司 区块链交易处理***和方法
KR102286473B1 (ko) * 2020-10-14 2021-08-06 (주)헥슬란트 가상 자산 검증 모듈, 이를 포함하는 가상 자산 거래 시스템 및 그 방법
US11194791B1 (en) * 2020-10-23 2021-12-07 Coinbase Crypto Services, LLC. Blockchain orchestrator computer system
CN113205424B (zh) * 2020-10-28 2023-08-25 支付宝(杭州)信息技术有限公司 在区块链中部署和调用合约的方法和装置
CN112465514A (zh) * 2020-12-08 2021-03-09 苏州域乎区块链科技有限公司 一种基于区块链的分层式交易并行执行方法及***
CN112748994B (zh) * 2020-12-31 2023-11-28 上海简苏网络科技有限公司 一种区块链交易并行处理方法及***
CN112764897B (zh) * 2020-12-31 2024-03-22 杭州趣链科技有限公司 任务请求的处理方法、装置、***及计算机可读存储介质
US11829765B2 (en) 2021-03-31 2023-11-28 International Business Machines Corporation Computer mechanism for analytic orchestration and entitled execution
WO2023277553A1 (ko) * 2021-06-30 2023-01-05 주식회사 아티프렌즈 블록체인 네트워크에서의 트랜잭션의 처리 속도 향상 방법
US11936794B2 (en) * 2021-09-16 2024-03-19 Masterard International Incorporated Method and system for parallel processing of smart contracts in permissioned blockchains
CN113869902A (zh) * 2021-12-03 2021-12-31 深圳前海微众银行股份有限公司 一种区块链交易执行方法及装置
CN114285632B (zh) * 2021-12-23 2023-07-28 成都质数斯达克科技有限公司 一种区块链数据传输方法、装置和设备及可读存储介质
CN116382815B (zh) * 2023-06-05 2023-10-10 安徽中科晶格技术有限公司 基于dag模型的合约并行化方法
CN117422468B (zh) * 2023-12-18 2024-03-29 安徽中科晶格技术有限公司 基于dag模型的合约链合约并行化方法、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及***
CN108269072A (zh) * 2016-12-30 2018-07-10 深圳瀚德创客金融投资有限公司 用于区块链的交易处理方法和网络节点
CN108769173A (zh) * 2018-05-21 2018-11-06 阿里体育有限公司 运行智能合约的区块链实现方法及设备

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401235B2 (en) 2002-05-10 2008-07-15 Microsoft Corporation Persistent authorization context based on external authentication
CN102915421B (zh) * 2011-08-04 2013-10-23 腾讯科技(深圳)有限公司 文件的扫描方法及***
US9870310B1 (en) * 2013-11-11 2018-01-16 Amazon Technologies, Inc. Data providers for annotations-based generic load generator
RU2670029C2 (ru) * 2014-06-03 2018-10-17 Общество С Ограниченной Ответственностью "Яндекс" Система и способ автоматической модерации сообщений
US10095549B1 (en) * 2015-09-29 2018-10-09 Amazon Technologies, Inc. Ownership transfer account service in a virtual computing environment
EP4375908A1 (en) * 2015-10-17 2024-05-29 Banqu, Inc. Blockchain-based identity and transaction platform
US20170132615A1 (en) * 2015-11-11 2017-05-11 Bank Of America Corporation Block chain alias for person-to-person payments
US10432471B2 (en) * 2015-12-31 2019-10-01 Microsoft Technology Licensing, Llc Distributed computing dependency management system
EP3193299A1 (en) * 2016-01-15 2017-07-19 Accenture Global Services Limited Device, method and system for autonomous selection of a commodity supplier through a blockchain distributed database
US10255108B2 (en) 2016-01-26 2019-04-09 International Business Machines Corporation Parallel execution of blockchain transactions
US10720232B2 (en) * 2016-04-13 2020-07-21 Accenture Global Solutions Limited Distributed healthcare records management
US10046228B2 (en) * 2016-05-02 2018-08-14 Bao Tran Smart device
CA3027630A1 (en) * 2016-07-01 2018-01-04 Wells Fargo Bank, N.A. International trade finance blockchain system
US10425399B2 (en) 2016-07-12 2019-09-24 International Business Machines Corporation Template-based distributed certificate issuance in a multi-tenant environment
US10417217B2 (en) * 2016-08-05 2019-09-17 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
WO2018031551A1 (en) * 2016-08-08 2018-02-15 The Dun & Bradstreet Corporation Trusted platform and integrated bop applications for networking bop components
US11146535B2 (en) * 2016-10-12 2021-10-12 Bank Of America Corporation System for managing a virtual private ledger and distributing workflow of authenticated transactions within a blockchain distributed network
US20180158034A1 (en) 2016-12-07 2018-06-07 International Business Machines Corporation Dynamic reordering of blockchain transactions to optimize performance and scalability
US11200966B2 (en) 2016-12-27 2021-12-14 Cerner Innovation, Inc. Healthcare system based on devices and wearables
KR102470727B1 (ko) * 2016-12-30 2022-11-25 비씨 디벨롭먼트 랩스 게엠베하 블록체인 가능한 서비스 제공자 시스템
CN106980649B (zh) * 2017-02-28 2020-07-10 创新先进技术有限公司 写入区块链业务数据的方法和装置及业务子集合确定方法
CN106878000B (zh) * 2017-03-06 2020-02-21 中钞***产业发展有限公司杭州区块链技术研究院 一种联盟链共识方法及***
CN106934710A (zh) * 2017-03-06 2017-07-07 钱德君 一种基于智能合约内容的量子合约账本
US10489597B2 (en) * 2017-03-28 2019-11-26 General Electric Company Blockchain verification of network security service
GB201707296D0 (en) 2017-05-08 2017-06-21 Nchain Holdings Ltd Computer-implemented system and method
US10341105B2 (en) * 2017-06-07 2019-07-02 At&T Intellectual Property I, L.P. Blockchain-based social media history maps
AU2018289562A1 (en) * 2017-06-22 2020-01-16 Jpmorgan Chase Bank, N.A. System and method for implementing an interbank information network
US10679210B2 (en) 2017-06-26 2020-06-09 International Business Machines Corporation Blockchain transaction commitment ordering
US10616324B1 (en) * 2017-07-20 2020-04-07 Architecture Technology Corporation Decentralized ledger system and method for enterprises
US11196552B2 (en) * 2017-08-04 2021-12-07 Truss Financial, LLC Secure data distribution protocol using blockchains
CN107688999B (zh) 2017-08-11 2020-11-13 杭州溪塔科技有限公司 一种基于区块链的并行交易执行方法
US20190087793A1 (en) * 2017-08-31 2019-03-21 Brown University Adding concurrency to smart contracts
US11132451B2 (en) * 2017-08-31 2021-09-28 Parity Technologies Ltd. Secret data access control systems and methods
RU2673399C1 (ru) * 2017-09-07 2018-11-26 Олег Александрович Серебренников Способ сохранения покупательной способности сбережений
WO2019067603A1 (en) * 2017-09-27 2019-04-04 Securrency, Inc. METHOD, APPARATUS, AND COMPUTER-READABLE MEDIUM FOR CONFORMITY-SENSITIVE TOKENIZATION AND ASSET VALUE CONTROL
US11100483B2 (en) * 2017-09-29 2021-08-24 Intel Corporation Hierarchical data information
CN107704269A (zh) 2017-10-16 2018-02-16 中国银行股份有限公司 一种基于区块链生成区块的方法以及***
US11823178B2 (en) * 2017-11-17 2023-11-21 International Business Machines Corporation Optimization of high volume transaction performance on a blockchain
TWI677213B (zh) * 2017-11-23 2019-11-11 財團法人資訊工業策進會 監控裝置、方法及其電腦程式產品
JP2019125914A (ja) * 2018-01-16 2019-07-25 アラクサラネットワークス株式会社 通信装置及びプログラム
US10373158B1 (en) * 2018-02-12 2019-08-06 Winklevoss Ip, Llc System, method and program product for modifying a supply of stable value digital asset tokens
US10540654B1 (en) * 2018-02-12 2020-01-21 Winklevoss Ip, Llc System, method and program product for generating and utilizing stable value digital assets
CN108848119B (zh) * 2018-04-03 2020-04-28 阿里巴巴集团控股有限公司 跨区块链的交互方法及装置、***、电子设备
RU181439U1 (ru) * 2018-04-06 2018-07-13 Оксана Валерьевна Кириченко Децентрализованная технологическая платформа хранения и обмена данными транзакций в распределенной вычислительной сети
CN108681565B (zh) 2018-04-28 2020-11-10 百度在线网络技术(北京)有限公司 区块链数据并行处理方法、装置、设备和存储介质
CN108846659B (zh) 2018-06-13 2021-09-14 深圳前海微众银行股份有限公司 基于区块链的转账方法、装置及存储介质
US11836721B2 (en) * 2018-06-29 2023-12-05 Intel Corporation Protection of information in an information exchange
CN109064171A (zh) 2018-07-26 2018-12-21 杭州秘猿科技有限公司 一种区块链并行交易的方法、装置及电子***
JP6816300B2 (ja) 2018-12-28 2021-01-20 アドバンスド ニュー テクノロジーズ カンパニー リミテッド ブロックチェーンネットワークにおけるトランザクションの並列実行
EP3566391B1 (en) * 2018-12-28 2021-04-21 Advanced New Technologies Co., Ltd. Parallel execution of transactions in a blockchain network based on smart contract whitelists

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108269072A (zh) * 2016-12-30 2018-07-10 深圳瀚德创客金融投资有限公司 用于区块链的交易处理方法和网络节点
CN107678865A (zh) * 2017-09-20 2018-02-09 中国银行股份有限公司 基于交易分组的区块链的验证方法以及***
CN108769173A (zh) * 2018-05-21 2018-11-06 阿里体育有限公司 运行智能合约的区块链实现方法及设备

Also Published As

Publication number Publication date
EP3566391A2 (en) 2019-11-13
MX2019009344A (es) 2019-10-02
US20210160245A1 (en) 2021-05-27
SG11201907243UA (en) 2019-09-27
WO2019072305A2 (en) 2019-04-18
RU2731417C1 (ru) 2020-09-02
AU2018347205B2 (en) 2021-02-25
PH12019501847A1 (en) 2020-03-09
US10911461B2 (en) 2021-02-02
EP3566391B1 (en) 2021-04-21
US20190281065A1 (en) 2019-09-12
EP3566391A4 (en) 2020-03-18
ES2879907T3 (es) 2021-11-23
CN110300985A (zh) 2019-10-01
JP2020518880A (ja) 2020-06-25
CA3052884C (en) 2022-05-17
AU2018347205A1 (en) 2020-07-16
ZA201905218B (en) 2020-05-27
WO2019072305A3 (en) 2019-10-24
AU2018347205C1 (en) 2021-08-12
KR102294223B1 (ko) 2021-08-30
US11381573B2 (en) 2022-07-05
CA3052884A1 (en) 2019-04-18
PL3566391T3 (pl) 2021-10-18
KR20200083938A (ko) 2020-07-09
BR112019016290A2 (pt) 2021-07-20
JP7012730B2 (ja) 2022-01-28
MY201623A (en) 2024-03-06

Similar Documents

Publication Publication Date Title
CN110300985B (zh) 基于智能合约白名单在区块链网络中并行执行交易
CN110520882B (zh) 在区块链网络中并行执行交易
JP6892513B2 (ja) 信頼できる実行環境に基づいたオフチェーンスマートコントラクトサービス
US11354656B2 (en) Smart contract whitelists
CN111566649A (zh) 使用公有侧链验证存储在联盟区块链中的数据的完整性
CN111095325B (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40015346

Country of ref document: HK

TA01 Transfer of patent application right

Effective date of registration: 20201014

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

Effective date of registration: 20201014

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant