查看原文
其他

有了 Substrate EVM ,以太坊智能合约可以直接在 Substrate 链上运行了

Zach Cavanaugh PolkaWorld 2019-12-11

加入 www.polkaworld.org 社区,共建 Web 3.0!

太长不读版:Substrate EVM(以太坊虚拟机)将允许在基于 Substrate 的区块链(包括 Polkadot 平行链)上部署未经修改的 Solidity 代码,将 Substrate 和 Polkadot 向预先存在的以太坊智能合约开放,并有可能通过转接桥与以太坊主网连接。

本文来源:Parity 官方博客

翻译者:Silvia(PolkaWorld 超级探员)

原文:https://www.parity.io/substrate-evm/



Substrate EVM 与波卡至以太坊的兼容性


Polkadot 在最初的概念上就被预想为全异的却又互联的区块链,其设计的核心是可兼容性和互操作性。通过在一个共享的生态系统中桥接多样化的社区、经济体和企业,Polkadot 为互联的、去中心化网络和 DApps 的未来发展建立了一条康庄大道。这不仅仅包括 Polkadot 原生的公有链、私有链和联盟链,也包括预先存在的网络。特别是与以太坊的兼容性从第一天开始就已经成为了 Polkadot 路线图的一部分,这方面早在 Polkadot 白皮书的首段就已经被讨论过。


随着 Substrate (模块化,可扩展的区块链框架)的发展,我们正在使构建定制区块链和 Polkadot 平行链变得前所未有的容易。Substrate Runtime Module Library(SRML) 提供了基于 Substrate 的区块链的基本构建块,并包含了针对特定目的的区块链的所有不可或缺的功能。SRML 内包含的各种模块中包括“合约”模块,其被设计用于在任何基于 Substrate 的链上执行“原生”  Wasm 智能合约。


尽管 Substrate 自带的基于 Wasm 的原生合约模块有许多优势,包括本机速度执行、有深度的和成熟的工具、平台的独立性以及用多种语言进行合约编写的能力。当前支持的项目中有代表性的案例或许已经用 Solidity 代码为以太坊的原生 EVM 搭建好了一个意义非凡的代码库。此外,Parity Technologies 是以太坊生态系统的长期支持者和构建者,我们希望在“区块链2.0”升级到“3.0”的过程中,继续向在 Parity 平台上搭建项目的团队提供技术支持和基础设施。


作为这一持续支持的一部分,同时也为了确保 Substrate 和 Polkadot 保持对更繁荣的 DApp 社区尽可能的包容性,我们为 SRML 构建了 EVM 实现。



Substrate EVM


Substrate EVM 是一个 SRML 模块,它为运行在基于 Substrate 的区块链上的未经修改的 Solidity 代码,提供了一个 “本机” EVM 执行环境。本质上,Substrate EVM 将允许包括 Polkadot 平行链在内的基于 Substrate 的区块链,在链上托管一个以太坊状态转换功能的几近完成的实例,以及定制功能所需的任何额外的 Substrate 模块。


现有的 Solidity 应用程序可以在该环境中被部署和被执行,并且作为一个基于 Substrate 的区块链的一部分将获得附加福利。这些福利包括与其他 Substrate 模块的集成连接到更广阔的 Polkadot 网络中的可能性,从而不仅可以与其他 Polkadot 平行链,也能够通过桥接与包括以太坊主网在内的外部区块链实现互操作性。


借助定制的 “预编译合约” APIs 可以实现与其他 Substrate 模块的互操作性,这将会放宽全部的基础 SRML 功能,包括模块之间的调用、余额转账以及链间消息传递。


我们预期 Substrate EVM 能够执行所有的常规 EVM 交易指令(消息调用、创建合约的交易),并与运行在以太坊主网中时相比能得到相同的结果。这包括燃料费,当前已将其为伊斯坦布尔硬分叉配置(以后可扩展为向后兼容早期的硬分叉配置)。


Substrate 以太坊虚拟机模块和以太坊主网虚拟机的不同之处首先包括通过系统模块获取的区块的哈希值。根据系统模块的配置,可用的哈希长度或许为256。其次,由于 difficulty 和 coinbase 在此情况下不相关,在 Substrate EVM 中已将它们硬编码为 0。此外,基础的 EVM 引擎( SputnikVM )已为其更具模块化做了修改,这将使我们能够给予用户置换和定制单个组件(例如燃料费量计)的能力以满足他们的应用程序的特定需求。


凭借着基于 Substrate 的区块链可以在单个 SRML 模块中本质上托管整个以太坊区块链的能力,Solidity 应用程序可以与其他模块互操作,例如 Substrate 的原生智能合约模块、治理以及 Polkadot 平行链,从而为革新开创了一片新的领域。



其他的以太坊支持


Substrate EVM 只是拓展波卡至以太坊兼容性的元素之一。在最初的 Polkadot 白皮书中曾首次提出, 波卡至以太坊公共桥将允许 Polkadot 平行链连接以太坊主网以实现基本的互操作性,而一个 Substrate 到 Parity-Ethereum POA 的转接桥将允许在 Parity 以太坊上搭建的任何以太坊 POA 区块链与一个 Substrate SRML 模块(因此可能访问 Polkadot 网络)建立联系。


此外,我们正致力于为 Solidity 编译器研发一个与 Substrate 兼容的 WebAssembly 后端,这将允许预先存在的 Solidity 代码直接部署到一个 Substrate 智能合约模块中而不再是部署到一个 Substrate EVM 模块中。


关于 Substrate 和 Substrate 以太坊虚拟机的更多信息,请访问 Substrate 开发者中心:

https://substrate.dev/docs/en/next/conceptual/runtime/contracts/evm_module


本周日  Substrate 智能合约开发工作坊

点击下方卡片报名⬇️

更多内容:


如果比特币有了智能合约......

Substrate 设计总览(三)—— Substrate 入门参考

教程 | 用 Substrate 做一个简单的 Roguelike 游戏


扫码关注公众号,回复 “1” 加入波卡群

关注 PolkaWorld

发现 Web 3.0 时代新机遇


点个 “在看” 再走吧!

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存