CN111818185B - 启动智能合约的方法及装置、电子设备、存储介质 - Google Patents

启动智能合约的方法及装置、电子设备、存储介质 Download PDF

Info

Publication number
CN111818185B
CN111818185B CN202010899211.9A CN202010899211A CN111818185B CN 111818185 B CN111818185 B CN 111818185B CN 202010899211 A CN202010899211 A CN 202010899211A CN 111818185 B CN111818185 B CN 111818185B
Authority
CN
China
Prior art keywords
contract
chain
intelligent contract
starting
account
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
CN202010899211.9A
Other languages
English (en)
Other versions
CN111818185A (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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110214363.5A priority Critical patent/CN113037817B/zh
Priority to CN202010899211.9A priority patent/CN111818185B/zh
Publication of CN111818185A publication Critical patent/CN111818185A/zh
Application granted granted Critical
Publication of CN111818185B publication Critical patent/CN111818185B/zh
Priority to EP21181725.9A priority patent/EP3971809B1/en
Priority to US17/364,671 priority patent/US11514446B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • 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/3825Use of electronic signatures
    • 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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • 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/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • 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
    • 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/3263Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
    • H04L9/3265Cryptographic 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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements using certificate chains, trees or paths; Hierarchical trust model
    • 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
    • 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
    • G06Q2220/00Business processing using cryptography

Landscapes

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

Abstract

本说明书一个或多个实施例提供一种启动智能合约的方法及装置、电子设备、存储介质;该方法应用于区块链节点,可以包括:运行链代码中定义的定时启动逻辑,所述定时启动逻辑用于确定目标智能合约的启动时刻,并在当前时刻到达所述启动时刻的情况下,启动所述目标智能合约。

Description

启动智能合约的方法及装置、电子设备、存储介质
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种启动智能合约的方法及装置、电子设备、存储介质。
背景技术
区块链技术(也被称之为,分布式账本技术)是一种去中性化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种启动智能合约的方法及装置、电子设备、存储介质。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种启动智能合约的方法,应用于区块链节点;所述方法包括:
运行链代码中定义的定时启动逻辑,所述定时启动逻辑用于确定目标智能合约的启动时刻,并在当前时刻到达所述启动时刻的情况下,启动所述目标智能合约。
根据本说明书一个或多个实施例的第二方面,提出了一种启动智能合约的装置,应用于区块链节点;所述装置包括:
运行单元,运行链代码中定义的定时启动逻辑,所述定时启动逻辑用于确定目标智能合约的启动时刻,并在当前时刻到达所述启动时刻的情况下,启动所述目标智能合约。
根据本说明书一个或多个实施例的第三方面,提出了一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面所述方法的步骤。
附图说明
图1是一示例性实施例提供的一种创建智能合约的示意图。
图2是一示例性实施例提供的一种调用智能合约的示意图。
图3是一示例性实施例提供的一种启动智能合约的方法的流程图。
图4是一示例性实施例提供的一种维护目标智能合约列表的交互图。
图5是一示例性实施例提供的一种启动链上合约的方法的流程图。
图6是一示例性实施例提供的一种启动链下合约的方法的交互图。
图7是一示例性实施例提供的一种设备的结构示意图。
图8是一示例性实施例提供的一种启动智能合约的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链网络一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等。而且,各参与者(即区块链节点)可自由加入以及退出网络,并进行相关操作。私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少。这种类型的区块链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
在相关技术中,不论是公有链、私有链还是联盟链,都可能提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
以账户模型(比如以太坊)为例,区块链账户可以包括外部账户和合约账户等。外部账户通常为用户(个人或机构)所有,而合约账户则对应于部署在区块链中的智能合约。各类账户的结构都类似,可以包括Balance,Nonce,Code和Storage等字段。其中:
Balance字段,用于维护账户目前的账户余额;
Nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;
Code字段,用于维护该账户的合约代码(因而外部账户的Code字段通常为空);在实际应用中,Code字段中通常仅维护合约代码的hash值;因而,Code字段通常也称之为Codehash字段。
Storage字段,用于维护该账户的存储内容(默认字段值为空);对于合约账户而言,通常会分配一个独立的存储空间,用以存储该合约账户的存储内容;该独立的存储空间通常称之为该合约账户的账户存储。合约账户的存储内容通常会构建成MPT(MerklePatricia Trie)树的数据结构存储在上述独立的存储空间之中;其中,基于合约账户的存储内容构建成的MPT树,通常也称之为Storage树。而Storage字段通常仅维护该Storage树的根节点;因此,Storage字段通常也称之为StorageRoot字段。
以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”)。智能合约分为部署和调用两个阶段。
在部署阶段,用户将一个包含创建智能合约信息的交易发送至以太坊网络,该交易的data字段包含智能合约的代码(如字节码),该交易的to字段为空。以太坊网络中的各个节点分别通过EVM执行这个交易,并生成对应的合约实例。在节点间通过共识机制达成一致后,上述交易对应的智能合约创建成功,区块链上出现一个与该智能合约对应的合约账户,该合约账户拥有一个特定的合约地址,合约代码(即智能合约的代码)或合约代码的哈希值保存在该合约账户中,该合约代码用于控制相应的智能合约的行为。
例如图1所示,Bob将一个包含创建智能合约信息的交易发送到以太坊网络后,节点1的EVM可以执行这个交易并生成对应的合约实例。图1中的“0x6f8ae93…”代表了这个合约的地址,交易的data字段保存的可以是字节码,交易的to字段为空。节点间通过共识机制达成一致后,这个合约成功创建,并且可以在后续过程中被调用。合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址,合约代码将保存在该合约账户中。智能合约的行为由合约代码控制。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
在调用阶段,用户(可以与部署智能合约的用户相同或不同)将一个用于调用智能合约的交易发送到以太坊网络,该交易的from字段是该用户对应的外部账户的地址,to字段是所需调用的智能合约的合约地址,data字段包含调用智能合约的方法和入参数据。在节点间通过共识机制达成一致后,上述交易声明调用的智能合约以规定的方式在以太坊网络的每个节点上独立执行,所有执行记录和数据都保存在区块链上,所以当交易完成后,区块链上就保存了无法篡改、不会丢失的交易凭证。
如图2所示,仍以以太坊为例,Bob将一个用于调用智能合约的交易发送到以太坊网络后,某一节点的EVM可以执行这个交易并生成对应的合约实例。图2中交易的from字段是交易发起方(即Bob)的账户的地址,to字段中的“0x6f8ae93…”代表了被调用的智能合约的地址,value字段在以太坊中是以太币的值,交易的data字段保存的调用智能合约的方法和参数。
可见,相关技术中区块链网络上的智能合约只有在被合约调用方发起对其的调用的情况下才会被执行,即相关技术中均是通过交易来触发区块链节点执行智能合约的,区块链节点无法主动启动对智能合约的执行。然而,在实际应用中,可能存在主动启动智能合约的需求。例如,区块链网络中的区块链节点可主动地定时启动智能合约,从而通过定时主动执行智能合约来完成定时任务。为此,说明书旨在提供一种启动智能合约的技术方案以满足上述主动启动智能合约的需求。
请参见图3,图3是一示例性实施例提供的一种启动智能合约的方法的流程图。如图3所示,该方法应用于区块链节点,可以包括以下步骤:
步骤302,运行链代码中定义的定时启动逻辑,所述定时启动逻辑用于确定目标智能合约的启动时刻,并在当前时刻到达所述启动时刻的情况下,启动所述目标智能合约。
在本实施例中,在构建区块链网络时,可在节点设备中配置区块链网络的链代码,使得该节点设备通过运行链代码来作为区块链网络中的区块链节点。为了使得区块链节点可以主动启动部署于区块链网络上的智能合约,而无需通过响应接收到的用于调用智能合约的区块链交易来执行智能合约,可预先在区块链网络的链代码中定义定时启动逻辑,那么区块链节点在执行链代码时,可通过该定时启动逻辑来完成上述主动定时启动智能合约的操作。
具体而言,定时启动逻辑可用于确定目标智能合约的启动时刻,并在当前时刻到达该启动时刻的情况下,启动目标智能合约。其中,目标智能合约可理解为区块链节点可主动定时启动的智能合约,该智能合约中定义有用于完成定时任务的合约代码。比如,该定时任务可以是定时汇款、定时向指定用户发放虚拟权益、定时提醒等操作。以定时转账为例,可在目标智能合约的合约代码中定义汇出方区块链账户的账户地址、汇入方区块链账户的账户地址以及每次汇款的汇款额。需要说明的是,目标智能合约仍可通过上述相关技术中的方式来部署至区块链网络。
可见,由区块链节点主动地定时启动智能合约来完成定时任务,使得定时任务的发起方无需定时向区块链网络提交区块链交易来调用智能合约。一方面,区块链节点无需接收调用该智能合约的区块链交易,可减少区块链节点处理调用目标智能合约的区块链交易的相关操作(比如,共识、防重放检查、防双花检查等),不仅可降低区块链节点的资源消耗,还可提高完成定时任务的效率。另一方面,区块链网络自动启动智能合约来完成定时任务,可简化定时任务的发起方的操作,有利于提升用户体验。
在本实施例中,由区块链节点运行链代码来确定需要主动定时启动的智能合约,也即目标智能合约。
在一种情况下,可将目标智能合约的信息记录在链代码中,即在开发链代码时将目标智能合约的信息写入链代码中。比如,可将目标智能合约的合约地址写入链代码中。基于链代码中记录有目标智能合约的信息,区块链节点可通过运行链代码来确定出目标智能合约。通过将目标智能合约的信息记录在链代码中,可有效防止目标智能合约的信息被恶意篡改。
在另一种情况下,可通过特定的预设区块链账户来统一记录目标智能合约(可存在多个)的信息,并将该预设区块链账户的信息记录于链代码中,即在开发链代码时将预设区块链账户的信息写入链代码中。比如,可将目标智能合约的合约地址记录于预设区块链账户中,并将预设区块链账户的账户地址写入链代码中。基于链代码中记录有预设区块链账户的信息,区块链节点可通过运行链代码来确定出该区块链账户,从而从该区块链账户中读取目标智能合约的合约地址。通过上述由区块链账户来记录目标智能合约的方式,可便于对需要主动定时启动的智能合约的列表进行更新,使得控制区块链网络完成定时任务更为灵活。
具体而言,可向区块链网络提交用于对上述预设区块链账户中记录的目标智能合约的信息进行更新的信息更新交易,该信息更新交易中包含合约更新信息(比如更新需主动定时启动的智能合约的合约地址)。那么,区块链网络中的区块链节点在接收到该信息更新交易后,可响应于该信息更新交易,根据该信息更新交易中包含的合约更新信息,对预设区块链账户中记录的目标智能合约的信息进行更新。
在本实施例中,对于记录目标智能合约的启动时刻的方式,同样可参考上述记录目标智能合约的信息的方式。也即,由区块链节点运行链代码来确定目标智能合约的启动时刻,下面进行详细描述。
在一种情况下,可将目标智能合约的启动时刻记录在链代码中,即在开发链代码时将目标智能合约的启动时刻写入链代码中。基于链代码中记录有目标智能合约的启动时刻,区块链节点可通过运行链代码来确定出目标智能合约的启动时刻,进而在当前时刻到达启动时刻的情况下,启动目标智能合约。通过将目标智能合约的启动时刻记录在链代码中,可有效防止目标智能合约的启动时刻被恶意篡改。
在另一种情况下,可通过特定的预设区块链账户来记录启动时刻,并将该预设区块链账户的信息记录于链代码中,即在开发链代码时将预设区块链账户的信息写入链代码中。基于链代码中记录有预设区块链账户的信息,区块链节点可通过运行链代码来确定出该区块链账户,从而从该区块链账户中读取目标智能合约的启动时刻。通过上述由区块链账户来记录启动时刻的方式,可便于对需要主动定时启动的智能合约的启动时刻进行更新,使得控制区块链网络完成定时任务更为灵活。
具体而言,可向区块链网络提交用于对上述预设区块链账户中记录的启动时刻进行更新的时刻更新交易,该时刻更新交易中包含时刻更新信息(比如,用于指示如何对启动时刻进行更新的内容)。那么,区块链网络中的区块链节点在接收到该时刻更新交易后,可响应于该时刻更新交易,根据该时刻更新交易中包含的合约更新信息,对预设区块链账户中记录的目标智能合约的启动时刻进行更新。
进一步的,为了防止区块链账户中目标智能合约的启动时刻被恶意篡改,可对上述更新启动时刻的操作实施权限管理。比如,可在该预设区块链账户中存储用于实施权限管理的依据。例如,该依据可以白名单、黑名单等形式存储于预设区块链账户中。举例而言,可在白名单中记录区块链网络的管理员的账户地址。那么,区块链节点在接收到时刻更新交易后,可先读取该时刻更新交易to字段中记录的账户地址(即提交该时刻更新交易的用户的账户地址),然后确定预设区块链账户中白名单是否记录有该账户地址;若存在,则进一步执行上述更新操作,否则禁止执行上述更新操作。
需要说明的是,在区块链网络中,区块链账户可以包括外部账户和合约账户等。外部账户通常为用户(个人或机构)所有,而合约账户则对应于部署在区块链中的智能合约。各类账户的结构都类似,例如可以包含Nonce字段、Balance字段、Code字段和Storage字段等。每个账户的Nonce字段的取值从0开始,且Nonce字段的取值随相应账户所发起的交易而依次递增,使得该账户发起的每一交易所含Nonce取值均不相同,从而可避免重放攻击。Balance字段用于存放余额。Code字段用于存放智能合约的代码,因而外部账户的Code字段通常为空。Storage字段用于存放账户的存储内容。因此,上述目标智能合约的信息、权限管理的依据和启动时刻等数据,均可通过外部账户或者合约账户来记录和维护。
在一种情况下,可在区块链网络中预先部署一智能合约,该智能合约对应的合约账户用于记录和维护目标智能合约的信息。比如,可将目标智能合约的信息存放在合约账户的Storage字段中。在另一种情况下,可在区块链网络中创建一外部账户,该外部账户用于记录和维护目标智能合约的信息。比如,可将目标智能合约的信息存放在该外部账户的Storage字段中。当然,本说明书并不对合约账户和合约账户存放目标智能合约的信息的字段进行限制。比如,还可采用其他任意字段、增加字段、改进字段的方式来存放目标智能合约的信息,本说明书并不对此进行限制。
需要说明的是,上述记录目标智能合约的信息的预设区块链账户,和记录启动时刻的预设区块链账户可以为同一区块链账户,也可以是不同的区块链账户,本说明书并不对此进行限制。
在本实施例中,区块链节点通过运行链代码中定义的定时启动逻辑来完成主动定时启动目标智能合约的过程。具体的,区块链节点需要判断当前时刻是否到达目标智能合约的启动时刻,从而在判断出当前时刻到达目标智能合约的启动时刻时,启动目标智能合约。
作为一示例性实施例,可将区块链中产生新区块的时刻(即产生最新区块的时刻)作为依据来判断当前时刻是否到达目标智能合约的启动时刻。具体而言,当区块链产生新区块时,会将产生该区块的时刻作为时间戳记录在该区块的区块头中。那么,可检测区块链中是否产生了新区块,每当检测到区块链中产生新区块的情况下,可根据新区块所含的时间戳和启动时刻之间的关系,判断当前时刻是否到达启动时刻。比如,可从新区块的区块头中读取时间戳,进而将读取到的时间戳与启动时刻进行比较,确定两者之间的关系。例如,当时间戳与启动时刻相同时,判断需要启动目标智能合约(理解为判断出当前时刻到达启动时刻)。或者,当时间戳与启动时刻之间的差值在预设时长阈值之内时,判断需要启动目标智能合约。当然,通过将时间戳与启动时刻进行比较以判断当前时刻是否到达启动时刻的具体实现方式,可根据实际情况灵活设定,本说明书并不对此进行限制。需要说明的是,可将上述判断当前时刻是否到达启动时刻的逻辑写入链代码中;例如,写入链代码的定时启动逻辑中。
在本实施例中,区块链节点通过运行定时启动逻辑来执行判断当前时刻是否到达启动时刻的操作,可“实时”进行。具体而言,可配置设置有预设时长的定时器,那么定时启动逻辑可用于启动该定时器,在该定时器超时后判断当前时刻是否到达启动时刻。其中,若当前时刻到达启动时刻,则启动目标智能合约;否则,重置定时器以继续在后续该定时器超时后判断当前时刻是否到达启动时刻。
在本实施例中,目标智能合约可以部署在区块链网络上,即属于链上合约;也可部署在区别于区块链节点的链下节点(不属于区块链网络,为链下设备)中,即属于链下合约。下面分别针对上述两种情况下启动目标智能合约的过程进行说明。
针对目标智能合约为链上合约的情况,区块链节点在判断出需要启动目标智能合约后,可读取目标智能合约的合约代码,从而执行读取到的合约代码。上述过程可参考上述图2所示实施例的相关部分,在此不再赘述。
进一步的,不同于相关技术中由调用智能合约的区块链交易来指示该智能合约需要进行处理的待处理数据,本说明书中启动智能合约的过程中不存在调用目标智能合约的区块链交易,即无需由区块链交易来指示目标智能合约的待处理数据。在一种情况下,目标智能合约的待处理数据为链下数据,因此区块链节点可通过预言机机制来获取链下数据,从而执行合约代码以对获取到的链下数据进行处理。在另一种情况下,目标智能合约的待处理数据为自身的状态数据,因此区块链节点可获取目标智能合约的合约账户中存储的状态数据,从而执行合约代码以对获取到的状态数据进行处理。
针对目标智能合约为链下合约的情况,区块链节点在判断出需要启动目标智能合约后,可通过预言机机制调用部署于链下节点中的目标智能合约,从而指示链下节点执行目标智能合约,并通过预言机机制将执行目标智能合约得到的执行结果反馈至区块链节点。
当定时启动的目标智能合约用于实现相对复杂的逻辑时,由于定时启动的频率相对较高,区块链节点通过虚拟机执行目标智能合约的合约代码的过程会消耗相对较多的计算资源,并且由于区块链网络内的所有节点都需要执行目标智能合约的合约代码,随着节点数量的增加会导致计算资源的消耗量成倍增长。针对上述问题,将需定时启动的目标智能合约部署于链下节点中,可避免需要所有区块链节点均执行目标智能合约的合约代码的情况,区块链节点从链下节点处获取执行结果即可,从而有效降低了链上的资源消耗。
为了便于理解,下面结合图4-6对本说明书定时启动智能合约的方案进行详细说明。
以通过预设区块链账户来记录和维护目标智能合约的列表(以下称为目标智能合约列表)为例进行说明。可通过特定的预设区块链账户来存储目标智能合约列表,该列表用于记录目标智能合约(可存在多个)的合约地址;同时,将该预设区块链账户的账户地址记录于链代码中。基于链代码中记录有预设区块链账户的账户地址,区块链节点可通过运行链代码来确定出该区块链账户,从而从该区块链账户存储的目标智能合约列表中读取目标智能合约的合约地址。通过上述由区块链账户来记录目标智能合约列表的方式,可便于对目标智能合约列表进行更新,使得控制区块链网络完成定时任务更为灵活。下面结合图4对维护目标智能合约列表的过程进行详细说明。
请参见图4,图4是一示例性实施例提供的一种维护目标智能合约列表的交互图。如图4所示,该交互过程可以包括以下步骤:
步骤402,管理员40通过客户端41创建信息更新交易。
在本实施例中,服务器42上运行有区块链网络的链代码,使得服务器42被配置为一区块链节点。管理员40可以预先通过客户端41在服务器42处进行账号注册,得到与自身唯一对应的已注册账号。然后,管理员40可以通过在客户端41上登录该已注册账号,而服务器42基于该已注册账号在客户端41上的登录信息,确定该已注册账号(对应于管理员40)与客户端41之间建立了绑定关系。所需建立的绑定关系为管理员40的账户信息与客户端41的设备信息之间的绑定关系。基于该绑定关系,使得服务器42在接收到客户端41后续提交的信息更新交易时,可以确认该交易对应于管理员40。
步骤404,客户端41向服务器42提交信息更新交易。
在本实施例中,管理员40可在客户端41上登录已注册账号,通过客户端41打包一笔用于对上述预设区块链账户中存储的目标智能合约列表进行更新的信息更新交易,该信息更新交易中包含合约更新信息(针对目标智能合约列表的更新内容)。比如,合约更新信息用于指示对目标智能合约列表中记录的合约地址进行添加、更改、删除等操作。然后,管理员40通过客户端41将信息更新交易提交至服务器42。
步骤406,服务器42读取合约更新信息。
步骤408,服务器42更新目标智能合约列表。
在本实施例中,服务器42(作为区块链节点)在接收到信息更新交易后,可响应于该信息更新交易,读取信息更新交易中包含的合约更新信息,从而根据合约更新信息对预设区块链账户中存储的目标智能合约列表进行更新。
进一步的,为了防止区块链账户中的目标智能合约列表被恶意篡改,可对上述更新目标智能合约列表的操作实施权限管理。比如,可在该预设区块链账户中存储用于实施权限管理的依据。例如,该依据可以白名单、黑名单等形式存储于预设区块链账户中。举例而言,可在白名单中记录区块链网络的管理员的账户地址。那么,区块链节点在接收到信息更新交易后,可先读取该信息更新交易to字段中记录的账户地址(即提交该信息更新交易的用户的账户地址),然后确定预设区块链账户中白名单是否记录有该账户地址;若存在,则进一步执行上述更新操作,否则禁止执行上述更新操作。
在本实施例中,对于记录和维护目标智能合约的启动时刻的方式,同样可参考上述记录目标智能合约列表的方式,在此不再赘述。而对于目标智能合约的启动时刻的具体形式,可根据实际需求灵活设定。比如,可设定为从某一时刻开始,按照预设周期启动目标智能合约,直到启动次数达到预设启动次数为止。以分期还款为例,用户A共需向用户B还款12000元,分12个月进行还款,每个月的15号12:00还款1000元。在该场景下,可在目标智能合约中定义用户A向用户B转账1000元的逻辑。假定第一个还款日为1月15号,则目标智能合约的启动时刻分别为1-12月的15号12:00。
又如,目标智能合约的启动时刻可以依据区块高度(区块的区块号)来设定。例如,将预设区块高度的区块的生成时刻作为启动时刻,也即在区块链网络生成预设区块高度的区块的情况下,判断到达启动时刻,需启动目标智能合约。其中,该预设区块高度可以具体设定为一个或多个具体数值的区块高度(比如,区块号50、区块号99等),也可以设定满足一定条件的区块高度(比如,100的整数倍、50的整数倍等),本说明书并不对此进行限制。
需要说明的是,在区块链网络中,区块链账户可以包括外部账户和合约账户等。外部账户通常为用户(个人或机构)所有,而合约账户则对应于部署在区块链中的智能合约。各类账户的结构都类似,例如可以包含Nonce字段、Balance字段、Code字段和Storage字段等。每个账户的Nonce字段的取值从0开始,且Nonce字段的取值随相应账户所发起的交易而依次递增,使得该账户发起的每一交易所含Nonce取值均不相同,从而可避免重放攻击。Balance字段用于存放余额。Code字段用于存放智能合约的代码,因而外部账户的Code字段通常为空。Storage字段用于存放账户的存储内容。因此,上述目标智能合约列表、权限管理的依据和启动时刻等数据,均可通过外部账户或者合约账户来记录和维护。
在一种情况下,可在区块链网络中预先部署一智能合约,该智能合约对应的合约账户用于记录和维护目标智能合约的信息。比如,可将目标智能合约的信息存放在合约账户的Storage字段中。在另一种情况下,可在区块链网络中创建一外部账户,该外部账户用于记录和维护目标智能合约的信息。比如,可将目标智能合约的信息存放在该外部账户的Storage字段中。当然,本说明书并不对合约账户和合约账户存放目标智能合约的信息的字段进行限制。比如,还可采用其他任意字段、增加字段、改进字段的方式来存放目标智能合约的信息,本说明书并不对此进行限制。
需要说明的是,上述记录目标智能合约的信息的预设区块链账户,和记录启动时刻的预设区块链账户可以为同一区块链账户,也可以是不同的区块链账户,本说明书并不对此进行限制。
请参见图5,图5是一示例性实施例提供的一种启动链上合约的方法的流程图。如图5所示,该方法应用于区块链节点,可以包括以下步骤:
步骤502,确定链上合约和启动时刻。
在本实施例中,确定需要主动定时启动的链上合约和启动时刻的具体实现过程,可参考上述图3所示实施例的相关部分,在此不再赘述。
步骤504,判断当前时刻是否到达启动时刻;若到达,则转入步骤506,否则继续执行步骤504。
在本实施例中,每当区块链产生新区块时,可将新区块的时间戳作为依据来判断当前时刻是否到达链上合约的启动时刻。比如,每当检测到区块链中产生新区块的情况下,可从该新区块的区块头中读取时间戳,进而将读取到的时间戳与启动时刻进行比较,确定两者之间的关系。例如,当时间戳与启动时刻相同时,判断需要启动链上合约(理解为判断出当前时刻到达启动时刻)。或者,当时间戳与启动时刻之间的差值在预设时长阈值之内时,判断需要启动链上合约。当然,通过将时间戳与启动时刻进行比较以判断当前时刻是否到达启动时刻的具体实现方式,可根据实际情况灵活设定,本说明书并不对此进行限制
需要说明的是,还可通过其他方式来直接确定当前时刻。比如,区块链节点可直接获取自身记录的时间来确定当前时刻(与其他区块链节点记录的时间同步),或者从网络获取当前时刻,从而将确定出的当前时刻与启动时刻进行比较,以在当前时刻到达启动时刻时启动链上合约。
在本实施例中,区块链节点可“实时”执行步骤504。具体而言,可在区块链节点中配置设置有预设时长的定时器,那么区块链节点可启动该定时器,在该定时器超时后判断当前时刻是否到达启动时刻。其中,若当前时刻到达启动时刻,则启动链上合约;否则,重置定时器以继续在后续该定时器超时后判断当前时刻是否到达启动时刻。
步骤506,读取链上合约的合约代码。
在本实施例中,由于链上合约部署于区块链网络中,区块链节点直接读取链上合约的合约代码即可。
步骤508,获取待处理数据。
步骤510,执行合约代码以处理待处理数据。
在本实施例中,不同于相关技术中由调用智能合约的区块链交易来指示该智能合约需要进行处理的待处理数据,本说明书中启动链上合约的过程中不存在调用链上合约的区块链交易,即无需由区块链交易来指示链上合约的待处理数据。在一种情况下,链上合约的待处理数据为链下数据,因此区块链节点可通过预言机机制来获取链下数据,从而执行合约代码以对获取到的链下数据进行处理。在另一种情况下,链上合约的待处理数据为自身的状态数据,因此区块链节点可获取链上合约的合约账户中存储的状态数据,从而执行合约代码以对获取到的状态数据进行处理。
比如,链上合约用于定时根据用户的业务行为信息对用户进行信用评分。那么,用户的业务行为信息可由链下的业务平台提供,区块链节点可通过预言机机制获取业务平台提供的该用户的业务行为信息,从而执行链上合约的合约代码以对业务行为信息进行处理,计算得到该用户的信用评分。
又如,承接于上述举例,用户的信用评分属于链上合约的状态数据,链上合约还用于定时根据用户的信用评分向该用户发放与之相匹配的消费权益。那么,区块链节点可直接读取链上合约的合约账户中存储的信用评分,从而执行链上合约的合约代码以对信用评分进行处理,计算与该用户评分相匹配的消费权益。
又如,链上合约用于定时根据用户的账户余额计算用户的消费等级,且链上合约的状态数据包含用户的账户余额。那么,区块链节点可直接读取链上合约的合约账户中存储的账户余额,从而执行链上合约的合约代码以对账户余额进行处理,计算与该账户余额对应的消费等级。
又如,承接于上述定时还款的场景,用户的账户余额属于链上合约的状态数据,链上合约在执行转账操作之前,需判断账户余额是否足够支付本次转账操作的汇款额。那么,区块链节点可直接读取链上合约的合约账户中存储的账户余额,并执行链上合约的合约代码以比较账户余额与汇款额之间的大小关系,从而在账户余额不小于汇款额的情况下执行转账操作。
请参见图6,图6是一示例性实施例提供的一种启动链下合约的方法的交互图。如图6所示,该交互过程可以包括以下步骤:
步骤602,区块链节点调用预言机合约生成合约验证事件。
在本实施例中,区块链节点在调用处于链下的链下节点执行计算任务之前,可先验证部署于链下节点上的链下合约是否可信。而对于区块链节点与链下节点之间的数据交互过程,可通过预言机合约与预言机服务器配合实现,预言机合约与预言机服务器之间的配合机制即为预言机机制。
步骤604,预言机服务器监听合约验证事件。
步骤606,预言机服务器向链下节点发送挑战信息。
步骤608,链下节点获取所部署链下合约的合约信息。
步骤610,链下节点向预言机服务器返回远程证明报告和待验证合约信息。
步骤612,预言机服务器向区块链节点返回远程证明报告和待验证合约信息。
在本实施例中,区块链节点可调用预先部署的预言机合约(比如,预言机合约的合约地址可记录于链代码中),该预言机合约可以生成包含该挑战信息的合约验证事件,而预言机服务器可以通过监听预言机合约产生的事件,从而获取上述挑战信息,并将挑战信息通过链下渠道发送至链下节点。链下节点在接收到挑战信息后,可分别获取针对自身部署的TEE(Trusted Execution Environment,可信执行环境)的远程证明报告和针对自身部署的链下合约的合约信息(作为待验证合约信息)。
以Intel SGX技术为例,TEE为链下节点上创建的用于实现链下计算的enclave,远程证明过程还涉及到链下节点上另一个特殊的enclave,即quoting enclave(简称QE),QE是由英特尔提供并签名的架构型enclave(Architectural Enclave)。上述enclave首先需要生成一用于本地认证的REPORT(报告)结构,并由QE基于该REPORT结构验证该enclave是否与自身处于同一平台上,而后由QE将该REPORT结构封装为一结构体QUOTE(即自荐信息),并使用EPID(enhanced privacy identification) 密钥进行签名。EPID密钥不仅代表链下节点这一平台,还代表链下节点的底层硬件的可信度,还可以绑定处理器固件的版本等信息,并且只有QE才能访问到EPID密钥,以用于对上述的结构体QUOTE进行签名。在SGX技术中,上述的认证服务器可以为英特尔公司提供的IAS(Intel Attestation Service)服务器,链下节点向IAS服务器发送经过签名的上述结构体QUOTE,使得IAS服务器可以对签名进行验证,并向链下节点返回相应的远程证明报告。
链下节点在创建TEE后,产生用于实现远程证明的自荐信息,该自荐信息可以用于锚定和固化TEE的信息,使得最终得到的包含该自荐信息的远程证明报告可以用于表征TEE的状态,并用于验证该TEE是否可信。例如,自荐信息中可以包含第一待检验哈希值,该第一待检验哈希值为TEE中预设信息的哈希值,比如该预设信息可以包括TEE内部署的所有代码、该TEE的开发者的公钥等。以Intel SGX技术为例,对应于TEE内部署的所有代码所生成的哈希值为MREnclave,对应于TEE的开发者的公钥所生成的哈希值为MRSigner,即第一待检验哈希值可以包括MREnclave和MRSigner。
仍以Intel SGX技术为例。如前所述,链下节点向IAS服务器发送经过签名的结构体QUOTE后,由IAS服务器根据所维护的公钥集合进行签名验证,并向链下节点返回远程证明报告(即AVR报告),该远程证明报告中包含:结构体QUOTE和签名验证结果,并且IAS服务器采用自身持有的私钥对该远程证明报告进行签名。
相应地,区块链节点在获取远程证明报告后,可以首先根据IAS服务器的公钥对该远程证明报告进行签名验证,如果验证通过则表明该远程证明报告确实由IAS服务器生成,且在数据传输过程中未被篡改或丢失数据。区块链节点可以通过任意途径获得IAS服务器的公钥,譬如远程证明报告被提供至区块链节点时,还可以关联提供IAS的证书链,使得区块链节点可以从该证书链中提取IAS服务器的公钥。然后,区块链节点可以从远程证明报告中提取结构体QUOTE和签名验证结果。区块链节点可以首先查看签名验证结果,如果签名验证结果为通过验证,表明链下节点的CPU持有由Intel提供的私钥,因而TEE建立在可靠的硬件平台上,可以继续执行其他验证操作;如果签名验证结果为未通过验证,区块链节点可以判定链下隐私计算平台不可靠,无需继续其他验证操作。然后,区块链节点可以从结构体QUOTE内提取上述的哈希值MREnclave和MRSigner,即待检验MREnclave和待检验MRSigner;同时,区块链节点预先获得了TEE的上述预设信息的第一标准哈希值,比如为MREnclave和MRSigner的可信值(以下称之为可信MREnclave和可信MRSigner),并将待检验MREnclave与可信MREnclave进行比较、将待检验MRSigner与可信MRSigner进行比较。那么,区块链节点可以将“待检验MREnclave与可信MREnclave一致,且待检验MRSigner与可信MRSigner一致”作为确认TEE可信的前提条件;换言之,如果待检验MREnclave与可信MREnclave不一致,或者待检验MRSigner与可信MRSigner不一致,区块链节点就判定该链下节点的TEE不可信,而如果区块链节点设定的所有前提条件都被满足,就可以确认该链下节点的TEE可信。此外,区块链节点对于签名验证结果进行验证的操作,与针对待检验MREnclave和待检验MRSigner进行验证的操作之间,并不存在必然的先后顺序,两者之间可以完全独立。
步骤614,区块链节点进行签名验证和合约信息验证。
区块链节点在根据远程证明报告确定链下节点的TEE可信的情况下,获取部署于链下节点处的链下合约的待验证合约信息,待验证合约信息被链下节点在TEE内采用自身的身份私钥进行签名,该身份私钥由链下节点在TEE内生成并维护于TEE内。比如,链下节点可将部署的链下合约读入TEE内并采用自身的身份私钥进行签名。
区块链节点采用链下节点的身份公钥对待验证合约信息进行签名验证,以及根据链下合约的合约信息对待验证合约信息进行合约信息验证。其中,身份公钥处于公开状态,比如链下节点向外公开发布身份公钥以由区块链节点获取。同时,链下合约的合约信息也可处于公开状态,比如链下合约的部署方向外公开发布合约信息以由区块链节点获取。其中,合约信息可以包括链下合约的名称、描述、版本号、字节码哈希值、合约身份公钥等信息,本说明书并不对此进行限制。
在签名验证和合约信息验证通过的情况下,区块链节点可确定区块链节点在通过预言机机制对链下合约发起调用时,该链下合约由链下节点在TEE中执行。本说明书中验证链下合约的过程为先验证链下节点的TEE可信,那么在验证链下节点的TEE可信的情况下,若验证签名得到链下节点提供的待验证合约信息确实由链下节点的身份私钥(维护在TEE内)签名,则可确定出当前挑战的链下合约为运行在链下节点的TEE内的链下合约,然后在待验证合约信息进一步通过验证的情况下,则说明运行于链下节点TEE内的链下合约的合约信息正确,从而可最终判定链下节点中部署的链下合约可信,可按照预期执行计算任务。
步骤616,区块链节点判断是否启动链下合约。
在本实施例中,区块链节点判断是否启动链下合约的具体实现过程,可参考上述图3和图5所示实施例的相关部分,在此不再赘述。
步骤618,区块链节点调用预言机合约生成合约调用事件。
在本实施例中,链下合约的待处理数据可以是链上数据,也可以是链下数据。比如,链上数据可以是区块中的数据,或者某一区块链账户中存储的数据等等。在待处理数据为链上数据的情况下,区块链节点可将链上数据本身写入合约调用事件中,以由链下节点从合约调用事件中获取链上数据;或者,区块链节点可将链上数据的描述信息写入合约调用事件中,以由链下节点从合约调用事件中获取该描述信息,进而根据该描述信息向区块链网络获取相应的链上数据。在待处理数据为链下数据的情况下,由链下节点从数据提供方处获取待处理数据。
在本实施例中,合约调用事件包含经过加密的调用请求,该调用请求用于指示链下节点执行链下合约。比如,该调用请求中包含链下合约的合约地址。其中,针对调用请求的加密方式,可以采用对称加密、非对称加密或对称加密与非对称加密相结合的形式,从而确保传输过程中不会造成调用请求的内容泄露。该部分内容可参考相关技术中的应用,在此不再赘述。那么,链下节点可以在自身维护的TEE内解密调用请求,从而对调用请求进行响应。
步骤620,预言机服务器监听合约调用事件。
步骤622,预言机服务器向链下节点发送调用请求。
步骤624,链下节点调用链下合约执行定时任务。
在本实施例中,链下节点获取链下合约的待处理数据,从而通过执行链下合约的合约代码来对待处理数据进行处理,以完成定时任务。
步骤626,链下节点向预言机服务器返回执行结果。
步骤628,预言机服务器向区块链节点返回执行结果。
与上述方法实施例相对应,本说明书还提供了一种启动智能合约的装置的实施例。
图7是一示例性实施例提供的一种设备的示意结构图。请参考图7,在硬件层面,该设备包括处理器702、内部总线704、网络接口706、内存708以及非易失性存储器710,当然还可能包括其他业务所需要的硬件。处理器702从非易失性存储器710中读取对应的计算机程序到内存708中然后运行,在逻辑层面上形成启动智能合约的装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图8,在软件实施方式中,该启动智能合约的装置应用于区块链节点,可以包括:
运行单元81,运行链代码中定义的定时启动逻辑,所述定时启动逻辑用于确定目标智能合约的启动时刻,并在当前时刻到达所述启动时刻的情况下,启动所述目标智能合约。
可选的,
所述链代码中记录有所述目标智能合约的信息;或者,
所述链代码中记录有预设区块链账户的信息,所述预设区块链账户中记录有所述目标智能合约的信息。
可选的,还包括:
合约更新单元82,根据接收到的信息更新交易中包含的合约更新信息,对所述预设区块链账户中记录的目标智能合约的信息进行更新。
可选的,
所述链代码中记录有所述启动时刻;或者,
所述链代码中记录有预设区块链账户的信息,所述预设区块链账户中记录有所述启动时刻。
可选的,还包括:
时刻更新单元83,根据接收到的时刻更新交易中包含的时刻更新信息,对所述预设区块链账户中记录的目标智能合约的启动时刻进行更新。
可选的,所述定时启动逻辑用于在每当检测到区块链中产生新区块的情况下,根据新区块所含的时间戳和所述启动时刻之间的关系,判断当前时刻是否到达所述启动时刻。
可选的,所述定时启动逻辑用于启动预设时长的定时器,在所述定时器超时后判断当前时刻是否到达所述启动时刻;以及,若当前时刻到达所述启动时刻,则启动所述目标智能合约,否则重置所述定时器。
可选的,所述运行单元81具体用于:
获取所述目标智能合约的合约代码,并执行所述合约代码。
可选的,所述运行单元81进一步用于:
通过预言机机制获取链下数据,执行所述合约代码以对所述链下数据进行处理;或者,
获取所述目标智能合约的合约账户中的状态数据,执行所述合约代码以对所述状态数据进行处理。
可选的,所述运行单元81具体用于:
通过预言机机制调用部署于链下节点中的所述目标智能合约;其中,所述链下节点执行所述目标智能合约得到的执行结果,由所述链下节点通过预言机机制反馈至所述区块链节点。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

