[发明专利]一种基于Webassembly字节码的智能合约虚拟机在审
| 申请号: | 202111658402.7 | 申请日: | 2021-12-30 |
| 公开(公告)号: | CN114327778A | 公开(公告)日: | 2022-04-12 |
| 发明(设计)人: | 陈钟;李青山;高健博;任立峰;郝嘉琨 | 申请(专利权)人: | 博雅正链(北京)科技有限公司;博雅正链(重庆)科技有限公司;南京博雅区块链研究院有限公司 |
| 主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/48;G06F8/76 |
| 代理公司: | 沈阳东大知识产权代理有限公司 21109 | 代理人: | 李梁 |
| 地址: | 100031 北京市西*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 webassembly 字节 智能 合约 虚拟机 | ||
本发明提供一种基于Webassembly字节码的智能合约虚拟机,涉及区块链智能合约技术领域。该虚拟机包括用于执行wasm字节码,执行导出函数执行导入函数,调用虚拟机内置函数的wasm字节码执行模块;提供智能合约代码和区块链交互功能函数,读写虚拟机运行时数据的功能函数,用智能合约实现的功能函数的内置函数模块;负责缓存智能合约在执行过程中的运行时数据的数据维护模块;负责缓存智能合约执行过程中的读写记录,根据写集记录对多个交易的读写集之间的读写冲突关系进行检查以及根据读集记录通过虚拟机外部交互接口对区块链状态进行更改的读写模块。本发明的智能合约虚拟机避免了为多种语言开发多套冗余的智能合约虚拟机。
技术领域
本发明涉及区块链智能合约技术领域,尤其涉及一种基于Webassembly字节码的智能合约虚拟机。
背景技术
随着区块链技术的发展,有着不同架构随着区块链技术的快速发展,各种面向不同组织机构、不同应用场景的区块链不断层出不穷。智能合约虚拟机是区块链中一个重要的模块,不同的链都需要针对自己链的特性,定制智能合约虚拟机。但是从零开发一个智能合约虚拟机并设计配套的智能合约编程语言耗时耗力;最常被使用的以太坊虚拟机又与以太坊耦合过于紧密,难以解耦移植。因此,需要设计一种易于扩展和移植的智能合约虚拟机。
Webassembly是一种新型的字节码格式,设计的目标是为了加快web端javascript的运行速度。Webassembly(简称wasm)支持了LLVM后端,可以由多种高级语言编译出wasm字节码。Wasm的结构化控制流结构便于进行形式化验证,具有有着极高的安全性,wasm字节码适合作为EVM字节码的替代。
用于执行wasm字节码的运行时,可以通过解释执行或编译执行的方式执行wasm字节码,两种方式都有着很高的执行速度。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于Webassembly字节码的智能合约虚拟机,该虚拟机可以快速的进行移植和扩展以支持不同架构的区块链,有着很好的可移植性和可扩展性。
为解决上述技术问题,本发明所采取的技术方案是:一种基于Webassembly字节码的智能合约虚拟机,包括wasm字节码执行模块、内置函数模块、数据维护模块和虚拟机读写模块;
所述wasm字节码执行模块用于执行wasm字节码,执行导出函数执行导入函数,调用虚拟机内置函数;
所述内置函数模块提供智能合约代码和区块链交互功能函数;读写虚拟机运行时数据的功能函数;用智能合约实现的功能函数;
所述数据维护模块负责缓存智能合约在执行过程中的运行时数据;
所述读写模块负责缓存智能合约执行过程中的读写记录;负责根据写集记录对多个交易的读写集之间的读写冲突关系进行检查;负责根据读集记录通过虚拟机外部交互接口对区块链状态进行更改。
优选地,所述智能合约虚拟机和区块链间的通信协议选用http或rpc协议,智能合约虚拟机和区块链间的调用接口定义为语言交互接口(Foreign Function Interface,即FFI),并把智能合约虚拟机编译为静态链接库,避免通信延迟造成的效率损失;所述语言调用接口(FFI)是一种跨语言调用的接口规范,将虚拟机的调用接口编译成FFI就能支持任何语言对虚拟机进行调用。
优选地,将智能合约虚拟机和对应的多个区块链节点分别部署到不同的机器,设置区块链节点使用rpc或http通信协议与智能合约虚拟机服务进行通信,转发执行交易的请求,获取执行结果,以实现多个区块链节点共用一个智能合约虚拟机。
优选地,所述智能合约虚拟机通过wasmi、wasmtime、wasmer三种字节码执行器执行wasm字节码,分为编译执行和解释执行两种类型。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于博雅正链(北京)科技有限公司;博雅正链(重庆)科技有限公司;南京博雅区块链研究院有限公司,未经博雅正链(北京)科技有限公司;博雅正链(重庆)科技有限公司;南京博雅区块链研究院有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111658402.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种耐酸复合转轮及其制备方法与应用
- 下一篇:一种滤芯的清洗方法





