注册
关闭
Hanada

Hanada

发布于 2021-05-18 阅读数 2861

Rocket Protocol虚拟机技术(一):优化并兼容EVM

区块链系统中的虚拟化代表着一个关键阶段 – 从公链到商业逻辑的开发和迁移服务。在这个关键阶段中,大多数正在开发运行的区块链项目都在使用现有的公共账本。然而,很多项目需要的是定制化解决方案,用以确保业务产品和服务的灵活性以及安全性。

当前行业缺陷

区块链技术的验证机制要求矿工验证各个区块中的数据。比特币的去中心化数据库通常被称为“账本”,在比特币网络中,所有矿工必须验证“账本”中的交易明细以及呈现在各个地址中的结果。而在以太坊网络中,由于智能合约的存在,矿工除了要验证以太坊账本,矿工还需要根据智能合约代码来验证智能合约计算结果。这些智能合约的代码需要一个系统来运行它,这个系统就是“虚拟机”。以太坊智能合约计算器是以太坊虚拟机(EVM)。随着虚拟机的使用变得越来越普遍,区块链领域已经开始从比特币帐户共识过渡到智能合约过程共识的时代。

然而,以太坊虚拟机(EVM)只是实现智能合约的一种方法,尽管它现在已经为业界所普遍认可,但是运行智能合约的其他方法也客观存在,并且可能是更好的选择。因此,以太坊网络不是基于以虚拟机为中心的区块链技术。也正因如此,虚拟机的体系结构相对简单且效率低下。我们来详细解释一下原因。

由于区块链虚拟机技术本身比较难以实现,因此与传统虚拟机相比,当前的EVM运行效率比较低下。EVM遗留了其运行模型中的许多功能和关键组件未执行,迫使了语言设计人员去手动实现它们。 EVM放弃了标准VM的定义特征,例如调度、代码自省和提供标准库,这导致执行环境昂贵、缓慢且不安全。

显然,这只是以太坊虚拟机面临的问题之一。除此之外,EVM还缺少标准库支持,并且缺少适当的工具集。但是,本文主要关注EVM设计框架以及Rocket Protocol(中文名:火箭协议)如何对此提出解决方案。

EVM设计框架存在的问题 

EVM设计框架中的缺陷导致其运行智能合约的效率低下。硬件运行代码时,需要将文字格式的代码逐步转换为硬件可以理解的二进制代码。

EVM使用的机器代码长度为32个字节。与4–8字节的Java虚拟机相比,32字节的EVM的机器代码运行速度会相对较慢;EVM本身不支持小数点计算,使得其计算精度较低,无法实现更多需要更高精确度的功能;EVM使用哈佛计算机结构,这意味着:每当虚拟机需要验证智能合约结果时,它都必须在开始计算之前临时检索并调取区块中的智能合约代码以及用于计算的数据。如果可以有类似内存的空间来存放智能合约的代码,虚拟机将不需要在每次计算之前重复请求和读取数据,在这种情况下,它的运行效率会大幅度提高。

Rocket Protocol解决方案

EVM兼容

Rocket Protocol将兼容并优化现有以太坊虚拟机的性能,以优化智能合约的编写难度以及运算能力。

Rocket Protocol已经与EVM的Solidity语言完全兼容。Solidity目前已成为以太坊编程语言的事实标准。许多优秀的FT(Fungible Tokens,同质化通证),NFT(Non-Fungible Tokens,非同质化通证),DeFi(去中心化金融)以及其他相关合约都是基于EVM智能合约发展出来的。Rocket Protocol理所应当去传承这些区块链技术的优质基因。

在Rocket Protocol中,我们认为应用级兼容性包括两个方面:

  • 代码兼容

  • 数据兼容

 代码兼容意味着当前的开发者无需学习掌握更多新的代码知识。相反,他们可以使用已经部署到Rocket Protocol的现有代码库,包括现有的智能合约和前端应用程序代码。数据兼容意味着已经在以太坊上运行的合约中的数据(ERC20和ERC-721标准)可以迁移到Rocket Protocol中。

EVM兼容的技术部署已接近尾声,最快将在今年第三季度通过Rocket Protocol的跨链解决方案实现。

REVM

Rocket Protocol的另一个解决方案 – Rocket Ethereum VM(REVM)将Rocket Protocol及其EVM兼容这一技术特性提升到了新的高度:REVM允许原始的以太坊合约直接迁移到Rocket Protocol上,无需重新编译即可使用。与以太坊开发工具链一样,Rocket Protocol也提供工具链,例如Remix(用于开发、调试以及部署Solidity合约的浏览器内部编辑器)以及MetaMask(用于与以太坊区块链交互的加密货币钱包),以支持开发、编写和部署智能合约。

REVM在与EVM兼容的同时,也将跨链和NFT协议之类的操作进行抽象化并写入智能合约成为新的智能合约关键字。它引入了Rocket Protocol自定义关键字来完成Rocket Protocol功能,例如只需一句代码即可完成跨链和NFT协议。在智能合约中使用这些关键字的开发者可以享受Rocket Protocol带来的独特的可组合性和可操作性。

REVM用于编译使用这些关键字生成可用字节码的Rocket Protocol智能合约。智能合约的迁移基于交易和ABI(应用程序二进制接口)系统,该系统定义了如何在机器代码中访问资产协议或计算程序。此外,在Rocket Protocol中,执行智能合约所需的GAS费可以通过多方进行支付:合约调用方或合约发行方。

结论

目前,EVM设计框架缺陷导致许多问题产生,导致用户体验不佳和效率低下,且无法迅速解决。在总结以太坊经验教训的基础上,Rocket Protocol更加重视为开发者提供更快、更安全的体验。Rocket Protocol是一个区块链基础设施,不仅与EVM的Solidity语言完全兼容,也将跨链和NFT协议抽象为新的智能合约关键字,以实现更好的可组合性和可操作性。但是,由于它继承了Solidity语言,因此难以避免在Rocket Protocol内部也附带Solidity语言的缺陷,例如缺乏标准库支持。在下面的文章中,我们将介绍REVM如何解决由Solidity引起的问题。

关于Rocket Protocol

Rocket Protocol是由MixMarvel孵化的面向未来虚拟世界的区块链基础设施。目前,Rocket Protocol已升级到2.0版本。作为可以实现EVM体系多链合约级互操作的高性能链群,Rocket Protocol 2.0融合了跨链协议、NFT协议以及EVM协议,并在此基础上进行了扩展,使得开发者能够自由地创建适配各种场景的复杂去中心化应用,同时给予用户近似互联网应用般的体验。

  • 0
Hanada
Hanada

0 条评论