以太坊的“换心手术” 一文读懂EVM接棒者
2022-05-30 14:15:09 小编 人浏览

以太坊的“换心手术” 一文读懂EVM接棒者

引言:随着越来越多的应用部署在以太坊网络上,我们对扩展不可能三角(可扩展性、安全性和效率)的边界有了更强烈的需求。

具体来说,制约不可能三角的因素主要是共识机制(consensus protocols)、转账签名(transaction signing)和执行引擎(execution engine)。

对于以太坊而言,目前的执行引擎或者说是整个协议架构的执行层就是以太坊虚拟机(EVM),这是一种基于栈(Stack)的执行环境,通过运行字节码指令(bytecode instruction)将系统从一种状态转换为另一种状态,驱动着整个以太坊的运转。

随着链上部署的应用越来越多,合约的功能越来越复杂,提高虚拟机的执行效率就显得尤为重要。

以太坊的“换心手术” 一文读懂EVM接棒者

图片源:以太坊架构

WebAssemly(WASM),作为近年来兴起的Web执行环境,是一种为基于栈的虚拟机设计的的二进制指令格式。相对JavaScript,拥有更好的性能、较低的存储成本、更安全的执行环境、更多的语言支持等优势。

以太坊2.0,正是想利用这些特性把当前的EVM替换成以太坊定制的WASM (eWASM) ,来提升智能合约的兼容性和执行效率。

因为相比于EVM,eWASM具有更好的性能以及更好的扩展性,可以支持Solidity、C++、Rust、AssemblyScript等编程语言,开发合约会更容易。eWASM也与当前的Web标准兼容,因而更容易在普通浏览器中运行,用户无需扩展程序即可访问dApp。

此外,以太坊并不是唯一一个使用WASM(VM)作为其底层执行引擎的,EOS、Dfinity、Polkadot、Tron、Cardano、Spacemesh等都已经或正在采用 WASM。

接下来,我们想通过三个问题,来帮助大家初识以太版WASM——eWASM

1.现有的EVM存在什么问题,为什么寻求WASM替代EVM?

2.什么是WASM(WebAssemly)?

3.以太坊是如何“定制”自己的WASM,使其成为eWASM的?

现有的EVM存在什么问题

为什么寻求WASM替代EVM?

首先我们先来回顾一下EVM执行智能合约的过程。

智能合约的源码(.sol 或 .vy)在被编译(compile)成字节码(EVM bytecode)后才会被放在区块链上。具体来说,EVM字节码被存储在合约地址的存储层中,在被EOA或其他合约调用后会被放入EVM的虚拟只读存储器中(Virtual ROM),再使用CODECOPY指令复制到主存储器(Main Memory)中。最后,EVM的栈会根据主存储器中的指令一步一步地执行,直到EVM停机或者Gas被耗尽。

本资讯链接: - 外星视界
声明:本文版权归原作者所有,发布此文为传递更多市场信息,不代表外星视界的观点和立场,请自行参考。如作者信息标记有误,请第一时间联系我们处理!

回顶部