[发明专利]基于EVM与Wasm虚拟机的多语言智能合约兼容方法及系统在审
申请号: | 202011533338.5 | 申请日: | 2020-12-22 |
公开(公告)号: | CN112527466A | 公开(公告)日: | 2021-03-19 |
发明(设计)人: | 汤勇 | 申请(专利权)人: | 上海万向区块链股份公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455 |
代理公司: | 上海段和段律师事务所 31334 | 代理人: | 李佳俊;郭国中 |
地址: | 200086 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 evm wasm 虚拟机 语言 智能 合约 兼容 方法 系统 | ||
本发明提供了一种基于EVM与Wasm虚拟机的多语言智能合约兼容方法及系统,包括:底层协议通过预设配置开启协议所支持的虚拟机类型,当虚拟机类型为兼容模式时,则在合约层根据预设规范编写多虚拟机语言合约互调用的代码;在虚拟机支持的相应合约中,通过call方法对除虚拟机支持的相应合约外的目标合约发起调用;在底层链中解析调用参数,得到被调用的目标合约地址和目标合约信息;根据目标合约地址获得目标合约的字节码,根据目标合约字节码判断目标合约的类型;根据目标合约的类型,底层链切换虚拟机类型,执行相应合约,得到执行完后的返回值;对执行完后的返回值进行编码转换,得到发起方合约能够识别的编码类型。
技术领域
本发明涉及区块链技术领域,具体地,涉及基于EVM与Wasm虚拟机的多语言智能合约兼容方法及系统,更为具体地,涉及一种基于EVM与Wasm虚拟机的多语言智能合约兼容方案。
背景技术
结合区块链技术的行业应用往往以DAPP的形式呈现,而DAPP需要建立在区块链之上。以联盟链的场景为例,合约开发者需要在此联盟链之上建立DAPP应用,现有的绝大部分区块链底层协议只支持EVM或者只支持Wasm的智能合约,合约开发者往往需要学习此联盟链支持的智能合约语言,才能进行后续的DAPP开发,这需要花费一定的语言学习成本,同时也需要了解此联盟链的合约生态工具,而这往往对大部分开发者照成了一定的阻碍,同时也不利于联盟链的灵活使用场景。当此联盟链同时兼容EVM和Wasm虚拟机之后,则此问题迎刃而解,合约开发者无需花费额外的学习成本,从而极大提高合约编码的友好度,同时融合solidity与Wasm合约开发者生态。
本发明解决了EVM与Wasm合约开发者生态分裂的问题。EVM合约开发者熟悉Solidity语言智能合约,以及Solidity开发组件,而Wasm合约开发者则熟悉C++、Rust等语言的智能合约,以及对应Wasm合约开发组件。由于现有的区块链协议往往只支持EVM或者只支持Wasm,所以很难同时吸引两方开发者在其协议之上进行开发,为其协议完善应用生态。
本发明打通了Solidity与C++、Rust等Wasm虚拟机智能合约互调用的壁垒,实现不同虚拟机所支持的合约语言可以同时运行在一个区块链底层协议之上,并且以开发者极为友好的方式实现多语言合约相互兼容和调用。克服的难点包括:Solidity代表的EVM智能合约与C++、Rust等Wasm智能合约执行需要不同虚拟机解释器进行运行,难点在于如何自动化完成不同虚拟机之间的切换。如何在实现不同虚拟机多语言合约互调用的功能上,尽可能的降低合约开发者的学习以及迁移成本。本方案对于合约开发者来说,没有额外的学习和适应成本,也并未改变Solidity与C++等合约原生接口,合约开发者可以无缝迁移。
专利文献CN111736954A(申请号:202010589506.6)公开了一种多智能合约虚拟机实现方法、多智能合约虚拟机及系统。该多智能合约虚拟机实现方法包括:获取智能合约及与智能合约相关的参数;根据智能合约及与智能合约相关的参数确定智能合约对接的虚拟机控制器;将智能合约输入至与智能合约对接的虚拟机控制器,并监控智能合约的执行状态;编译智能合约,输出与智能合约相应的中间字节码文件;根据中间字节码文件按照预设指令标准生成机器码。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于EVM与Wasm虚拟机的多语言智能合约兼容方法及系统。
根据本发明提供的一种基于EVM与Wasm虚拟机的多语言智能合约兼容方法,包括:
步骤M1:底层协议通过预设配置开启协议所支持的虚拟机类型,当虚拟机类型为兼容模式时,则在合约层根据预设规范编写多虚拟机语言合约互调用的代码;
步骤M2:在虚拟机支持的相应合约中,对除虚拟机支持的相应合约外的目标合约发起调用;
步骤M3:在底层链中解析调用参数,得到被调用的目标合约地址和目标合约信息;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海万向区块链股份公司,未经上海万向区块链股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011533338.5/2.html,转载请声明来源钻瓜专利网。