CN112560114B - 调用智能合约的方法及装置 - Google Patents

调用智能合约的方法及装置 Download PDF

Info

Publication number
CN112560114B
CN112560114B CN202110196300.1A CN202110196300A CN112560114B CN 112560114 B CN112560114 B CN 112560114B CN 202110196300 A CN202110196300 A CN 202110196300A CN 112560114 B CN112560114 B CN 112560114B
Authority
CN
China
Prior art keywords
patch
transaction
intelligent contract
interface
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.)
Active
Application number
CN202110196300.1A
Other languages
English (en)
Other versions
CN112560114A (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
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Ant Blockchain Technology Shanghai Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd, Ant Blockchain Technology Shanghai Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202110196300.1A priority Critical patent/CN112560114B/zh
Publication of CN112560114A publication Critical patent/CN112560114A/zh
Application granted granted Critical
Publication of CN112560114B publication Critical patent/CN112560114B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Abstract

本说明书一个或多个实施例提供一种调用智能合约的方法及装置;该方法可以包括:接收用于调用目标智能合约的第一交易,所述第一交易中包括属于所述目标智能合约的目标功能接口的接收信息;确定所述目标功能接口是否被配置为关联调用补丁智能合约;在确定所述目标功能接口被配置为关联调用所述补丁智能合约的情况下,执行所述补丁智能合约,以判断所述第一交易是否会避免触发所述目标功能接口的漏洞。

Description

调用智能合约的方法及装置
技术领域
本说明书涉及区块链技术领域,尤其涉及一种调用智能合约的方法及装置。
背景技术
区块链技术(也被称之为,分布式账本技术)是一种去中心化的分布式数据库技术。由于采用去中心化的网络结构、共识机制和链式区块结构,使得区块链技术具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。
发明内容
有鉴于此,本说明书一个或多个实施例提供一种调用智能合约的方法及装置。
为实现上述目的,本说明书一个或多个实施例提供技术方案如下:
根据本说明书一个或多个实施例的第一方面,提出了一种调用智能合约的方法,应用于区块链节点;所述方法包括:
接收用于调用目标智能合约的第一交易,所述第一交易中包括属于所述目标智能合约的目标功能接口的接口信息;
确定所述目标功能接口是否被配置为关联调用补丁智能合约;
在确定所述目标功能接口被配置为关联调用所述补丁智能合约的情况下,执行所述补丁智能合约,以判断所述第一交易是否会避免触发所述目标功能接口的漏洞。
根据本说明书一个或多个实施例的第二方面,提出了一种调用智能合约的装置,应用于区块链节点;所述装置包括:
第一接收单元,用于接收用于调用目标智能合约的第一交易,所述第一交易中包括属于所述目标智能合约的目标功能接口的接口信息;
第一确定单元,用于确定所述目标功能接口是否被配置为关联调用补丁智能合约;
第一执行单元,用于在确定所述目标功能接口被配置为关联调用所述补丁智能合约的情况下,执行所述补丁智能合约,以判断所述第一交易是否会触发所述目标功能接口的漏洞。
根据本说明书一个或多个实施例的第三方面,提供一种电子设备。所述电子设备包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。
根据本说明书一个或多个实施例的第四方面,提出了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现如第一方面所述方法的步骤。
附图说明
图1是本说明书一示例性实施例提供的一种区块链网络的架构示意图。
图2是本说明书一示例性实施例提供的一种调用智能合约的方法的流程图。
图3是本说明书一示例性实施例提供的另一种调用智能合约的方法的流程图。
图4是本说明书一示例性实施例提供的另一种调用智能合约的方法的流程图。
图5是本说明书一示例性实施例提供的一种电子设备的结构示意图。
图6是本说明书一示例性实施例提供的一种调用智能合约的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(PrivateBlockchain)和联盟链(Consortium Blockchain)。此外,还有多种类型的结合,比如私有链+联盟链、联盟链+公有链等不同组合形式。其中去中心化程度最高的是公有链。公有链以比特币、以太坊为代表,加入公有链的参与者可以读取链上的数据记录、参与交易以及竞争新区块的记账权等,且各参与者(即节点)可自由加入以及退出网络。私有链则相反,该网络的数据写入权限由某个组织或者机构控制,数据读取权限受组织规定;简单来说,私有链可以为一个弱中心化系统,参与节点具有严格限制且少,因而私有链更适合于特定机构内部使用。联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织,参与者通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
在区块链网络中,通过向区块链节点提交相应的区块链交易(简称交易),并由区块链节点执行区块链交易,以实现相应的操作目的。基于区块链网络的去中心化架构,使得区块链上的每笔区块链交易都需要在区块链网络内的所有区块链节点上执行,以确保每个区块链节点所维护的区块链账本数据一致。如果交易逻辑较为简单,比如以比特币为例,区块链交易仅用于实现转账操作,此时即便区块链交易需要在所有区块链节点都执行,也不会导致过多的资源消耗。但是,如果区块链提供了智能合约的功能,而区块链交易调用了智能合约,那么情况可能大不相同。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约,智能合约可以通过代码的形式定义。
以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑,这是以太坊区别于比特币区块链技术的最大挑战。以太坊作为一个可编程区块链的核心是以太坊虚拟机(EVM),每个以太坊节点都可以运行EVM。EVM是一个图灵完备的虚拟机,这意味着可以通过它实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在EVM上运行的。实际上,虚拟机直接运行的是虚拟机代码(虚拟机字节码)。其中,EVM是一个图灵完备的虚拟机,类似地,也可以采用其他类型的虚拟机,比如WASM(WebAssembly)虚拟机等。
在区块链网络中,通过向区块链节点提交相应的区块链交易,可以由区块链交易触发执行对应的智能合约,可以通过调用智能合约实现复杂的功能。而智能合约是区块链上预先部署的可执行代码,智能合约允许在没有第三方的情况下进行可信交易,且该交易可追踪且不可逆转。智能合约中可以定义一个或多个接口,每一接口用于实现相应的功能。在通过区块链交易调用智能合约时,可以声明调用该智能合约中定义的哪个或哪些接口,以实现相应的功能。
智能合约也可以认为是区块链上的一种计算机程序,那么像普通计算机程序一样,智能合约也会因为程序自身设计或者运行逻辑等问题而出现漏洞或者缺陷等,一旦由区块链交易触发执行存在漏洞的智能合约,往往难以中断或者终止该智能合约的执行,从而容易执行到相应的漏洞并带来较大的损失。而由于区块链具有不可篡改的特性,通常不能直接通过修改智能合约的代码来修复相应的漏洞。
在相关技术中,可以先修改原智能合约中存在漏洞的漏洞代码,再将修改后的智能合约重新部署到区块链上,从而实现对原智能合约中存在的漏洞进行分修复。但是,这种方式不仅需要重新部署修改后的智能合约,还需要将与原智能合约相关联的业务都重新迁移至修改后的智能合约处,导致了这些关联业务的中断,并且还需要耗费较大的时间成本。另外,在修改原智能合约中的漏洞代码的过程中可能会需要修改智能合约的数据结构,容易使得修改后的智能合约无法与原智能合约产生的数据兼容,可能导致修改后的智能合约无法正常执行。
本说明书可以通过调用补丁智能合约以避免触发目标智能合约中存在的漏洞,可以避免由于执行到漏洞而带来的损失。下面结合实施例进行详细说明。
图1是一示例性实施例提供的一种区块链网络的架构示意图。如图1所示,区块链节点12包含有执行引擎、预先部署的目标智能合约和补丁智能合约,其中,目标智能合约可以是存在漏洞的智能合约,而补丁智能合约可以判断用于调用该目标智能合约的区块链交易是否会触发目标智能合约中存在的漏洞,智能合约中的漏洞可以包括智能合约中的私有函数可以被非法调用或者可以通过执行智能合约随意获取隐私数据等,本说明书中并不对此进行限制。执行引擎包括可以用于执行智能合约的执行对象,例如,该执行对象可以包括EVM虚拟机或者WASM虚拟机等。客户端11可以生成区块链交易,并且可以向区块链节点12提交该区块链交易,使得区块链节点12将接收到的区块链交易与其他节点进行共识后上链,当该区块链交易完成后,区块链网络的区块中可以存储有无法篡改、不会丢失的执行记录和数据等。
图2是一示例性实施例提供的一种调用智能合约的方法的流程图。如图2所示,该方法应用于区块链节点(如图1所示的区块链节点12);该方法可以包括以下步骤:
步骤202,接收用于调用目标智能合约的第一交易,所述第一交易中包括属于所述目标智能合约的目标功能接口的接口信息。
在一实施例中,区块链节点上可以被预先设置有目标智能合约,并且该目标智能合约的目标功能接口存在漏洞。其中,该漏洞可以是通过对调用该目标功能接口而获得的历史数据进行分析而得,或者可以是相关人员在对目标智能合约进行试验的过程中获得的,本说明书中并不对此进行限制。
在一实施例中,区块链节点可以接收到用于调用目标智能合约的第一交易,该第一交易中可以包含目标智能合约中的目标功能接口的接口信息,该接口信息可以包括目标功能接口的名称或者编号等,本说明书并不对此进行限制。
步骤204,确定所述目标功能接口是否被配置为关联调用补丁智能合约。
在一实施例中,区块链节点可以接收到用于配置目标功能接口的第二交易,该第二交易中可以包含补丁智能合约的合约地址。区块链节点可以通过执行该第二交易,将补丁智能合约的合约地址添加至目标功能接口的入口处。当目标功能接口的入口处被配置为该补丁智能合约的合约地址时,可以表征目标功能接口被配置为关联调用补丁智能合约;当目标功能接口的入口处未被配置为该补丁智能合约的合约地址时,可以表征目标功能接口未被配置为关联调用补丁智能合约。补丁智能合约可以是区别于目标智能合约的另一智能合约,而目标功能接口的入口处可以通过区块链交易进行配置,便于后续的调整或者修改。那么当目标功能接口的入口处被配置为其他智能合约的合约地址时,目标功能接口还可以被关联至其他智能合约,本说明书并不对此进行限制。另外,区块链节点还可以在确定目标功能接口存在漏洞的情况下,根据第二交易将目标功能接口的入口处配置为补丁智能合约的合约地址。
那么区块链节点可以通过判断目标功能接口的入口处是否被配置为补丁智能合约的合约地址,确定该目标功能接口是否被配置为关联调用补丁智能合约。
在一实施例中,在开发目标智能合约的过程中,目标智能合约中定义了对应于不同功能的功能接口,并且可以在目标智能合约中为至少一个功能接口设置对应的预设世界状态,其中,预设世界状态的取值可以通过区块链交易进行配置,便于后续的调整或者修改。当然,目标智能合约中不同的功能接口可以对应不同的预设世界状态,或者,不同的功能接口可以对应相同的预设世界状态,本说明书并不对此进行限制。
那么在目标智能合约中的至少一个功能接口存在对应的预设世界状态的情况下,上述目标功能接口的入口处可以包括目标功能接口对应的预设世界状态,那么区块链节点可以通过执行第二交易,将目标功能接口对应的预设世界状态的取值配置为补丁智能合约的合约地址,从而将目标功能接口配置为关联调用补丁智能合约。
在一实施例中,在开发目标智能合约的过程中,可以在目标智能合约的合约代码中设置每一功能接口对应的预设世界状态,而每一功能接口对应目标智能合约的合约代码中的一小段合约代码,其中,目标功能接口对应的合约代码中可以设定了“在对目标功能接口对应的世界状态的取值进行处理之后,再执行后续目标功能接口对应的合约代码”。例如,在目标功能接口对应的特定合约代码有多行的情况下,记录了“在对目标功能接口对应的世界状态的取值进行处理之后,再执行后续目标功能接口对应的合约代码”的代码被记录在特定合约代码的最前面等。
那么在将目标功能接口对应的预设世界状态的取值配置为补丁智能合约的合约地址之后,目标功能接口对应的合约代码的执行逻辑为:在接收到调用目标功能接口的第一交易时,先执行补丁智能合约,并在执行完补丁智能合约之后再确定是否执行后续该目标功能接口对应的合约代码。而在目标功能接口对应的预设世界状态的取值未被配置或者被配置为空,目标功能接口对应的合约代码的执行逻辑为:在接收到用于调用目标功能接口的第一交易时,无需对目标功能接口对应的预设世界状态的取值进行处理,可以直接执行后续目标功能接口对应的合约代码。
在一实施例中,区块链节点上可以部署有用于执行智能合约的执行引擎,各个区块链节点可以通过执行引擎执行目标智能合约的合约代码,从而可以屏蔽各个区块链节点之间的设备差异。其中,执行引擎包括可以用于执行智能合约的执行对象,例如该执行对象可以包括EVM虚拟机或者WASM虚拟机等。
在一实施例中,可以在执行引擎中设置与目标智能合约中的至少一个功能接口相关联的预设参数,当然,目标智能合约中不同的功能接口对应的预设参数可以不同,或者目标智能合约中不同的功能接口对应的预设参数可以相同,本说明书并不对此进行限制。
那么在区块链节点上部署了用于执行智能合约的执行引擎,执行引擎中包含与至少一个功能接口相关联的预设参数的情况下,上述目标功能接口的入口处可以包括关联于目标功能接口的预设参数。区块链节点可以通过执行该第二交易,将关联于目标功能接口的预设参数的取值配置为补丁智能合约的合约地址,从而将目标功能接口配置为关联调用补丁智能合约,而无需对目标智能合约进行任何侵入式修改,可以避免影响与该目标智能合约相关的业务的正常运行,也可以避免出现数据兼容的问题,显著提升了改进效率。
在一实施例中,执行引擎的执行逻辑可以被设置为:在调用任一功能接口时,先对与该功能接口相关联的预设参数的取值进行处理,再执行该目标功能接口对应的合约代码。那么在关联于目标功能接口的预设参数的取值被配置为补丁智能合约的合约地址的情况下,执行引擎的执行逻辑为:在接收到用于调用目标功能接口的第一交易时,先执行补丁智能合约,并在执行完补丁智能合约之后再确定是否执行目标功能接口对应的合约代码。
在一实施例中,还可以在开发目标智能合约的过程中,直接将目标功能接口与补丁智能合约关联起来,例如,直接在目标智能合约的合约代码中记载补丁智能合约的合约地址。此时,目标智能合约中记载的补丁智能合约的合约地址后续可能较难进行调整或者修改,可能需要通过更新目标智能合约的代码才能进行修改。
在一实施例中,区块链节点可以接收到客户端发送的用于配置目标功能接口的第二交易,发送第二交易的客户端可以与发送第一交易的客户端相同,或者发送第二交易的客户端可以与发送第一交易的客户端不同,本说明书并不对此进行限制。
步骤206,在确定所述目标功能接口被配置为关联调用所述补丁智能合约的情况下,执行所述补丁智能合约,以判断所述第一交易是否会触发所述目标功能接口的漏洞。
在一实施例中,在确定目标功能接口被配置为关联调用补丁智能合约的情况下,区块链节点可以通过执行该补丁智能合约,来判断第一交易是否会触发目标功能接口的漏洞。其中,补丁智能合约中可以定义了针对第一交易的额外处理,那么区块链节点可以在未调用目标功能接口之前先调用补丁智能合约,而通过执行补丁智能合约,可以避免触发目标功能接口的漏洞,也就可以避免该漏洞带来的损失,同时无需在出现漏洞时重新部署目标智能合约或者修改目标智能合约的合约代码,可以避免影响与该目标智能合约相关的业务的正常运行,也可以避免出现数据兼容的问题,显著提升了改进效率。
在一实施例中,补丁智能合约中定义的额外处理的方式可以为直接跳过对存在漏洞的目标功能接口的调用,那么在确定目标功能接口被配置为关联调用补丁智能合约的情况下,区块链节点可以通过执行补丁智能合约,直接跳过对目标功能接口的调用,而禁止调用该存在漏洞的目标功能接口,也就可以避免触发该目标功能接口存在的漏洞。当然,在每次跳过对目标功能接口的调用后,可以将每次通过补丁智能合约执行跳过目标功能接口的调用记录至相应的日志信息中,便于相关人员后续的汇总和查看。
在一实施例中,补丁智能合约中定义的额外处理的方式可以为将第一交易与补丁智能合约中包含的过滤规则进行匹配。那么区块链节点可以通过执行补丁智能合约,将第一交易与补丁智能合约中包含的过滤规则进行匹配。其中,过滤规则可以被用于识别会触发目标功能接口的漏洞,即区块链节点通过将接收到的区块链交易与过滤规则进行匹配,可以识别出触发目标功能接口的漏洞的区块链交易。若第一交易未匹配于过滤规则时,则可以判定第一交易不会触发目标功能接口的漏洞,那么区块链节点可以正常调用目标功能接口,从而实现对应于目标功能接口的功能;若第一交易匹配于过滤规则时,则可以判定第一交易将触发目标功能接口的漏洞,而补丁智能合约中还可以定义有额外处理的方式为跳过对目标功能接口的调用,那么区块链节点还可以跳过对目标功能接口的调用,从而避免触发漏洞。通过将第一交易与补丁智能合约中的过滤规则进行匹配,可以快速且准确地判断第一交易是否会触发漏洞,便于及时发现将会触发目标智能合约的漏洞的区块链交易,避免由于触发漏洞而带来的损失。
在一实施例中,过滤规则可以包含逻辑关系和相应的逻辑参数,并且补丁智能合约中定义了逻辑判断接口,该逻辑判断接口的功能可以为确定从接收到的区块链交易中提取到的逻辑参数的入参数据是否匹配于相应的过滤规则。那么区块链节点将第一交易与过滤规则进行匹配的过程可以为:区块链节点可以调用补丁智能合约中的逻辑判断接口,从接收到的第一交易中提取对应于过滤规则的逻辑参数的入参数据,然后确定该入参数据是否满足该过滤规则的逻辑关系,若入参数据满足逻辑关系,则表明该第一交易匹配于过滤规则,若入参数据不满足该逻辑关系,则表明第一交易未匹配于过滤规则。例如,假设过滤规则为进货数量大于150个时,将触发目标功能接口的漏洞,那么若提取到第一交易中进货数量的数值为100不大于150个,则区块链节点可以正常调用目标功能接口,若提取到第一交易中进货数量的数值为200大于150个,则区块链节点需要跳过对目标功能接口的调用,避免触发目标功能接口的漏洞。
在一实施例中,过滤规则可以包含逻辑关系和相应的逻辑参数,并且补丁智能合约中定义了模拟执行接口和逻辑判断接口,并且设定了该模拟执行接口与目标功能接口被调用时所实现的功能是一致的,即此时根据第一交易调用补丁智能合约包含的模拟执行接口获得的结果与根据第一交易直接调用目标智能合约包含的目标功能接口获得的结果一致。逻辑判断接口的功能可以为将由模拟执行接口处理得到的处理结果与过滤规则进行匹配。那么区块链节点将第一交易与过滤规则进行匹配的过程可以为:区块链节点通过调用补丁智能合约中的模拟执行接口,可以模拟调用目标功能接口对从第一交易中提取到的逻辑参数的入参数据进行处理,获得相应的处理结果,然后区块链节点可以调用补丁智能合约中的逻辑判断接口,确定上述处理结果是否满足逻辑关系,若处理结果满足逻辑关系,则表明第一交易匹配于过滤规则,而若处理结果不满足该逻辑关系,则表明第一交易未匹配于过滤规则。
在一实施例中,补丁智能合约中可以包含多条过滤规则,补丁智能合约中可以维护目标智能合约的任一功能接口与相应的过滤规则之间的映射关系,使得在接收到针对任一功能接口的区块链交易时,可以快速确定相应的功能接口对应的过滤规则。此时,区块链节点执行补丁智能合约的过程可以为:根据补丁智能合约中维护的映射关系确定目标功能接口对应的目标过滤规则,然后将第一交易与目标过滤规则进行匹配。
在一实施例中,补丁智能合约中可以包含多条过滤规则,每条过滤规则可以对应有相应的区别标识,其中,区别标识可以为过滤规则的编号、或者过滤规则的关键词等,本说明书并不对此进行限制。此时,用于配置目标功能接口的第二交易还可以包含有该目标功能接口对应的过滤规则的区别标识,那么目标功能接口的入口处不仅可以包含上述补丁智能合约的合约地址,还可以包含有目标功能接口对应的过滤规则的区别标识。那么区块链节点可以根据目标功能接口的入口处包含的区别标识来确定相应的过滤规则,而无需在补丁智能合约中维护目标智能合约的任一功能接口与相应的过滤规则之间的映射关系。
在一实施例中,过滤规则可以包含逻辑关系和逻辑参数,逻辑关系可以用于表征各个逻辑参数之间的关联关系或者逻辑关系可以用于表征逻辑参数与设定阈值之间的关联关系,本说明书中并不对此进行限制。那么通过区块链交易在补丁智能合约中添加过滤规则的过程可以为:区块链节点可以接收到用于配置补丁智能合约的规则配置交易,该规则配置交易可以包含第一过滤规则,那么区块链节点可以通过执行该规则配置交易,将第一过滤规则添加至补丁智能合约中,当然,该第一过滤规则包含的逻辑关系可以是用于表征各个逻辑参数之间的关联关系的,例如,a+b<c等;或者第一过滤规则包含的逻辑关系可以用于表征逻辑参数与设定阈值之间的关联关系的,例如,a+b<10等。
在一实施例中,通过区块链交易对补丁智能合约中所含过滤规则进行更新的过程可以为:补丁智能合约中可以定义了包含预设逻辑关系和相应的预设参数的第二过滤规则,并且该预设逻辑关系用于表征该预设逻辑参数与设定阈值之间的关联关系,而区块链节点可以接收到用于更新设定阈值的规则更新交易,通过执行该规则更新交易,获得更新后的设定阈值,从而可以将补丁智能合约中包含的原第二过滤规则调整为包含更新后的设定阈值的第二过滤规则,可以实现对补丁智能合约所含过滤规则的设定阈值的快速更新,便于满足相应的过滤规则的配置需求。例如,假定补丁智能合约中包含的第二过滤规则为a-b<100,那么区块链节点可以通过执行规则更新交易,获得更新后的第二过滤规则为a-b<10。
另外,第二交易、规则配置交易和规则更新交易可以是相互独立的区块链交易;当然,第二交易中可以包含规则配置交易所含内容,或者第二交易中可以包含规则更新交易所含内容,从而无需额外再发送规则配置交易或者规则更新交易,可以简化补丁智能合约的配置过程。
为了便于理解,下面结合附图3对本说明书的技术方案进行进一步说明。图3是本说明书一示例性实施例提供的另一种调用智能合约的方法的流程图。假设区块链节点上部署的目标智能合约X中的各个功能接口都设置有对应的预设世界状态,并且目标智能合约X中的功能接口a存在漏洞。同时区块链节点上还部署有补丁智能合约Y,且补丁智能合约Y的合约地址为chain.01。如图3所示,可以包括以下步骤:
步骤301,接收用于配置功能接口a的第二交易。
步骤302,执行第二交易。
在本实施例中,区块链节点可以接收到用于配置功能接口a的第二交易,该第二交易中可以包含补丁智能合约Y的合约地址。区块链节点可以通过执行第二交易,将功能接口a对应的预设世界状态的取值配置为补丁智能合约Y的合约地址,即chain.01。
步骤303,接收用于配置补丁智能合约Y的规则配置交易。
步骤304,执行规则配置交易。
在本实施例中,区块链节点可以接收到用于配置补丁智能合约Y的规则配置交易,该规则配置交易中可以包含过滤规则G1,该过滤规则G1包含的内容可以为:货物数量大于150个时,将会触发功能接口a的漏洞。其中,该过滤规则包含的逻辑参数为货物数量,该过滤规则G1可以被用于识别出会触发功能接口a的漏洞的区块链交易。区块链节点可以根据接收到的规则配置交易触发执行补丁智能合约Y,从而将过滤规则G1添加至补丁智能合约Y中。
步骤305,接收用于调用功能接口a的第一交易。
步骤306,调用补丁智能合约Y。
在本实施例中,区块链节点可以根据接收到的用于调用功能接口a的第一交易,先触发执行目标智能合约X,然后可以根据目标智能合约X中功能接口a对应的预设世界状态为chain.01,在调用功能接口a之前调用对应于该合约地址chain.01的补丁智能合约Y,而通过执行补丁智能合约Y,可以将第一交易与补丁智能合约Y所含的过滤规则G1进行匹配。
在本实施例中,假设补丁智能合约Y中定义了逻辑判断接口,并且第一交易中包含货物数量为100个的相关内容。区块链节点在调用补丁智能合约Y时,可以调用补丁智能合约中的逻辑判断接口,从而可以先从第一交易中提取对应于逻辑参数货物数量的值为100个,然后可以将100个与过滤规则G1中包含的设定阈值150个进行比较,得到100个小于150个,那么可以确定第一交易未匹配于过滤规则,表明第一交易不会触发功能接口a的漏洞,因而可以按照第一交易正常调用功能接口a。
图4是本说明书一示例性实施例提供的另一种调用智能合约的方法的流程图。假设区块链节点上部署了目标智能合约X,并且区块链节点上部署的执行引擎为虚拟机M,区块链节点上部署的虚拟机M中设置有与目标智能合约X中的功能接口相关联的预设参数,目标智能合约X中的功能接口b存在漏洞,且虚拟机M中与功能接口b相关联的预设参数为Z。同时区块链节点上还部署有补丁智能合约Y,且补丁智能合约Y的合约地址为chain.01。如图4所示,可以包括以下步骤:
步骤401,接收用于配置功能接口b的第二交易。
步骤402,执行第二交易。
在本实施例中,区块链节点可以接收到用于配置功能接口b的第二交易,该第二交易中可以包含补丁智能合约Y的合约地址。区块链节点可以通过执行第二交易,将虚拟机M中与功能接口b相关联的预设参数Z的取值配置为补丁智能合约Y的合约地址,即chain.01。
步骤403,接收用于配置补丁智能合约Y的规则更新交易。
步骤404,执行规则更新交易。
在本实施例中,假设补丁智能合约Y中已经定义了第二过滤规则G2,该过滤规则G2包含的内容可以为货物编号小于50时,将会触发功能接口b的漏洞。该过滤规则G2中包含逻辑参数:货物编号,以及设定阈值:50。
区块链节点可以接收到规则更新交易,该规则更新交易中可以包含更新后的设定阈值为100,那么区块链节点可以根据规则更新交易触发执行补丁智能合约Y,通过执行补丁智能合约Y,可以将补丁智能合约Y中第二过滤规则G2中包含的设定阈值50更新为100,从而可以获得更新后的第二过滤规则G2,该更新后的第二过滤规则G2包含的内容可以为货物编号小于100时,将会触发功能接口b的漏洞。
步骤405,接收用于调用功能接口b的第一交易。
步骤406,调用补丁智能合约Y。
在本实施例中,区块链节点可以通过虚拟机M执行用于调用功能接口b的第一交易,先根据虚拟机M中与功能接口b相关联的预设参数Z的取值chain.01,调用对应于该合约地址chain.01的补丁智能合约Y,而通过执行补丁智能合约Y可以将第一交易与补丁智能合约Y所含过滤规则G2进行匹配。
在本实施例中,假设补丁智能合约Y中定义了逻辑判断接口,并且第一交易中包含货物编号为80的相关内容。区块链节点在调用补丁智能合约Y时,可以调用补丁智能合约Y中的逻辑判断接口,可以从第一交易中提取到对应于逻辑参数货物编号的值80,然后可以将提取到的80与过滤规则G2中包含的更新后的设定阈值100进行比较,得到80小于100,那么可以确定第一交易匹配于过滤规则,表明第一交易将触发功能接口b的漏洞,因而区块链节点需要跳过对功能接口b的调用,从而可以避免触发功能接口b的漏洞。
图5示出了根据本说明书的一示例性实施例的电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行,在逻辑层面上形成调用智能合约的装置。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
请参考图6,在软件实施方式中,该调用智能合约的装置可以包括第一接收单元602、第一确定单元604和第一执行单元606。其中:
第一接收单元602,用于接收用于调用目标智能合约的第一交易,所述第一交易中包括属于所述目标智能合约的目标功能接口的接口信息;
第一确定单元604,用于确定所述目标功能接口是否被配置为关联调用补丁智能合约;
第一执行单元606,用于在确定所述目标功能接口被配置为关联调用所述补丁智能合约的情况下,执行所述补丁智能合约,以判断所述第一交易是否会触发所述目标功能接口的漏洞。
可选的,还包括:
第二接收单元608,用于接收用于配置所述目标功能接口的第二交易,所述第二交易包括所述补丁智能合约的合约地址;
第二执行单元610,用于通过执行所述第二交易,将所述补丁智能合约的合约地址添加于所述目标功能接口的入口处,以表明所述目标功能接口被配置为关联调用所述补丁智能合约。
可选的,所述第二执行单元610具体用于:
在所述目标智能合约中的至少一个功能接口包括对应的预设世界状态的情况下,对所述目标功能接口对应的预设世界状态进行配置,以使所述预设世界状态的取值被配置为所述补丁智能合约的合约地址。
可选的,所述第二执行单元610具体用于:
在所述区块链节点上部署了用于执行智能合约的执行引擎,所述执行引擎中包含与所述目标智能合约中的至少一个功能接口相关联的预设参数的情况下,对关联于所述目标功能接口的预设参数进行配置,以使所述预设参数的取值被配置为所述补丁智能合约的合约地址。
可选的,所述第一执行单元606具体用于:
通过执行所述补丁智能合约,将所述第一交易与所述补丁智能合约所含的过滤规则进行匹配,所述过滤规则被用于识别会触发所述目标功能接口的漏洞的交易;
若所述第一交易未匹配于所述过滤规则,则判定所述第一交易不会触发所述目标功能接口的漏洞;
若所述第一交易匹配于所述过滤规则,则判定所述第一交易会触发所述目标功能接口的漏洞。
可选的,所述过滤规则包含逻辑关系和逻辑参数;所述第一执行单元606具体用于:
通过调用所述补丁智能合约中定义的逻辑判断接口,确定从所述第一交易中提取到的对应于所述逻辑参数的入参数据是否满足所述逻辑关系;
或者,通过调用所述补丁智能合约中定义的模拟执行接口,获取处理所述入参数据而得到的处理结果,并通过调用所述逻辑判断接口,确定所述处理结果是否满足所述逻辑关系,其中,所述模拟执行接口与所述目标功能接口被调用时所实现的功能一致。
可选的,所述补丁智能合约中维护有目标智能合约的任一功能接口与相应的过滤规则之间的映射关系;所述第一执行单元606具体用于:
根据所述映射关系确定对应于所述目标功能接口的目标过滤规则;
将所述第一交易与所述目标过滤规则进行匹配。
可选的,所述过滤规则包含逻辑关系和逻辑参数,所述逻辑关系用于表征各个逻辑参数之间的关联关系或者所述逻辑关系用于表征所述逻辑参数与设定阈值之间的关联关系;还包括:
规则添加单元612,用于在接收到用于配置所述补丁智能合约的规则配置交易且所述规则配置交易中包含第一过滤规则的情况下,通过执行所述规则配置交易,在所述补丁智能合约中添加所述第一过滤规则;
或者,规则更新单元614,用于在所述补丁智能合约中定义了包含预设逻辑关系和预设逻辑参数的第二过滤规则且所述预设逻辑关系用于表征所述预设逻辑参数与设定阈值之间的关联关系的情况下,执行接收到的用于更新所述设定阈值的规则更新交易,以获得包含更新后的设定阈值的第二过滤规则。
可选的,所述第一执行单元606具体用于:
通过执行所述补丁智能合约,跳过对所述目标功能接口的调用。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

Claims (11)

1.一种调用智能合约的方法,应用于区块链节点;所述方法包括:
接收用于调用目标智能合约的第一交易,所述第一交易中包括属于所述目标智能合约的目标功能接口的接口信息;
确定所述目标功能接口是否被配置为关联调用补丁智能合约,所述补丁智能合约中定义了模拟执行接口和逻辑判断接口,所述模拟执行接口与所述目标功能接口被调用时所实现的功能一致;
在确定所述目标功能接口被配置为关联调用所述补丁智能合约的情况下,执行所述补丁智能合约,以判断所述第一交易是否会触发所述目标功能接口的漏洞;
其中,执行所述补丁智能合约的过程包括:通过调用所述模拟执行接口,获取处理所述第一交易所含的入参数据而得到的处理结果,并通过调用所述逻辑判断接口,确定所述处理结果是否满足所述补丁智能合约所含的过滤规则中的逻辑关系;
若所述处理结果满足所述逻辑关系,则判定所述第一交易会触发所述目标功能接口的漏洞。
2.根据权利要求1所述的方法,还包括:
接收用于配置所述目标功能接口的第二交易,所述第二交易包括所述补丁智能合约的合约地址;
通过执行所述第二交易,将所述补丁智能合约的合约地址添加于所述目标功能接口的入口处,以表明所述目标功能接口被配置为关联调用所述补丁智能合约。
3.根据权利要求2所述的方法,将所述补丁智能合约的合约地址添加于所述目标功能接口的入口处,包括:
在所述目标智能合约中的至少一个功能接口包含对应的预设世界状态的情况下,对所述目标功能接口对应的预设世界状态进行配置,以使所述预设世界状态的取值被配置为所述补丁智能合约的合约地址。
4.根据权利要求2所述的方法,将所述补丁智能合约的合约地址添加于所述目标功能接口的入口处,包括:
在所述区块链节点上部署了用于执行智能合约的执行引擎,所述执行引擎中包含与所述目标智能合约中的至少一个功能接口相关联的预设参数的情况下,对关联于所述目标功能接口的预设参数进行配置,以使所述预设参数的取值被配置为所述补丁智能合约的合约地址。
5.根据权利要求1所述的方法,在确定所述目标功能接口被配置为关联调用所述补丁智能合约的情况下,执行所述补丁智能合约,以判断所述第一交易是否会触发所述目标功能接口的漏洞,包括:
通过执行所述补丁智能合约,将所述第一交易与所述补丁智能合约所含的过滤规则进行匹配,所述过滤规则被用于识别会触发所述目标功能接口的漏洞的交易;
若所述第一交易未匹配于所述过滤规则,则判定所述第一交易不会触发所述目标功能接口的漏洞;
若所述第一交易匹配于所述过滤规则,则判定所述第一交易会触发所述目标功能接口的漏洞。
6.根据权利要求5所述的方法,所述补丁智能合约中维护有目标智能合约的任一功能接口与相应的过滤规则之间的映射关系;通过执行所述补丁智能合约,将所述第一交易与所述补丁智能合约所含的过滤规则进行匹配,包括:
根据所述映射关系确定对应于所述目标功能接口的目标过滤规则;
将所述第一交易与所述目标过滤规则进行匹配。
7.根据权利要求5所述的方法,所述过滤规则包含逻辑关系和逻辑参数,所述逻辑关系用于表征各个逻辑参数之间的关联关系或者所述逻辑关系用于表征所述逻辑参数与设定阈值之间的关联关系;所述方法还包括:
在接收到用于配置所述补丁智能合约的规则配置交易且所述规则配置交易中包含第一过滤规则的情况下,通过执行所述规则配置交易,在所述补丁智能合约中添加所述第一过滤规则;
或者,在所述补丁智能合约中定义了包含预设逻辑关系和预设逻辑参数的第二过滤规则且所述预设逻辑关系用于表征所述预设逻辑参数与设定阈值之间的关联关系的情况下,执行接收到的用于更新所述设定阈值的规则更新交易,以获得包含更新后的设定阈值的第二过滤规则。
8.根据权利要求1所述的方法,在确定所述目标功能接口被配置为关联调用所述补丁智能合约的情况下,执行所述补丁智能合约,以判断所述第一交易是否会触发所述目标功能接口的漏洞,包括:
通过执行所述补丁智能合约,跳过对所述目标功能接口的调用。
9.一种调用智能合约的装置,应用于区块链节点;所述装置包括:
第一接收单元,用于接收用于调用目标智能合约的第一交易,所述第一交易中包括属于所述目标智能合约的目标功能接口的接口信息;
第一确定单元,用于确定所述目标功能接口是否被配置为关联调用补丁智能合约,所述补丁智能合约中定义了模拟执行接口和逻辑判断接口,所述模拟执行接口与所述目标功能接口被调用时所实现的功能一致;
第一执行单元,用于在确定所述目标功能接口被配置为关联调用所述补丁智能合约的情况下,执行所述补丁智能合约,以判断所述第一交易是否会触发所述目标功能接口的漏洞;
其中,执行所述补丁智能合约的过程包括:通过调用所述模拟执行接口,获取处理所述第一交易所含的入参数据而得到的处理结果,并通过调用所述逻辑判断接口确定所述处理结果是否满足所述补丁智能合约所含的过滤规则中的逻辑关系;
若所述处理结果满足所述逻辑关系,则判定所述第一交易会触发所述目标功能接口的漏洞。
10.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-8中任一项所述的方法。
11.一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现如权利要求1-8中任一项所述方法的步骤。
CN202110196300.1A 2021-02-22 2021-02-22 调用智能合约的方法及装置 Active CN112560114B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110196300.1A CN112560114B (zh) 2021-02-22 2021-02-22 调用智能合约的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110196300.1A CN112560114B (zh) 2021-02-22 2021-02-22 调用智能合约的方法及装置

Publications (2)

Publication Number Publication Date
CN112560114A CN112560114A (zh) 2021-03-26
CN112560114B true CN112560114B (zh) 2022-01-11

Family

ID=75036045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110196300.1A Active CN112560114B (zh) 2021-02-22 2021-02-22 调用智能合约的方法及装置

Country Status (1)

Country Link
CN (1) CN112560114B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113469811A (zh) * 2021-07-05 2021-10-01 支付宝(杭州)信息技术有限公司 区块链交易处理方法及装置
CN115438335B (zh) * 2022-11-07 2023-02-10 上海特高信息技术有限公司 一种用于加固智能合约安全运行的安全沙箱系统
CN117251234B (zh) * 2023-11-16 2024-03-29 北京中电华大电子设计有限责任公司 基于补丁的函数调用方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800175A (zh) * 2019-02-20 2019-05-24 河海大学 一种基于代码插桩的以太坊智能合约重入漏洞检测方法
CN110489973A (zh) * 2019-08-06 2019-11-22 广州大学 一种基于Fuzz的智能合约漏洞检测方法、装置和存储介质
CN111028077A (zh) * 2019-11-20 2020-04-17 华中科技大学 一种基于输入过滤器的智能合约防护方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800175A (zh) * 2019-02-20 2019-05-24 河海大学 一种基于代码插桩的以太坊智能合约重入漏洞检测方法
CN110489973A (zh) * 2019-08-06 2019-11-22 广州大学 一种基于Fuzz的智能合约漏洞检测方法、装置和存储介质
CN111028077A (zh) * 2019-11-20 2020-04-17 华中科技大学 一种基于输入过滤器的智能合约防护方法及系统

Also Published As

Publication number Publication date
CN112560114A (zh) 2021-03-26

Similar Documents

Publication Publication Date Title
US10929198B2 (en) Blockchain-based resource allocation method and apparatus
CN112560114B (zh) 调用智能合约的方法及装置
CN111898360B (zh) 基于区块链的文本相似性检测方法及装置、电子设备
CN108335206B (zh) 资产管理方法及装置、电子设备
US10785168B2 (en) Allocating virtual resource based on block chain
CN109347787B (zh) 一种身份信息的识别方法及装置
WO2021197097A1 (zh) 跨链数据订阅
CN110020542B (zh) 数据读写方法及装置、电子设备
CN113836227B (zh) 一种基于区块链的资产申购方法、装置及电子设备
CN110458631B (zh) 基于区块链的票据号码分配方法、装置及电子设备
CN110032598B (zh) 字段更新方法及装置、电子设备
CN110706114A (zh) 一种基于区块链的违约资产处理方法、装置及电子设备
US11423473B2 (en) Blockchain-based leasing
CN109598598A (zh) 基于区块链的交易处理方法及装置、电子设备
CN110046523B (zh) 智能合约校验方法及装置和电子设备
CN111782668A (zh) 数据结构的读取及更新方法、装置、电子设备
CN112101938B (zh) 基于区块链的数字印章使用方法、装置及电子设备
CN109345392B (zh) 编程题目发布、解答代码发布、解答代码检验方法及系统
CN110750530B (zh) 一种业务系统及其数据核对方法
CN110032568B (zh) 数据结构的读取及更新方法、装置、电子设备
US20200175622A1 (en) Processing ledger transactions in a blockchain
CN112400182A (zh) 区块链中智能合约的执行方法及装置和电子设备
CN112100588A (zh) 基于区块链的数字印章申领方法、装置及电子设备
CN111723102A (zh) 一种智能合约的更新方法和装置
CN109857450A (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: 40047874

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant