CN110809876A - 对智能合约执行链外测试的方法和设备 - Google Patents

对智能合约执行链外测试的方法和设备 Download PDF

Info

Publication number
CN110809876A
CN110809876A CN201980003261.XA CN201980003261A CN110809876A CN 110809876 A CN110809876 A CN 110809876A CN 201980003261 A CN201980003261 A CN 201980003261A CN 110809876 A CN110809876 A CN 110809876A
Authority
CN
China
Prior art keywords
information
transaction
execution environment
blockchain
smart contract
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.)
Granted
Application number
CN201980003261.XA
Other languages
English (en)
Other versions
CN110809876B (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
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of CN110809876A publication Critical patent/CN110809876A/zh
Application granted granted Critical
Publication of CN110809876B publication Critical patent/CN110809876B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • 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/54Interprogram communication
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Accounting & Taxation (AREA)
  • Software Systems (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Power Engineering (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本文公开了用于对智能合约执行链外测试的方法、设备和装置,包括存储在计算机可读介质上的计算机程序。所述方法之一包括:生成用于智能合约的执行环境信息,所述执行环境信息包括交易背景信息、区块链信息或者状态信息中的至少一种;提供在所生成的执行环境信息与所述智能合约之间的接口;基于所生成的执行环境信息和所提供的接口执行智能合约;以及存储所述智能合约的执行结果。

Description

对智能合约执行链外测试的方法和设备
技术领域
本文一般涉及计算机技术,更具体地,涉及用于对智能合约执行链外测试的方法和设备。
背景技术
区块链系统,也称为分布式账本系统(DLS)或共识系统,可以使参与实体安全且不可篡改地存储数据。在不参考任何特定用例的情况下,区块链系统可以包括任何DLS,并且可以用于公有区块链网络、私有区块链网络和联盟区块链网络。公有区块链网络向所有实体开放使用系统,并开放参与共识过程。私有区块链网络针对特定实体提供,该实体集中控制读写权限。联盟区块链网络针对选定的实体组群提供,该实体组群控制共识过程,并且联盟区块链网络包括访问控制层。
区块链系统维护一个或多个区块链。区块链是用于存储诸如交易的数据的数据结构,其可以防止恶意方篡改和操纵数据。
智能合约是可以在区块链上自动执行的计算机协议。例如,智能合约可以在某些条款被满足时自动完成交易。交易可涉及数据或加密货币的转移。然后,交易结果可以记录在区块链中。
由于区块链的去中心化和分布性,在区块链的所有节点或大部分节点达成共识后,交易可被视为成功。达成共识的时间可能是几秒钟到几分钟。因此,在区块链上对智能合约执行测试可能是耗时的。此外,一旦交易完成,交易结果将被记录在区块链中并且不能被更改。因此,测试可能会对区块链造成不希望的更改。
此外,随着智能合约越来越复杂,可能需要测试具有多笔交易的智能合约。但是,使用常规方法对多笔交易执行测试可能是耗时且效率低的。
发明内容
在一个方面,一种计算机实现的用于对智能合约执行链外测试的方法,包括:生成用于智能合约的执行环境信息,所述执行环境信息包括交易背景信息、区块链信息或者状态信息中的至少一种;提供在所生成的执行环境信息与智能合约之间的接口;基于所生成的执行环境信息和所提供的接口执行智能合约;并且存储智能合约的执行结果。
在另一个方面,一种用于对智能合约执行链外测试的设备,包括:一个或多个处理器;以及一个或多个计算机可读存储器,耦接至一个或多个处理器并且其上存储有指令,其中所述指令可由一个或多个处理器执行以:生成用于智能合约的执行环境信息,所述执行环境信息包括交易背景信息、区块链信息或者状态信息中的至少一种;提供在所生成的执行环境信息与智能合约之间的接口;基于所生成的执行环境信息和所提供的接口执行智能合约;并且存储智能合约的执行结果。
在另一个方面,一种非暂时性计算机可读介质,其上存储有指令,所述指令在由设备的处理器执行时,促使该设备对智能合约执行链外测试的方法。该方法包括:生成用于智能合约的执行环境信息,所述执行环境信息包括交易背景信息、区块链信息或者状态信息中的至少一种;提供在所生成的执行环境信息与智能合约之间的接口;基于所生成的执行环境信息和所提供的接口执行智能合约;并且存储智能合约的执行结果。
附图说明
包含在本文中并构成其一部分的附图示出了实施例。在参考附图的以下描述中,除非另有说明,否则不同附图中的相同附图标记表示相同或相似的元件。
图1为根据实施例的区块链系统的示意图。
图2为根据实施例的用于对智能合约执行链外测试的装置的框图。
图3为根据实施例的用于对智能合约执行链外测试的方法的流程图。
图4为根据实施例的用于对智能合约执行链外测试的方法的流程图。
图5为根据实施例的用于对智能合约执行链外测试的设备的框图。
具体实施方式
本文的实施例提供了用于对智能合约执行链外测试的方法和设备。所述方法和设备可以生成用于智能合约的执行环境信息。执行环境信息可以包括交易背景信息、区块链信息或状态信息中的至少一种。所述方法和设备还提供在所生成的执行环境信息与智能合约之间的接口,例如,应用程序接口(API)。所述方法和设备基于所生成的执行环境信息和所提供的接口进一步执行智能合约,并存储智能合约的执行结果。
本文中公开的实施例具有一种或多种技术效果。在一些实施例中,所述方法和设备生成执行环境信息以对智能合约执行链外测试,使得智能合约不需要在部署该智能合约的实际区块链上测试。这允许缩短测试时间,并防止实际区块链由于智能合约的测试而发生不希望的变化。在其他实施例中,所述方法和设备通过提供相应的区块链信息来仅模拟实际区块链的一部分,包括例如当前区块和前一区块。这允许使用减少的计算机资源执行测试,从而节省计算机资源。在其他实施例中,所述方法和设备提供在智能合约与执行环境信息之间的接口,例如,API。这允许智能合约与执行环境整合,使得测试可以如同智能合约在部署该智能合约的实际区块链上执行一样来执行。这还允许智能合约的执行结果(例如,对执行环境信息的改变)是可追踪的,从而可基于执行结果来识别和分析智能合约执行的每个操作。在其他实施例中,所述方法和设备生成多笔交易来执行测试。这允许智能合约的多个功能可以基本上同时被自动测试。
以下描述提供了实施例的细节。在实施例中,区块链是以交易可以是不可篡改且随后被验证的方式存储例如交易的数据的数据结构。区块链包括一个或多个区块。每个区块通过包括紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还可以包括时间戳、自身的加密哈希值以及一个或多个交易。通常已经由区块链系统的节点验证的交易可以经哈希处理并编码成例如默克尔(Merkle)树的数据结构。在Merkle树中,叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值可以在该分支的根处连接。此过程沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。声称是存储在树中的交易的哈希值可以通过确定其是否与树的结构一致而被快速验证。
区块链系统包括管理、更新和维护一个或多个区块链的计算节点的网络。所述网络可以是公有区块链网络、私有区块链网络或联盟区块链网络。例如,许多实体,诸如数百、数千或甚至数百万实体可以在公有区块链网络中操作,并且每个实体操作公有区块链网络中的至少一个节点。因此,公有区块链网络可以被认为是关于参与实体的公有网络。有时,大多数实体(节点)必须对每个区块进行签名,以使该区块有效并将其添加到区块链网络的区块链中。示例性公有区块链网络包括利用被称为区块链的分布式账本的特定点对点(peer-to-peer)支付网络。
通常,公有区块链网络可以支持公开交易。公开交易为公有区块链网络内的所有节点共享,并存储在全局区块链中。全局区块链是跨所有节点复制的区块链,并且所有节点相对于全局区块链处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在公有区块链网络内实施共识协议。共识协议的示例包括工作量证明(POW)(例如,在一些加密货币网络中实现)、权益证明(POS)和权威证明(POA)。
通常,可以为特定实体提供私有区块链网络,该特定实体集中控制读写权限。实体控制哪些节点能够参与到区块链网络中。因此,私有区块链网络通常被称为权限网络,其限制允许谁参与网络,以及它们的参与级别(例如,仅在某些交易中)。可以使用各种类型的访问控制机制(例如,现有参与者投票添加新实体,监管机构可以控制权限)。
通常,联盟区块链网络可以在参与实体之间是私有的。在联盟区块链网络中,共识过程由授权的节点集控制,一个或多个节点由对应实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作该联盟区块链网络中的至少一个节点。因此,联盟区块链网络可以被认为是与参与实体相关的私有网络。在一些示例中,每个实体(节点)必须对每个区块签名,以使该区块有效并将其添加到该区块链中。在一些示例中,至少实体(节点)的子集(例如,至少7个实体)必须对每个区块签名,以使该区块有效并将其添加到该区块链中。
图1示出了根据一个实施例的区块链系统100的示意图。参考图1,区块链系统100可以包括被配置为在区块链120上操作的多个节点,例如节点102-110。节点102-110可以形成网络112,例如点对点(P2P)网络。节点102-110中的每一个可以是被配置为存储区块链120的副本的计算设备,例如计算机或计算机系统,或者可以是在计算设备上运行的软件,诸如进程或应用程序。节点102-110中的每一个可以具有唯一标识。
区块链120可以包括数据区块形式的增长记录列表,例如图1中的区块B1-B5。区块B1-B5中的每一个可以包括区块标识、时间戳、前一区块的加密哈希值,以及当前区块的数据,该数据可以是诸如货币交易的交易。例如,如图1所示,区块B5可以包括时间戳、区块B4的加密哈希值和区块B5的交易数据。此外,例如,可以对前一区块执行哈希操作以生成前一区块的加密哈希值。哈希操作可以通过诸如SHA-256的哈希算法将各种长度的输入转换为固定长度的加密输出。
节点102-110可以在区块链120上执行操作。例如,当节点(例如,节点102)想要将新数据存储到区块链120上时,该节点可以生成要添加到区块链120的新区块,并将新区块广播到网络112中的其他节点(例如,节点104-110)。基于新区块的合法性,例如,其签名和交易的有效性,其他节点可以确定接受新区块,使得节点102和其他节点可以将新区块添加到其各自的区块链120的副本中。随着这个过程重复,可以将越来越多的数据区块添加到区块链120。
区块链系统100可以根据一个或多个智能合约运行。每个智能合约可以是计算机代码形式的计算机协议,该计算机协议被合并到区块链120中,以促进、验证或执行合约的谈判或履行。例如,区块链系统100的用户可以使用诸如C++、Java、Solidity、Python等编程语言将约定的条款编程为智能合约,当所述条款得到满足时,智能合约可以由区块链系统100自动执行,例如,执行交易。此外,例如,智能合约可以包括多个子进程或函数,每个子进程或函数可以是执行特定任务的程序指令序列。智能合约可以是在无需人工交互的情况下完全或部分执行的操作代码。
由于节点102-110中的每个节点可以存储区块链120的副本,因此节点102-110中的每个节点也可以访问区块链120中包括的智能合约的副本。在实施例中,例如,在智能合约被编译成操作代码之后,可以为智能合约分配在区块链120上的地址。智能合约的地址被配置或被用于在区块链120上定位智能合约。
在实施例中,区块链系统100中的节点(例如,节点102)可以基于智能合约的副本执行交易。在包括交易的新区块被广播到区块链系统100后,区块链系统100中的其他节点可以验证所述新区块。在所述新区块被区块链系统100中的大多数或所有节点验证后,所述新区块可被添加到这些节点上的区块链120的各自副本中,交易完成。
在实施例中,区块链系统100中的每个智能合约都可以使用下面描述的设备和方法进行测试,以确保正确操作。这些设备和方法可以对智能合约执行链外测试,而不是在部署该智能合约的实际区块链120上执行测试。
图2是根据实施例的用于对智能合约执行链外测试的装置200的框图。例如,装置200可以在智能合约被部署到实际区块链诸如区块链120(图1)之前对智能合约执行测试。参照图2,装置200可包括执行环境生成模块202、接口模块204、执行模块206和存储模块208。
执行环境生成模块202可以生成用于智能合约的执行环境信息。所生成的执行环境信息可以包括交易背景信息、区块链信息或状态信息中的至少一种。
在实施例中,交易背景信息(transaction context information)可以是关于交易的背景信息,该交易可以由装置200通过用户输入提供(例如,模拟)、接收。例如,模拟交易可以是甲方在某一条款(例如,甲方接收到数字图书的副本)被满足时向乙方转移一笔钱款,该笔钱款的转移可通过智能合约的转移子进程或者函数来实施。模拟交易可以使智能合约相信数字图书的副本已经被甲方接收到,并因此触发智能合约的执行。
在实施例中,交易背景信息可以包括智能合约的地址、交易标识、交易的参与方信息等。如上所述,智能合约的地址被配置或被用于在区块链上定位智能合约。交易标识被配置或被用于标识交易。例如,当装置200提供多笔交易时,每笔交易可以被分配相应的交易标识。此外,测试结果还可以通过交易标识来追踪和标识。交易的参与方信息可包括与交易有关的各方相关的信息,诸如账号信息。
在实施例中,区块链信息可以是关于装置200提供(例如,模拟)的区块链信息。区块链信息可以包括当前区块的区块标识、当前区块的时间戳、前一区块的哈希值等。如上所述,实际区块链120(图1)中的每个区块可以包括区块标识、时间戳和前一区块的加密哈希值。装置200可以通过提供相应的区块链信息来模拟实际区块链的一部分,包括例如当前区块和前一区块。
在实施例中,状态信息被配置或被用于表示智能合约的状态。例如,状态信息可以包括智能合约的参数信息以及交易中各方的诸如余额信息等交易信息。余额信息可以包括各方的当前余额、导致各方的当前余额的一个或多个变化等。
接口模块204可以提供在所生成的执行环境信息与智能合约之间的一个或多个接口,例如,应用程序接口(API)。例如,API可以包括用于获取所生成的用于智能合约的执行环境信息的API、用于执行哈希操作的API、用于加密的API、用于维护日志的API等。
执行模块206可以基于执行环境生成模块202生成的执行环境信息和接口模块204提供的接口来执行智能合约。执行模块206可以生成智能合约的执行结果。
存储模块208可以存储执行模块206生成的执行结果。例如,存储模块208可以将执行结果存储到文件系统或缓冲区中,以便于随后验证执行结果。
执行环境生成模块202、接口模块204、执行模块206和存储模块208中的每个可以是软件或硬件,也可以是软件和硬件的组合。例如,执行环境生成模块202、接口模块204、执行模块206和存储模块208中的每个可以使用处理器执行存储在存储器中的指令来实现。此外,例如,执行环境生成模块202、接口模块204、执行模块206和存储模块208中的每个可通过一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件来实现,用于执行以下所述的方法。
图3示出根据实施例的用于对智能合约执行链外测试的方法300的流程图。例如,方法300可由装置200(图2)执行。参照图3,方法300可包括以下步骤。
在步骤302中,初始化用于执行测试的执行环境信息。如上所述,执行环境信息可以包括交易背景信息、区块链信息和状态信息。因此,可以通过将相应的参数设置为预定值来初始化执行环境信息。
在步骤304中,交易信息被提供给测试中的智能合约。例如,向智能合约提供交易信息可以基于所述交易信息触发智能合约的执行。又例如,所述交易信息可以是关于数据或加密货币的转移信息。
在步骤306中,智能合约由例如执行模块206(图2)基于执行环境信息和交易信息来执行。例如,执行模块206可以从执行环境生成模块202获取交易背景信息和区块链信息,并从接口模块204调用API来执行智能合约。
在步骤308中,存储智能合约的执行结果。在一些实施例中,智能合约可以基于多笔交易测试,每笔交易的执行过程和执行结果可以顺序存储,直到为所有交易完成测试。
在步骤310中,可以显示所存储的执行结果以供验证。例如,可以将智能合约的执行结果与测试的预期结果进行比较,以确定执行结果是否与预期结果一致。由测试引起的执行环境信息的变化也可以得到验证,使得在测试期间智能合约中发生的错误可以被识别并被进一步纠正。应注意,所存储的执行结果可通过硬件或软件、或硬件和软件的组合来验证。
图4示出根据另一实施例的用于对智能合约执行链外测试的方法400的流程图。方法400可由计算机系统执行。计算机系统可以包括存储一组指令的存储器和执行该组指令以使该计算机系统执行方法400的至少一个处理器。参照图4,方法400可包括以下步骤。
在步骤402中,计算机系统可以接收智能合约和交易信息的输入。智能合约可以包括多个子进程或函数,并且测试是根据子进程或函数而配置的。交易信息可以对应于用于测试智能合约的至少一笔交易。
在步骤404中,计算机系统可以基于输入而生成由智能合约执行的交易。应该理解,交易可以不是实际交易,而是包括通常在实际交易中使用以触发智能合约进行相应操作的交易信息。
在步骤406中,计算机系统可以生成用于智能合约的执行环境信息。如上所述,执行环境信息可以包括交易背景信息、区块链信息、状态信息等。通过提供执行环境信息,可以如同在部署智能合约的实际区块链上执行该智能合约一样来执行测试。
在实施例中,根据部署智能合约的实际区块链的类型来配置对该智能合约的测试,计算机系统可以生成与实际区块链的类型一致的执行环境信息。例如,计算机系统可以生成与以太坊区块链一致的执行环境信息。因此,所生成的执行环境信息可以提供类似于部署智能合约的执行环境。
在步骤408中,计算机系统可以基于所生成的执行环境信息来执行智能合约,并获取智能合约的执行结果。执行结果可以包括智能合约的每个子进程和函数生成的数据。执行结果还可以包括表示区块链信息或状态信息中的一个或多个变化的数据。例如,成功的交易会导致新区块被添加到区块链,因此执行结果可包括表示区块链信息的变化的数据。此外,例如,成功的交易会导致账号信息的变化,例如余额的变化,因此执行结果可包括表示状态信息的变化的数据。在一些实施例中,计算机系统可以通过将交易发送到智能合约来触发智能合约的执行。
在步骤410中,基于作为第一交易的交易的执行结果,计算机系统可以更新第二交易的执行环境信息。计算机系统可以生成与第二交易对应的交易背景信息,该交易背景信息可以包括第二交易的交易标识和参与方信息。计算机系统可以基于所生成的交易背景信息和第一交易的执行结果进一步更新执行环境信息。如上所述,执行结果可以包括表示区块链信息或状态信息中的一个或多个变化的数据。通过将这些变化包括在所更新的执行环境信息中,计算机系统可以提供类似于实际区块链的执行环境,从而基于第二交易对智能合约执行准确且高效地测试。
在实施例中,计算机系统可以生成用于对智能合约执行链外测试的多笔交易。计算机系统的存储器可以记录多笔交易的执行结果以供验证。因此,通过在实际区块链之外执行智能合约,可以提高测试智能合约的效率。
图5是根据实施例的用于对智能合约执行链外测试的设备500的框图。例如,设备500可以使用计算机系统来实现。参照图5,设备500可包括处理器502、存储器504、通信接口506和显示器508。
处理器502可以执行指令来执行上述用于对智能合约执行链外测试的方法。处理器502可包括便于测试的一个或多个模块。例如,处理器502可包括执行环境生成模块202、接口模块204、执行模块206和存储模块208(图2)。
存储器504可以存储智能合约和用于执行用于对智能合约执行链外测试的上述方法的指令。智能合约可以存储为源文件,源文件可以被执行以执行智能合约的功能。例如,设备500可以编译源文件并执行编译后的文件。智能合约也可以存储为编译文件,使得设备500可以直接执行智能合约。存储器504还可以存储执行智能合约之前、期间或之后生成的信息。存储器504可实现为任何类型的易失性或非易失性存储器设备或其组合,诸如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪存、或者磁盘或光盘。
通信接口506可便于设备500与其他设备之间的通信。通信接口506可以支持一个或多个通信标准,诸如互联网标准或协议、综合业务数字网(ISDN)标准等。
在执行对智能合约的链外测试时,显示器508可显示智能合约的执行结果。例如,显示器508可以是液晶显示器(LCD)。此外,例如,显示器508可包括用于接收用户输入的触摸屏。
在实施例中,还提供了一种计算机程序产品。所述计算机程序产品可以包括非暂时性计算机可读存储介质,其上具有用于使处理器执行上述方法的计算机可读程序指令。
所述计算机可读存储介质可以是有形设备,其可以存储供指令执行设备使用的指令。所述计算机可读存储介质可以是,例如,但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适组合。所述计算机可读存储介质的更具体示例的非详尽列表包括以下内容:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字通用光盘(DVD)、记忆棒、软盘、诸如在其上记录有指令的凹槽中的穿孔卡或凸起结构的机械编码设备、以及前述的任何合适的组合。
用于执行上述方法的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据或以一种或多种编程语言的任意组合编写的源代码或对象代码,包括面向对象的编程语言和传统的过程编程语言。所述计算机可读程序指令可以在计算机系统上作为独立软件包完全执行,或者在第一计算机上部分执行并在远离第一计算机的第二计算机上部分执行。在后一种情况下,第二远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型的网络连接到第一计算机。
所述计算机可读程序指令可以被提供给通用或专用计算机的处理器或其他可编程数据处理装置以产生一种机器,使得经由计算机的处理器或其他可编程数据处理装置执行的指令创建用于实现上述方法的装置。
附图中的流程图和框图示出了根据本文的各种实施例的设备、方法和计算机程序产品的可能实现的架构、功能和操作。在这方面,流程图或框图中的框可以表示软件程序、代码的段或部分,其包括用于实现特定功能的一个或多个可执行指令。还应注意,在一些替代实施方式中,框中提到的功能可以不按图中所示的顺序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还应注意,框图和/或流程图的每个框以及框图和流程图中的框的组合可以由执行特定功能或动作的专用硬件基系统或者专用硬件和计算机指令的组合来实现。
应当理解,为了清楚起见,在单个实施例的上下文中描述的说明书的某些特征也可以在单个实施例中组合提供。相反,为了简洁起见,在单个实施例的上下文中描述的本文的各种特征也可以单独提供或者以任何合适的子组合提供,或者在本文的任何其他描述的实施例中合适地提供。除非另有说明,否则在各种实施例的上下文中描述的某些特征不应被视为那些实施例的必要特征。
尽管已经结合本发明的具体实施例描述了本文,但显然许多替代、修改和变化对于本领域技术人员来说是显而易见的。因此,以下权利要求包含落入所附权利要求范围内的所有这些替代、修改和变化。

Claims (12)

1.一种计算机实现的用于对智能合约执行链外测试的方法,包括:
生成用于所述智能合约的执行环境信息,所述执行环境信息包括交易背景信息、区块链信息或者状态信息中的至少一种;
提供在所生成的执行环境信息与所述智能合约之间的接口;
基于所生成的执行环境信息和所提供的接口执行所述智能合约;并且
存储所述智能合约的执行结果。
2.根据权利要求1所述的方法,其中,生成所述执行环境信息包括:
生成所述交易背景信息以包括所述智能合约的地址、交易的交易标识或者所述交易的参与方信息中的至少一种。
3.根据权利要求1所述的方法,其中,生成所述执行环境信息包括:
生成所述区块链信息以包括当前区块的区块标识、所述当前区块的时间戳以及前一区块的哈希值中的至少一种。
4.根据权利要求1所述的方法,其中,生成所述执行环境信息包括:
生成所述状态信息以包括所述智能合约的参数信息或者交易信息中的至少一种。
5.根据前述任一权利要求所述的方法,其中,提供所述接口包括:
提供在所生成的执行环境信息与所述智能合约之间的应用程序接口API。
6.根据前述任一权利要求所述的方法,其中,存储所述执行结果包括:
存储表示所述区块链信息或者所述状态信息中的至少一种的变化的数据。
7.根据权利要求6所述的方法,其中,所述交易背景信息对应于第一交易,所述方法还包括:
生成与第二交易对应的更新的交易背景信息;并且
以表示所述区块链信息或者所述状态信息中的至少一种的变化的数据以及所述更新的交易背景信息更新所述执行环境信息。
8.根据权利要求7所述的方法,还包括:
基于所更新的执行环境信息和所提供的接口执行所述智能合约;以及
存储所述智能合约的另一执行结果。
9.根据权利要求1-7中的任一项所述的方法,还包括:
显示所述智能合约的执行结果以供验证。
10.一种用于对智能合约执行链外测试的设备,包括:
一个或多个处理器;以及
一个或多个计算机可读存储器,耦接至所述一个或多个处理器并且其上存储有指令,所述指令能由所述一个或多个处理器执行以执行权利要求1-9中任一项所述的方法。
11.一种用于对智能合约执行链外测试的装置,所述装置包括用于执行权利要求1-9中任一项所述的方法的多个模块。
12.一种非暂时性计算机可读介质,其上存储有指令,所述指令在由设备的处理器执行时,促使所述设备执行权利要求1-9中任一项所述的方法。
CN201980003261.XA 2019-03-04 2019-03-04 对智能合约执行链外测试的方法和设备 Active CN110809876B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/076883 WO2019101234A2 (en) 2019-03-04 2019-03-04 Methods and devices for performing off-chain testing on smart contract

Publications (2)

Publication Number Publication Date
CN110809876A true CN110809876A (zh) 2020-02-18
CN110809876B CN110809876B (zh) 2022-12-20

Family

ID=66630434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980003261.XA Active CN110809876B (zh) 2019-03-04 2019-03-04 对智能合约执行链外测试的方法和设备

Country Status (6)

Country Link
US (1) US11113271B2 (zh)
EP (1) EP3613203B1 (zh)
CN (1) CN110809876B (zh)
SG (1) SG11201908551QA (zh)
TW (1) TW202034669A (zh)
WO (1) WO2019101234A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352835A (zh) * 2020-02-25 2020-06-30 腾讯科技(深圳)有限公司 一种智能合约的测试方法、装置、设备及存储介质
CN111597586A (zh) * 2020-05-26 2020-08-28 牛津(海南)区块链研究院有限公司 一种区块链隐私保护方法、系统及装置
CN113254054A (zh) * 2021-06-09 2021-08-13 上海万向区块链股份公司 一种智能合约一站式开发系统及方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110097467B (zh) * 2019-05-05 2021-04-13 华中科技大学 一种针对智能合约安全性和稳定性的侧链测试系统和方法
WO2021017008A1 (en) 2019-08-01 2021-02-04 Advanced New Technologies Co., Ltd. Shared blockchain data storage based on error correction code
EP3794770B1 (en) * 2019-08-01 2021-10-06 Advanced New Technologies Co., Ltd. Shared blockchain data storage based on error correction code
CN112433939A (zh) * 2020-11-19 2021-03-02 腾讯科技(深圳)有限公司 智能合约的测试方法、装置
CN113849855A (zh) * 2021-09-15 2021-12-28 北京京东乾石科技有限公司 一种区块链网络服务平台及信息处理方法、存储介质
US11924222B2 (en) 2022-01-13 2024-03-05 Bank Of America Corporation Intelligent real time dynamic smart contract generation for secure processing of internet of things (IoT) device based events

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180039667A1 (en) * 2016-08-05 2018-02-08 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
CN107943691A (zh) * 2017-11-17 2018-04-20 深圳圣马歌科技有限公司 一种自动产生智能合约的功能测试页面的方法及装置
US20180342171A1 (en) * 2017-05-25 2018-11-29 International Business Machines Corporation Managing lifelong learner events on a blockchain
CN109040271A (zh) * 2018-08-15 2018-12-18 深圳市引方科技有限公司 一种分布式环境下的网络设备完整性保护方法
CN109150996A (zh) * 2018-08-01 2019-01-04 长沙龙生光启新材料科技有限公司 一种区块链接收方法及系统
CN109189396A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 智能合约引擎组件、运行方法及存储介质
CN109325855A (zh) * 2018-08-16 2019-02-12 北京京东尚科信息技术有限公司 区块链网络、部署方法及存储介质
CN109345388A (zh) * 2018-09-20 2019-02-15 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质
CN109408373A (zh) * 2018-09-26 2019-03-01 深圳壹账通智能科技有限公司 智能合约的测试方法、计算机可读存储介质及测试终端

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10445698B2 (en) * 2016-06-30 2019-10-15 Clause, Inc. System and method for forming, storing, managing, and executing contracts
US20180123779A1 (en) * 2016-11-01 2018-05-03 Jiangang Zhang Flexible Blockchain Smart-Contract Deployment
FR3061330B1 (fr) * 2016-12-28 2019-05-24 Bull Sas Systeme et procede pour la creation et la gestion d'autorisations decentralisees pour des objets connectes
CN110383625B (zh) * 2017-03-03 2021-03-19 英诺吉创新有限公司 基于对等网络的输电网络控制系统
CN107147704B (zh) * 2017-04-21 2019-12-13 杭州趣链科技有限公司 一种面向区块链的通用服务中间件系统
US10146792B1 (en) * 2017-05-31 2018-12-04 Symbiont.Io, Inc. Systems and methods for implementing a programming model for smart contracts within a decentralized computer network
US11055703B2 (en) * 2017-06-19 2021-07-06 Hitachi, Ltd. Smart contract lifecycle management
US10944546B2 (en) * 2017-07-07 2021-03-09 Microsoft Technology Licensing, Llc Blockchain object interface
CN107464118A (zh) * 2017-08-16 2017-12-12 济南浪潮高新科技投资发展有限公司 一种基于区块链智能合约的数据交易方法
JP6987594B2 (ja) * 2017-10-16 2022-01-05 株式会社日立製作所 アクセス権管理方法、アクセス権管理システム、および、アクセス権管理装置
US11568505B2 (en) * 2017-10-18 2023-01-31 Docusign, Inc. System and method for a computing environment for verifiable execution of data-driven contracts
CN107833060B (zh) * 2017-11-13 2020-12-25 中国银行股份有限公司 一种区块链中智能合约交易的验证方法以及系统
US20190164157A1 (en) * 2017-11-28 2019-05-30 American Express Travel Related Services Company, Inc. Transaction authorization process using blockchain
US20190303932A1 (en) * 2018-03-28 2019-10-03 NEC Laboratories Europe GmbH Method and system for verifying policy compliance of transactions in a blockchain executing smart contracts
US20190378134A1 (en) * 2018-06-08 2019-12-12 R3 Ltd. Annotations for protocol flow implementing transactions of a distributed ledger system
CN109040029B (zh) * 2018-07-13 2021-03-12 上海点融信息科技有限责任公司 在区块链中执行事务的方法和装置
US11204939B2 (en) * 2018-07-18 2021-12-21 Bank Of America Corporation Data manifest as a blockchain service
US20200034457A1 (en) * 2018-07-24 2020-01-30 Ernst & Young U.S.LLP System and methods for organizing and inter-relating hierarchical data files using a distributed database
US11620642B2 (en) * 2018-08-06 2023-04-04 Inveniam Capital Partners, Inc. Digital contracts in blockchain environments
US11190520B2 (en) * 2018-11-20 2021-11-30 Microsoft Technology Licensing, Llc Blockchain smart contracts for digital asset access

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180039667A1 (en) * 2016-08-05 2018-02-08 Chicago Mercantile Exchange Inc. Systems and methods for blockchain rule synchronization
US20180342171A1 (en) * 2017-05-25 2018-11-29 International Business Machines Corporation Managing lifelong learner events on a blockchain
CN107943691A (zh) * 2017-11-17 2018-04-20 深圳圣马歌科技有限公司 一种自动产生智能合约的功能测试页面的方法及装置
CN109150996A (zh) * 2018-08-01 2019-01-04 长沙龙生光启新材料科技有限公司 一种区块链接收方法及系统
CN109040271A (zh) * 2018-08-15 2018-12-18 深圳市引方科技有限公司 一种分布式环境下的网络设备完整性保护方法
CN109189396A (zh) * 2018-08-16 2019-01-11 北京京东尚科信息技术有限公司 智能合约引擎组件、运行方法及存储介质
CN109325855A (zh) * 2018-08-16 2019-02-12 北京京东尚科信息技术有限公司 区块链网络、部署方法及存储介质
CN109345388A (zh) * 2018-09-20 2019-02-15 百度在线网络技术(北京)有限公司 区块链智能合约验证方法、装置及存储介质
CN109408373A (zh) * 2018-09-26 2019-03-01 深圳壹账通智能科技有限公司 智能合约的测试方法、计算机可读存储介质及测试终端

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ROHAN KOUL: "Blockchain Oriented Software Testing - Challenges and Approaches", 《2018 3RD INTERNATIONAL CONFERENCE FOR CONVERGENCE IN TECHNOLOGY (I2CT)》 *
TESNIM ABDELLATIF: "《Formal Verification of Smart Contracts Based on Users and Blockchain Behaviors Models》", 《IEEE》 *
宋俊典等: "基于区块链的数据治理协同方法", 《计算机应用》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111352835A (zh) * 2020-02-25 2020-06-30 腾讯科技(深圳)有限公司 一种智能合约的测试方法、装置、设备及存储介质
CN111352835B (zh) * 2020-02-25 2024-04-26 腾讯科技(深圳)有限公司 一种智能合约的测试方法、装置、设备及存储介质
CN111597586A (zh) * 2020-05-26 2020-08-28 牛津(海南)区块链研究院有限公司 一种区块链隐私保护方法、系统及装置
CN111597586B (zh) * 2020-05-26 2023-06-09 牛津(海南)区块链研究院有限公司 一种区块链隐私保护方法、系统及装置
CN113254054A (zh) * 2021-06-09 2021-08-13 上海万向区块链股份公司 一种智能合约一站式开发系统及方法
CN113254054B (zh) * 2021-06-09 2024-05-10 上海万向区块链股份公司 一种智能合约一站式开发系统及方法

Also Published As

Publication number Publication date
CN110809876B (zh) 2022-12-20
TW202034669A (zh) 2020-09-16
EP3613203A2 (en) 2020-02-26
US11113271B2 (en) 2021-09-07
US20200285633A1 (en) 2020-09-10
EP3613203B1 (en) 2023-06-07
SG11201908551QA (en) 2019-10-30
WO2019101234A3 (en) 2020-01-02
WO2019101234A2 (en) 2019-05-31
EP3613203A4 (en) 2020-05-20

Similar Documents

Publication Publication Date Title
CN110809876B (zh) 对智能合约执行链外测试的方法和设备
US11315111B2 (en) Methods and devices for testing signature verification for blockchain system
CN110166442B (zh) 一种基于区块链的数据处理方法和装置
CN110692228A (zh) 基于区块链中智能合约保护交易活动敏感数据的方法和设备
CN113537984A (zh) 基于区块链的内容验证方法及装置、电子设备
CN110520883B (zh) 在区块链系统中处理证书的方法和设备
EP4050542B1 (en) Blockchain-based data processing method and apparatus, and device and readable storage medium
CN111602166A (zh) 在区块链上提供可遍历键值数据存储的方法和设备
CN111386673A (zh) 用于基于区块链系统的加密密钥管理的方法和设备
CN114710329A (zh) 用于管理对区块链系统中的账户的访问的方法和设备
WO2021139391A1 (en) Methods and devices for mitigating invoice financing fraud
CN113472543A (zh) 基于区块链的就业数据处理方法、装置、电子设备及介质
WO2021139544A1 (en) Methods and devices for mitigating invoice financing fraud
CN114846765B (zh) 提供去中心化身份验证的方法和设备
WO2021139543A1 (en) Methods and devices for managing standby letter of credit
CN114930372A (zh) 促进拆分票据融资的方法和设备
WO2021165848A1 (en) Platform services verification
CN111506435A (zh) 检测实时全额结算系统中死锁的方法、设备、装置和介质
Rasti et al. A Coin Marketplace Implementation on Blockchain Using the Hyperledger Platform
CN111580981B (zh) 检测实时全额结算系统中死锁的方法、设备、装置和介质
US11782823B2 (en) Automatically capturing weather data during engineering tests
CN111580982B (zh) 检测实时全额结算系统中死锁的方法、设备、装置和介质
CN114930374A (zh) 用于在区块链上提供原子交易的方法和设备
EP4107689A1 (en) Platform services verification

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20201012

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.

Effective date of registration: 20201012

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.

TA01 Transfer of patent application right
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40027037

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant