【技术实现步骤摘要】
本专利技术属于区块链,具体的说,涉及一种基于可信执行环境的通用智能合约运行方法。
技术介绍
1、智能合约是一种传播、执行或验证合同的计算机协议,可以在没有第三方监管的情况下按照预设的条款自动执行,如今通常表示在区块链的多个节点上同步运行的代码脚本。区块链技术与智能合约的结合,借助智能合约可编程性简化了分布式节点的操作,发挥了智能合约在执行成本方面的优势,同时赋予了智能合约去中心化与不可篡改的特性。
2、以太坊虚拟机(evm)是以太坊智能合约的运行环境,支持以 solidity 为代表的图灵完备的编程语言,每个虚拟机作为一个实体在以太坊客户端中运行。在底层,以太坊虚拟机是一个基于堆栈实现的字节码解释执行系统;在上层,evm 与世界状态、区块信息、账户信息等进行交互。共识机制保证了这些虚拟机运行状态的一致性、持久性和连续性。以太坊平台上的大部分交易和操作都依赖于 evm 进行实现。
3、现有的 evm 在实际应用中面临以下问题:evm 采用 solidity 语言实现智能合约的编译与执行,作为非通用的领域特定语言,开
...【技术保护点】
1.一种通用编程语言智能合约的运行方法,其特征在于,其通过通用智能合约虚拟机模型实现通用编程语言编写的通用智能合约的运行;通用智能合约虚拟机模型包含以下三个功能层次:接口层、执行层和状态层;接口层提供虚拟机管理的接口以及所运行的智能合约管理的接口,执行层提供智能合约执行流程,包括处理输入输出和执行过程控制,状态层提供智能合约与区块链的交互机制,更新区块链的世界状态;包括以下步骤:
2.根据权利要求1所述的通用编程语言智能合约的运行方法,其特征在于,步骤(1)中,虚拟机实例包含以太坊状态数据库、当前区块链配置信息和虚拟机配置信息;上下文环境保存当前智能合约执
...【技术特征摘要】
1.一种通用编程语言智能合约的运行方法,其特征在于,其通过通用智能合约虚拟机模型实现通用编程语言编写的通用智能合约的运行;通用智能合约虚拟机模型包含以下三个功能层次:接口层、执行层和状态层;接口层提供虚拟机管理的接口以及所运行的智能合约管理的接口,执行层提供智能合约执行流程,包括处理输入输出和执行过程控制,状态层提供智能合约与区块链的交互机制,更新区块链的世界状态;包括以下步骤:
2.根据权利要求1所述的通用编程语言智能合约的运行方法,其特征在于,步骤(1)中,虚拟机实例包含以太坊状态数据库、当前区块链配置信息和虚拟机配置信息;上下文环境保存当前智能合约执行时所需要访问的区块信息、交易信息和账户信息。
3.根据权利要求1所述的通用编程语言智能合约的运行方法,其特征在于,步骤(2)中,虚拟机的执行层构建了用于智能合约的解析与执行的智能合约解释器,解释器运行智能合约解析流程的相关函数外,还定义了堆栈和内存结构,作为合约执行时传入参数与临时变量的存储。
4.根据权利要求1所述的通用编程语言智能合约的运行方法,其特征在于,步骤(3)中,虚拟机的状态层首先对智能合约交易中的价值进行转移与更新,然后通过修改存储默克尔树进行本地账户存储更新,最后通过修改状态树、交易树和收据树对世界状态进行更新,三种树的根节点包含在区块头的字段中。
5.根据权利要求1所述的通用编程语言智能合约的运行方法,其特征在于,运行过程中采用基于以太坊的智能合约互操作机制以保障智能合约与以太坊...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。