CN116342283A - 可信智能合约实现方法、装置、设备及可读存储介质 - Google Patents
可信智能合约实现方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN116342283A CN116342283A CN202310338306.7A CN202310338306A CN116342283A CN 116342283 A CN116342283 A CN 116342283A CN 202310338306 A CN202310338306 A CN 202310338306A CN 116342283 A CN116342283 A CN 116342283A
- Authority
- CN
- China
- Prior art keywords
- contract
- interface
- intelligent contract
- trusted
- wasm
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种可信智能合约实现方法、装置、设备及可读存储介质,可信智能合约实现方法应用于智能合约执行环境,智能合约执行环境部署于可信执行环境,可信智能合约实现方法包括:当接收到智能合约的调用请求时,WASM模块加载环境接口和智能合约的WASM字节码,创建WASM虚拟机实例;通过环境接口获取和解析智能合约的合约参数;使用方法参数,调用合约方法,得到智能合约的执行结果;通过环境接口返回智能合约的执行结果。通过本发明,基于WASM执行时的沙盒隔离特性和可信执行环境,能够有效提升智能合约的安全性,同时基于WASM的格式标准可支持更多的程序语言,提升了智能合约的易用性。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种可信智能合约实现方法、装置、设备及可读存储介质。
背景技术
智能合约是一种去中心化的数字合约,各参与方执行合约后通过共识协议来确定最终的执行结果,从而实现了一种公开透明、可追溯不可篡改的交易***,早期的智能合约可以追溯到比特币的锁定脚本和解锁脚本,它控制了比特币的交易权限,功能比较单一,随着以太坊的出现,以Solidity程序语言开发的智能合约可以部署运行在以太坊这个去中心化的全球计算机上,智能合约最终执行在以太坊各个节点的EVM(ETHereumVirtualMachine,以太坊虚拟机)中,至此智能合约得到广泛的应用。
然而,以太坊的智能合约运行在各个节点上,节点的运行环境复杂不可控,导致智能合约的执行可信性无法保证,以及以太坊的智能合约编写只支持Solidity和Vyper等非常有限的程序语言,增加了开发门槛,导致智能合约的易用性不高。
发明内容
本发明的主要目的在于提供一种可信智能合约实现方法、装置、设备及可读存储介质,旨在解决以太坊的智能合约运行在各个节点上,节点的运行环境复杂不可控,导致智能合约的执行可信性无法保证,以及以太坊的智能合约编写只支持Solidity和Vyper等非常有限的程序语言,增加了开发门槛,导致智能合约的易用性不高的技术问题。
第一方面,本发明提供一种可信智能合约实现方法,所述可信智能合约实现方法应用于智能合约执行环境,所述智能合约执行环境包括合约接口、环境接口和WASM模块,所述合约接口包括合约调用接口,所述智能合约执行环境部署于可信执行环境,所述可信智能合约实现方法包括:
当合约调用接口接收到智能合约的调用请求时,WASM模块加载环境接口和智能合约的WASM字节码,创建WASM虚拟机实例;
WASM虚拟机实例通过环境接口获取智能合约的合约参数;
对合约参数进行解析得到合约方法和方法参数,使用方法参数,调用合约方法,得到智能合约的执行结果;
通过环境接口返回智能合约的执行结果。
可选的,所述合约接口还包括合约部署接口,在所述当合约接口接收到智能合约的调用请求时,WASM模块加载环境接口和智能合约的WASM字节码,创建WASM虚拟机实例之前,包括:
通过合约部署接口,将智能合约的WASM字节码,部署至智能合约执行环境。
可选的,在所述通过合约部署接口,将智能合约的WASM字节码,部署至智能合约执行环境之前,包括:
通过编译工具编译智能合约,生成智能合约的WASM字节码。
可选的,在所述调用合约方法之后,包括:
通过环境接口进行合约数据交互。
可选的,在所述得到智能合约的执行结果之后,包括:
对智能合约执行环境、智能合约的WASM字节码和智能合约的执行结果进行远程认证,以供提升智能合约的安全性。
可选的,所述环境接口以应用程序接口形式提供,所述合约接口以应用程序接口或网络接口形式提供。
第二方面,本发明还提供一种可信智能合约实现装置,所述可信智能合约实现装置应用于智能合约执行环境,所述智能合约执行环境包括合约接口、环境接口和WASM模块,所述合约接口包括合约调用接口,所述智能合约执行环境部署于可信执行环境,所述可信智能合约实现装置包括:
创建模块,用于当合约调用接口接收到智能合约的调用请求时,WASM模块加载环境接口和智能合约的WASM字节码,创建WASM虚拟机实例;
获取模块,用于WASM虚拟机实例通过环境接口获取智能合约的合约参数;
调用模块,用于对合约参数进行解析得到合约方法和方法参数,使用方法参数,调用合约方法,得到智能合约的执行结果;
返回模块,用于通过环境接口返回智能合约的执行结果。
可选的,所述合约接口还包括合约部署接口,所述可信智能合约实现装置,还包括部署模块,用于:
通过合约部署接口,将智能合约的WASM字节码,部署至智能合约执行环境。
第三方面,本发明还提供一种可信智能合约实现设备,所述可信智能合约实现设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的可信智能合约实现程序,其中所述可信智能合约实现程序被所述处理器执行时,实现如上述所述的可信智能合约实现方法的步骤。
第四方面,本发明还提供一种可读存储介质,所述可读存储介质上存储有可信智能合约实现程序,其中所述可信智能合约实现程序被处理器执行时,实现如上述所述的可信智能合约实现方法的步骤。
本发明中,可信智能合约实现方法应用于智能合约执行环境,智能合约执行环境包括合约接口、环境接口和WASM模块,合约接口包括合约调用接口,智能合约执行环境部署于可信执行环境,可信智能合约实现方法包括:当合约调用接口接收到智能合约的调用请求时,WASM模块加载环境接口和智能合约的WASM字节码,创建WASM虚拟机实例;WASM虚拟机实例通过环境接口获取智能合约的业务参数,根据业务参数,执行智能合约的WASM字节码,得到智能合约的执行结果;通过环境接口返回智能合约的执行结果。通过本发明,基于WASM执行时的沙盒隔离特性和可信执行环境,能够有效提升智能合约的安全性,同时基于WASM的格式标准可支持更多的程序语言,提升了智能合约的易用性,另外基于WASM实现的智能合约还具有体积小、可移植性高、执行效率高和安全性高的优势。
附图说明
图1为本发明可信智能合约实现方法一实施例的流程示意图;
图2为本发明可信智能合约实现方法一实施例的智能合约执行环境架构示意图;
图3为本发明可信智能合约实现方法一实施例的部署和执行流程示意图;
图4为本发明可信智能合约实现方法一实施例的编译、部署和执行流程示意图;
图5为本发明可信智能合约实现装置一实施例的功能模块示意图;
图6为本发明可信智能合约实现设备一实施例的硬件结构示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
第一方面,本发明实施例提供了一种可信智能合约实现方法。
为了更清楚地展示本申请实施例提供的可信智能合约实现方法,首先介绍一下本申请实施例提供的可信智能合约实现方法的应用场景。
本申请实施例提供的可信智能合约实现方法应用在以Solidity程序语言开发的智能合约可以部署运行在以太坊这个去中心化的全球计算机上,智能合约最终执行在以太坊各个节点的EVM(ETHereumVirtualMachine,以太坊虚拟机)中,然而,以太坊的智能合约运行在各个节点上,节点的运行环境复杂不可控,导致智能合约的可信性无法保证,以及以太坊的智能合约编写只支持Solidity和Vyper等非常有限的程序语言,增加了开发门槛,导致智能合约的易用性不高,因此,亟需一种易用、安全及高效的智能合约***以解决上述的问题。
WASM(WebAssembly)是一种新型的能够运行在浏览器中的字节码,它类似于汇编语言,其二进制格式具有很高的紧凑性,能够极大的缩小目标代码文件的大小、提高应用程序分发效率。此外,WASM字节码具有高效率运行的优势,同时WASM能够提供像C/C++、Rust和Golang等多种类型语言的编译目标,使得采用这些语言编写的应用程序能够运行于浏览器中。
一实施例中,所述可信智能合约实现方法应用于智能合约执行环境,所述智能合约执行环境包括合约接口、环境接口和WASM模块,所述合约接口包括合约调用接口,所述智能合约执行环境部署于可信执行环境,参照图1,图1为本发明可信智能合约实现方法一实施例的流程示意图,如图1所示,所述可信智能合约实现方法包括:
步骤S10,当合约调用接口接收到智能合约的调用请求时,WASM模块加载环境接口和智能合约的WASM字节码,创建WASM虚拟机实例。
本实施例中,智能合约执行环境是一个软件***,通过智能合约执行环境来实现智能合约的部署、执行和管理等功能,参照图2,图2为本发明可信智能合约实现方法一实施例的智能合约执行环境架构示意图,如图2所示,智能合约执行环境包括合约接口、环境接口和WASM模块,其中,合约接口包括合约调用接口以及合约部署接口,合约接口是智能合约执行环境对外提供的对智能合约进行调用和部署的接口,环境接口是智能合约执行环境所提供的访问外部环境的接口,主要用于获取外部输入的智能合约的相关业务参数,以及向外部返回智能合约的执行结果等,WASM模块为智能合约执行环境的核心模块,主要负责解析和执行WASM格式的字节码文件,编译后的WASM字节码文件具备高效率、轻量化、跨平台和多语言支持的特性,配合运行时(runtime)提供的各类***与通讯方法,能够实现智能合约跨平台多语言的灵活调用和执行,同时WASM模块也提供了一套统一的接口标准,便于集成和扩展更优秀的WASM解析工具,主要包括虚拟机实例的创建及移除,字节码的解析执行和内存占用等功能。智能合约执行环境整体部署运行于可信执行环境,可信执行环境是一种具有运算和储存功能,能提供安全性和完整性保护的独立处理环境,通过在硬件中为敏感数据单独分配一块隔离的内存,所有敏感数据的计算均在这块内存中进行,除了经过授权的接口外,硬件中的其他部分不能访问这块隔离的内存中的信息,因此,能够有效提升智能合约的安全性,本实施例中,可信执行环境可基于IntelSGX(SoftwareGuard Extensions,英特尔的软件防护扩展技术)和IntelTDX(TrustDomain Extensions,因特尔的虚拟机隔离技术)等来实现。
本实施例中,在智能合约执行环境中,当合约调用接口接收到外部的智能合约的调用请求时,WASM模块通过加载环境接口和智能合约的WASM字节码,据此创建智能合约WASM虚拟机实例。
步骤S20,WASM虚拟机实例通过环境接口获取智能合约的合约参数。
本实施例中,WASM执行时具有沙盒隔离特性,提升了智能合约的安全性,WASM执行时不能直接和外部进行交互,必须借助于环境接口从外部获取智能合约的合约参数,合约参数包括所要调用的智能合约的合约方法和方法参数等,对合约方法的哈希值和方法参数进行编码后以二进制流的形式通过环境接口传递给WASM虚拟机实例。
步骤S30,对合约参数进行解析得到合约方法和方法参数,使用方法参数,调用合约方法,得到智能合约的执行结果。
本实施例中,在对合约参数进行解析后,即可以得到合约方法和方法参数,合约方法即所要调用的智能合约的程序函数,方法参数即该程序函数的输入参数,使用方法参数,调用合约方法,完成智能合约的执行,得到智能合约的执行结果。
步骤S40,通过环境接口返回智能合约的执行结果。
本实施例中,在智能合约执行环境中,执行智能合约的WASM字节码,也称调用智能合约,可以理解的是,调用智能合约可以是基于其收到的调用请求,读/写用户私人存储,将钱存入其账户余额,可以发送/接收消息或来自用户/其他智能合约的数字资产等等,智能合约的执行结果通过环境接口返回给智能合约的调用者。
本实施例中,智能合约执行环境整体部署运行于由IntelSGX和IntelTDX等实现的可信执行环境中,通过合约接、环境接口和WASM模块,实现完整的智能合约的部署、执行和管理等功能,基于WASM执行时的沙盒隔离特性和可信执行环境,能够有效提升智能合约的安全性,同时基于WASM的格式标准可支持更多的程序语言,提升了智能合约的易用性,另外基于WASM实现的智能合约还具有体积小、可移植性高、执行效率高和安全性高的优势。
进一步地,一实施例中,所述合约接口还包括合约部署接口,参照图3,图3为本发明可信智能合约实现方法一实施例的部署和执行流程示意图,如图3所示,在步骤S10之前,包括:
步骤S01,通过合约部署接口,将智能合约的WASM字节码,部署至智能合约执行环境。
本实施例中,还可以包括智能合约的ABI(ApplicationBinaryInterface)文件,ABI文件即应用程序二进制接口文件,为智能合约对外提供的关于接口函数类的描述性文件,通过智能合约执行环境的合约部署接口,将智能合约的WASM字节码文件和ABI文件,部署至智能合约执行环境,在对其进行文件格式等方面的验证后,将WASM字节码文件和ABI文件存储至智能合约执行环境。
进一步地,一实施例中,参照图4,图4为本发明可信智能合约实现方法一实施例的编译、部署和执行流程示意图,如图4所示,在所述通过合约部署接口,将智能合约的WASM字节码,部署至智能合约执行环境之前,包括:
步骤S00,通过编译工具编译智能合约,生成智能合约的WASM字节码。
本实施例中,可为智能合约的开发者提供智能合约开发套件,以提升智能合约的易用性,智能合约开发套件包括智能合约的开发包和编译工具,其中,开发包是一个提供给开发者使用的智能合约的代码库,包括关于智能合约基础的数据类型和相关业务接口,基于主流编程语言,通过对低级别环境接口的封装来实现,从而使开发者不用关心低级别环境接口的内容,只需要按照开发包提供的数据类型和接口编写智能合约即可,大大降低了开发门槛,提高了开发效率。编译工具结合主流开发语言和相关编译链工具,对使用智能合约开发包编写的智能合约代码进行编译和优化,使用Tree-shaking(摇树优化)技术减小智能合约的体积,最终生成智能合约的ABI文件和WASM字节码文件。由于WASM同时也是一种字节码标准,只需要相关工具支持,主流编程语言都可以编译成WASM格式的目标二进制文件,比如,以rust语言为例,可使用官方提供的wasm32-unknown-unknown工具编译,智能合约编译工具可提供不同操作***平台下的安装包,以命令行的形式来运行,通过new指令可以新建一个智能合约项目,此时会自动配置智能合约开发包的依赖项,并生成一个引用智能合约开发包的智能合约模板,智能合约的开发者可根据自身业务的需要,对智能合约模板进行修改,然后通过build指令来编译合约,分别生成后缀为.abi的智能合约的ABI文件和后缀为.wasm的智能合约的字节码文件,生成的智能合约的WASM字节码文件和ABI文件可部署至智能合约执行环境中,以供执行。
进一步地,一实施例中,在所述调用合约方法之后,包括:
通过环境接口进行合约数据交互。
本实施例中,在智能合约的执行过程中,可根据需要通过环境接口来进行合约数据的交互,比如读写合约状态数据、返回事件及获取时间戳等。
进一步地,一实施例中,在所述得到智能合约的执行结果之后,包括:
对智能合约执行环境、智能合约的WASM字节码和智能合约的执行结果进行远程认证,以供提升智能合约的安全性。
本实施例中,继续参照图2,如图2所示,智能合约执行环境还包括远程认证模块,用于提供可信执行环境的远程报告生成功能,生成的远程报告可以通过认证中心来认证,通过对智能合约执行环境的远程认证来证明智能合约执行环境的可信,从而保证智能合约代码的执行安全,通过对智能合约WASM字节码数据的远程认证来证明智能合约代码的完整性,保证智能合约代码没有被篡改,通过对智能合约执行结果数据的远程认证来证明智能合约执行结果的可信,保证智能合约执行结果数据没有被篡改,通过上述三种相关场景的远程认证,从而能够保证智能合约的安全可靠,不依靠区块链也能保证智能合约交易的公开透明和不可篡改等,从而增加了智能合约的应用场景。
进一步地,一实施例中,所述环境接口以应用程序接口形式提供,所述合约接口以应用程序接口或网络接口形式提供。
本实施例中,环境接口以应用程序接口的形式来提供,合约接口以应用程序接口或网络接口的形式来提供,其中,网络接口比如RPC(Remote ProcedureCall,远程过程调用)接口,通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
第二方面,本发明实施例还提供一种可信智能合约实现装置。
参照图5,图5为本发明可信智能合约实现装置一实施例的功能模块示意图。
本实施例中,所述可信智能合约实现装置应用于智能合约执行环境,所述智能合约执行环境包括合约接口、环境接口和WASM模块,所述合约接口包括合约调用接口,所述智能合约执行环境部署于可信执行环境,所述可信智能合约实现装置包括:
创建模块10,用于当合约调用接口接收到智能合约的调用请求时,WASM模块加载环境接口和智能合约的WASM字节码,创建WASM虚拟机实例;
获取模块20,用于WASM虚拟机实例通过环境接口获取智能合约的合约参数;
调用模块30,用于对合约参数进行解析得到合约方法和方法参数,使用方法参数,调用合约方法,得到智能合约的执行结果;
返回模块40,用于通过环境接口返回智能合约的执行结果。
进一步地,一实施例中,所述合约接口还包括合约部署接口,所述可信智能合约实现装置,还包括部署模块,用于:
通过合约部署接口,将智能合约的WASM字节码,部署至智能合约执行环境。
进一步地,一实施例中,所述可信智能合约实现装置,还包括编译模块,用于:
通过编译工具编译智能合约,生成智能合约的WASM字节码。
进一步地,一实施例中,所述可信智能合约实现装置,还包括交互模块,用于:
通过环境接口进行合约数据交互。
进一步地,一实施例中,所述可信智能合约实现装置,还包括远程认证模块,用于:
对智能合约执行环境、智能合约的WASM字节码和智能合约的执行结果进行远程认证,以供提升智能合约的安全性。
进一步地,一实施例中,所述环境接口以应用程序接口形式提供,所述合约接口以应用程序接口或网络接口形式提供。
其中,上述可信智能合约实现装置中各个模块的功能实现与上述可信智能合约实现方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
第三方面,本发明实施例提供一种可信智能合约实现设备。
参照图6,图6为本发明可信智能合约实现设备一实施例的硬件结构示意图。本发明实施例中,可信智能合约实现设备可以包括处理器1001(例如中央处理器CentralProcessingUnit,CPU),通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard);网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真WIreless-FIdelity,WI-FI接口);存储器1005可以是高速随机存取存储器(randomaccessmemory,RAM),也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图6中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图6,图6中作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及可信智能合约实现程序。其中,处理器1001可以调用存储器1005中存储的可信智能合约实现程序,并执行本发明实施例提供的可信智能合约实现方法。
第四方面,本发明实施例还提供一种可读存储介质。
本发明可读存储介质上存储有可信智能合约实现程序,其中所述可信智能合约实现程序被处理器执行时,实现如上述的可信智能合约实现方法的步骤。
其中,可信智能合约实现程序被执行时所实现的方法可参照本发明可信智能合约实现方法的各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者***不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者***所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者***中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种可信智能合约实现方法,其特征在于,所述可信智能合约实现方法应用于智能合约执行环境,所述智能合约执行环境包括合约接口、环境接口和WASM模块,所述合约接口包括合约调用接口,所述智能合约执行环境部署于可信执行环境,所述可信智能合约实现方法包括:
当合约调用接口接收到智能合约的调用请求时,WASM模块加载环境接口和智能合约的WASM字节码,创建WASM虚拟机实例;
WASM虚拟机实例通过环境接口获取智能合约的合约参数;
对合约参数进行解析得到合约方法和方法参数,使用方法参数,调用合约方法,得到智能合约的执行结果;
通过环境接口返回智能合约的执行结果。
2.如权利要求1所述的可信智能合约实现方法,其特征在于,所述合约接口还包括合约部署接口,在所述当合约接口接收到智能合约的调用请求时,WASM模块加载环境接口和智能合约的WASM字节码,创建WASM虚拟机实例之前,包括:
通过合约部署接口,将智能合约的WASM字节码,部署至智能合约执行环境。
3.如权利要求2所述的可信智能合约实现方法,其特征在于,在所述通过合约部署接口,将智能合约的WASM字节码,部署至智能合约执行环境之前,包括:
通过编译工具编译智能合约,生成智能合约的WASM字节码。
4.如权利要求1所述的可信智能合约实现方法,其特征在于,在所述调用合约方法之后,包括:
通过环境接口进行合约数据交互。
5.如权利要求1所述的可信智能合约实现方法,其特征在于,在所述得到智能合约的执行结果之后,包括:
对智能合约执行环境、智能合约的WASM字节码和智能合约的执行结果进行远程认证,以供提升智能合约的安全性。
6.如权利要求1所述的可信智能合约实现方法,其特征在于,所述环境接口以应用程序接口形式提供,所述合约接口以应用程序接口或网络接口形式提供。
7.一种可信智能合约实现装置,其特征在于,所述可信智能合约实现装置应用于智能合约执行环境,所述智能合约执行环境包括合约接口、环境接口和WASM模块,所述合约接口包括合约调用接口,所述智能合约执行环境部署于可信执行环境,所述可信智能合约实现装置包括:
创建模块,用于当合约调用接口接收到智能合约的调用请求时,WASM模块加载环境接口和智能合约的WASM字节码,创建WASM虚拟机实例;
获取模块,用于WASM虚拟机实例通过环境接口获取智能合约的合约参数;
调用模块,用于对合约参数进行解析得到合约方法和方法参数,使用方法参数,调用合约方法,得到智能合约的执行结果;
返回模块,用于通过环境接口返回智能合约的执行结果。
8.如权利要求7所述的可信智能合约实现装置,其特征在于,所述合约接口还包括合约部署接口,所述可信智能合约实现装置,还包括部署模块,用于:
通过合约部署接口,将智能合约的WASM字节码,部署至智能合约执行环境。
9.一种可信智能合约实现设备,其特征在于,所述可信智能合约实现设备包括处理器、存储器、以及存储在所述存储器上并可被所述处理器执行的可信智能合约实现程序,其中所述可信智能合约实现程序被所述处理器执行时,实现如权利要求1至6中任一项所述的可信智能合约实现方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有可信智能合约实现程序,其中所述可信智能合约实现程序被处理器执行时,实现如权利要求1至6中任一项所述的可信智能合约实现方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310338306.7A CN116342283A (zh) | 2023-03-31 | 2023-03-31 | 可信智能合约实现方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310338306.7A CN116342283A (zh) | 2023-03-31 | 2023-03-31 | 可信智能合约实现方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116342283A true CN116342283A (zh) | 2023-06-27 |
Family
ID=86889275
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310338306.7A Pending CN116342283A (zh) | 2023-03-31 | 2023-03-31 | 可信智能合约实现方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116342283A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116805947A (zh) * | 2023-08-21 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、设备及计算机可读存储介质 |
-
2023
- 2023-03-31 CN CN202310338306.7A patent/CN116342283A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116805947A (zh) * | 2023-08-21 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、设备及计算机可读存储介质 |
CN116805947B (zh) * | 2023-08-21 | 2023-11-10 | 腾讯科技(深圳)有限公司 | 区块链数据处理方法、装置、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109710384B (zh) | 一种安全的Java智能合约解释执行引擎及方法 | |
US8756616B2 (en) | System and method for reducing the static footprint of mixed-language JAVA classes | |
CN111770206A (zh) | 一种部署智能合约的方法、区块链节点和存储介质 | |
US20240054366A1 (en) | AI Application Deployment Method and Related Platform, Cluster, Medium, and Program Product | |
CN113688186B (zh) | 智能合约执行方法、引擎及区块链节点 | |
CN113407362A (zh) | 基于车载Android***SOA架构SOMEIP通信中间层实现方法及*** | |
US8141042B2 (en) | Extending portability of java code through the use of AOP | |
US20230297348A1 (en) | Method for operating second system application on first system, terminal device and storage medium | |
CN111651169B (zh) | 基于web容器的区块链智能合约运行方法及*** | |
CN111399840A (zh) | 一种模块开发方法及装置 | |
CN116342283A (zh) | 可信智能合约实现方法、装置、设备及可读存储介质 | |
CN111159301A (zh) | 一种基于智能合约的数据创建方法、装置、设备及存储介质 | |
CN114115884B (zh) | 一种编程服务的管理方法以及相关装置 | |
CN110888674B (zh) | 在Python虚拟机中执行安全计算的方法及装置 | |
US11803786B2 (en) | Enterprise integration platform | |
CN115442372A (zh) | 一种接口调用方法及应用其的微服务应用*** | |
CN115291933A (zh) | 小程序数据包构建方法、装置、设备及存储介质 | |
JP7073813B2 (ja) | 制御プログラム、制御方法および情報処理装置 | |
US20110321009A1 (en) | Implementing encryption via aspect oriented programming | |
CN114020278A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN114416219B (zh) | ***函数调用方法、装置、电子设备及可读介质 | |
CN117093286B (zh) | 插件生成方法、装置、设备及计算机可读存储介质 | |
US20240152387A1 (en) | Method, apparatus, electronic device and storage medium for application launch | |
CN111694730B (zh) | 一种消除错误引用控件资源的方法及装置 | |
CN116016625A (zh) | WebService接口的调用方法、装置、计算机设备和存储介质 |
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 |