Claims (12)

1.一种启动智能合约的方法,应用于区块链节点;所述方法包括:
运行链代码中定义的定时启动逻辑,所述定时启动逻辑用于确定目标智能合约的启动时刻,并在当前时刻到达所述启动时刻的情况下,启动所述目标智能合约;所述链代码中记录有预设区块链账户的信息,所述预设区块链账户中记录有所述启动时刻。
2.根据权利要求1所述的方法,
所述链代码中记录有所述目标智能合约的信息;或者,
所述链代码中记录有预设区块链账户的信息,所述预设区块链账户中记录有所述目标智能合约的信息。
3.根据权利要求2所述的方法,还包括:
根据接收到的信息更新交易中包含的合约更新信息,对所述预设区块链账户中记录的目标智能合约的信息进行更新。
4.根据权利要求1所述的方法,还包括:
根据接收到的时刻更新交易中包含的时刻更新信息,对所述预设区块链账户中记录的目标智能合约的启动时刻进行更新。
5.根据权利要求1所述的方法,所述定时启动逻辑用于在每当检测到区块链中产生新区块的情况下,根据新区块所含的时间戳和所述启动时刻之间的关系,判断当前时刻是否到达所述启动时刻。
6.根据权利要求1所述的方法,所述定时启动逻辑用于启动预设时长的定时器,在所述定时器超时后判断当前时刻是否到达所述启动时刻;以及,若当前时刻到达所述启动时刻,则启动所述目标智能合约,否则重置所述定时器。
7.根据权利要求1所述的方法,所述启动所述目标智能合约,包括:
获取所述目标智能合约的合约代码,并执行所述合约代码。
8.根据权利要求7所述的方法,所述执行所述合约代码,包括:
通过预言机机制获取链下数据,执行所述合约代码以对所述链下数据进行处理;或者,
获取所述目标智能合约的合约账户中的状态数据,执行所述合约代码以对所述状态数据进行处理。
9.根据权利要求1所述的方法,所述启动所述目标智能合约,包括:
通过预言机机制调用部署于链下节点中的所述目标智能合约;其中,所述链下节点执行所述目标智能合约得到的执行结果,由所述链下节点通过预言机机制反馈至所述区块链节点。
10.一种启动智能合约的装置,应用于区块链节点;所述装置包括:
运行单元,运行链代码中定义的定时启动逻辑,所述定时启动逻辑用于确定目标智能合约的启动时刻,并在当前时刻到达所述启动时刻的情况下,启动所述目标智能合约;所述链代码中记录有预设区块链账户的信息,所述预设区块链账户中记录有所述启动时刻。
11.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-9中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-9中任一项所述方法的步骤。
CN202010899211.9A 2020-08-31 2020-08-31 启动智能合约的方法及装置、电子设备、存储介质 Active CN111818185B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202110214363.5A CN113037817B (zh) 2020-08-31 2020-08-31 启动智能合约的方法及装置、电子设备、存储介质
CN202010899211.9A CN111818185B (zh) 2020-08-31 2020-08-31 启动智能合约的方法及装置、电子设备、存储介质
EP21181725.9A EP3971809B1 (en) 2020-08-31 2021-06-25 Method and apparatus for starting smart contract, electronic device, and storage medium
US17/364,671 US11514446B2 (en) 2020-08-31 2021-06-30 Method and apparatus for starting smart contract, electronic device, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010899211.9A CN111818185B (zh) 2020-08-31 2020-08-31 启动智能合约的方法及装置、电子设备、存储介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110214363.5A Division CN113037817B (zh) 2020-08-31 2020-08-31 启动智能合约的方法及装置、电子设备、存储介质

Publications (2)

Publication Number Publication Date
CN111818185A CN111818185A (zh) 2020-10-23
CN111818185B true CN111818185B (zh) 2021-01-12

Family

ID=72859467

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010899211.9A Active CN111818185B (zh) 2020-08-31 2020-08-31 启动智能合约的方法及装置、电子设备、存储介质
CN202110214363.5A Active CN113037817B (zh) 2020-08-31 2020-08-31 启动智能合约的方法及装置、电子设备、存储介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110214363.5A Active CN113037817B (zh) 2020-08-31 2020-08-31 启动智能合约的方法及装置、电子设备、存储介质

Country Status (3)

Country Link
US (1) US11514446B2 (zh)
EP (1) EP3971809B1 (zh)
CN (2) CN111818185B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112837154B (zh) * 2021-02-10 2024-05-31 中国人民银行数字货币研究所 区块链中定时智能合约的注册、执行方法和装置
CN112837157A (zh) * 2021-02-10 2021-05-25 中国人民银行数字货币研究所 区块链中定时智能合约的注册、执行方法、装置和系统
US20230186301A1 (en) * 2021-12-15 2023-06-15 Timothy J. Enneking Tokenization of the appreciation of assets
CN114401272A (zh) * 2022-01-17 2022-04-26 杭州字节方舟科技有限公司 智能合约处理方法、区块链节点服务器和存储介质
CN114422535B (zh) * 2022-01-18 2024-04-09 网易(杭州)网络有限公司 区块链中部署合约的方法、装置、计算机设备及存储介质
US20230362010A1 (en) * 2022-05-03 2023-11-09 Coinbase, Inc. Systems and methods for predicting communication account identities across decentralized applications
CN116388921B (zh) * 2023-06-02 2023-10-10 安徽中科晶格技术有限公司 基于预编译合约的链节点时间同步方法、设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897878A (zh) * 2017-02-27 2017-06-27 钱德君 一种量子链系统的智能合约类型实现方式
CN107886329A (zh) * 2017-11-28 2018-04-06 无锡井通网络科技有限公司 基于区块链技术的系统合约的定时触发调用方法
CN110659887A (zh) * 2019-08-05 2020-01-07 孟江华 一种基于区块链的自动交易处理系统和方法
CN110704490A (zh) * 2019-10-15 2020-01-17 北京启迪区块链科技发展有限公司 一种基于智能合约的业务数据处理方法和装置
US10594477B2 (en) * 2018-11-30 2020-03-17 Alibaba Group Holding Limited Blockchain smart contract updates using decentralized decision
CN110992020A (zh) * 2019-11-19 2020-04-10 腾讯科技(深圳)有限公司 基于智能合约的数据处理方法、相关节点及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11941588B2 (en) * 2015-11-06 2024-03-26 Cable Television Laboratories, Inc. Systems and methods for blockchain virtualization and scalability
US11176519B2 (en) * 2016-11-11 2021-11-16 International Business Machines Corporation Smart contract admission check and fault tolerance in a blockchain
US11797982B2 (en) * 2017-01-06 2023-10-24 FirstBlood Technologies, Inc. Digital ledger authentication using address encoding
WO2018204541A1 (en) * 2017-05-02 2018-11-08 Luther Systems Financial derivative contract execution platform, system and method
US10963400B2 (en) * 2017-10-11 2021-03-30 International Business Machines Corporation Smart contract creation and monitoring for event identification in a blockchain
WO2019227052A1 (en) * 2018-05-24 2019-11-28 Walmart Apollo, Llc System and methods for multi-variant tracking
US10929352B2 (en) * 2018-05-29 2021-02-23 Oracle International Corporation Securing access to confidential data using a blockchain ledger
US20190392407A1 (en) * 2018-06-22 2019-12-26 Innoplexus Ag Encrypted asset transfer system and method for facilitating transfer of digital assets
US20210174432A1 (en) * 2018-08-07 2021-06-10 Perpetual Altruism Limited Computer implemented method and system for updating a database system for a blockchain version control system; computer implemented methods of auctioning an item for a seller, and computer implemented method of updating a smart contract
JP7206698B2 (ja) * 2018-08-28 2023-01-18 セイコーエプソン株式会社 提供装置、処理システム及び通信方法
JP7243154B2 (ja) * 2018-12-04 2023-03-22 セイコーエプソン株式会社 提供装置及び処理システム
US20200210402A1 (en) * 2018-12-28 2020-07-02 Accelor Ltd. Systems and methods for performing programmable smart contract execution
CN110223172B (zh) * 2019-05-20 2021-04-13 创新先进技术有限公司 有条件的结合代码标注与类型维度的收据存储方法和节点
CN110245503B (zh) * 2019-05-20 2021-04-27 创新先进技术有限公司 结合代码标注与判断条件的收据存储方法和节点
CN110688634B (zh) * 2019-09-19 2021-09-28 杭州云象网络技术有限公司 一种联盟链事务智能执行的方法
CN110580411B (zh) * 2019-11-08 2020-03-06 支付宝(杭州)信息技术有限公司 基于智能合约的权限查询配置方法及装置
CN111367621A (zh) * 2020-03-06 2020-07-03 深圳市网心科技有限公司 智能合约定时处理方法、区块链节点及存储介质
CN111401896B (zh) * 2020-03-12 2022-06-14 江苏荣泽信息科技股份有限公司 一种基于区块链可信网络的政府通用支付方法
CN111770113B (zh) * 2020-08-31 2021-07-30 支付宝(杭州)信息技术有限公司 一种执行智能合约的方法、区块链节点和节点设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106897878A (zh) * 2017-02-27 2017-06-27 钱德君 一种量子链系统的智能合约类型实现方式
CN107886329A (zh) * 2017-11-28 2018-04-06 无锡井通网络科技有限公司 基于区块链技术的系统合约的定时触发调用方法
US10594477B2 (en) * 2018-11-30 2020-03-17 Alibaba Group Holding Limited Blockchain smart contract updates using decentralized decision
CN110659887A (zh) * 2019-08-05 2020-01-07 孟江华 一种基于区块链的自动交易处理系统和方法
CN110704490A (zh) * 2019-10-15 2020-01-17 北京启迪区块链科技发展有限公司 一种基于智能合约的业务数据处理方法和装置
CN110992020A (zh) * 2019-11-19 2020-04-10 腾讯科技(深圳)有限公司 基于智能合约的数据处理方法、相关节点及存储介质

