以太坊虚拟机 EVM 的原理

作者:禅与计算机程序设计艺术

1.背景介绍

什么是EVM?

以太坊虚拟机(Ethereum Virtual Machine,简称EVM)是一个运行在以太坊区块链网络上执行智能合约、存储数据的软件。它负责部署、验证、执行智能合约的代码,并维护所有账户信息。用户可以通过发送交易数据到网络中请求执行智能合约。EVM是一个层级结构,包括硬件指令集和栈操作以及状态树数据库。

为什么需要EVM?

当前以太坊智能合约平台支持Solidity语言,可以进行编译成字节码文件,部署到区块链上运行。但是字节码只能由解释器执行,效率较低;同时多个智能合约之间存在相互调用,执行效率低下。因此,人们希望能够有一个高性能、轻量化、安全、易于扩展的EVM虚拟机,来实现智能合约的快速执行。而且EVM可以在不同编程语言间共享共同的状态树数据库,保证多种编程语言的一致性。

EVM有哪些特性?

目前,以太坊生态中已经支持的主要的智能合约编程语言有Solidity、Vyper、LLL和Serpent。除此之外,还有Plasma Cash、EOS VM等其他虚拟机平台正在推进。那么,这些虚拟机平台中的每一个,都有哪些特性呢?

Solidity

  • 源语言:Solidity是EVM上的一种最流行的智能合约编程语言。
  • 字节码:Solidity编译器将Solidity代码编译生成四个字节码文件: .abi.json、 .bin、 _metadata

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/133759123