Also Published As

Publication number Publication date
EP3971809A1 (en) 2022-03-23
CN113037817B (zh) 2022-12-20
EP3971809B1 (en) 2024-04-17
US20220067715A1 (en) 2022-03-03
US11514446B2 (en) 2022-11-29
CN113037817A (zh) 2021-06-25
CN111818185A (zh) 2020-10-23

Similar Documents

Publication Publication Date Title
CN111818185B (zh) 启动智能合约的方法及装置、电子设备、存储介质
CN110163590B (zh) 基于区块链的缴费代扣方法及装置、电子设备、存储介质
CN108492180B (zh) 资产管理方法及装置、电子设备
CN110147990B (zh) 基于区块链的缴费代扣签约方法及装置、电子设备
CN108335206B (zh) 资产管理方法及装置、电子设备
CN111770201B (zh) 一种数据验证方法、装置及设备
CN110458631B (zh) 基于区块链的票据号码分配方法、装置及电子设备
CN111753335B (zh) 区块内容的编辑方法及装置
CN112200571B (zh) 基于区块链的资源发放方法、装置及电子设备
CN111770198B (zh) 一种信息共享方法、装置及设备
CN111047443B (zh) 用户评分方法及装置、电子设备、计算机可读存储介质
CN112101938B (zh) 基于区块链的数字印章使用方法、装置及电子设备
CN111639932B (zh) 一种基于区块链的离线资源转移方法及装置
CN110597916B (zh) 基于区块链的数据处理方法、装置、存储介质及终端
CN111127021B (zh) 基于区块链的服务请求方法及装置
CN112015823B (zh) 一种区块链数据的删除方法和装置
CN111506652B (zh) 基于区块链的交通事故处理方法及装置、电子设备
CN110580411A (zh) 基于智能合约的权限查询配置方法及装置
CN112200567A (zh) 基于区块链的资源管理方法、装置及电子设备
CN111639125A (zh) 基于区块链的资源流通方法及装置
CN113821817B (zh) 基于区块链的数据处理方法、装置、设备及系统
CN112100588A (zh) 基于区块链的数字印章申领方法、装置及电子设备
CN112200572A (zh) 基于区块链的资源发放方法、装置及电子设备
CN112200568A (zh) 基于区块链的账户创建方法、装置及电子设备
CN113469811A (zh) 区块链交易处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40039117

Country of ref document: HK