以太坊(Ethereum) 虚拟机 EVM

以太坊虚拟机(简写为 EVM)是执行智能合约代码的引擎。

以太坊虚拟机是一个完全隔绝外界通讯的沙盒。在以太坊中运行的智能合约不允许访问外部网络、外部文件系统,智能合约之间的访问也是受限制的。

可以用某种语言,例如Solidity语言,开发智能合约程序,编译成以太坊虚拟机支持的字节码/bytecode,然后该程序就可以在虚拟机中执行了。

以太坊虚拟机 EVM

以太坊虚拟机可以被看做是一个大型的分布式计算机。

以太坊以虚拟机为核心,支持开发各种应用程序,来充分挖掘区块链技术的应用场景和潜力。

以太坊网络中运行的应用,被称为分布式应用 – DApp。

 

1. EVM 的作用是什么

EVM 就是执行智能合约字节码指令的地方。通过 EVM 执行智能合约来完成符合约束条件的交易,从而改变账户状态,也使得世界态发生改变。

 

2. 什么时候用到 EVM

当发起对合约账户的消息调用(交易中的一种),需要执行合约账户中存储的智能合约时,就要用到 EVM。

 

3. EVM 的结构是什么

EVM 结构如下图所示:

以太坊 EVM 的结构

 

4. EVM 的执行流程是什么

EVM 执行模型如下图所示:

以太坊 EVM 执行模型

以太坊(Ethereum) 分布式应用 DApp:分布式应用(DApp)是运行在区块链之上的应用程序,支持区块链网络中用户之间的交互。DApp(decentralized application)的后端代码运行在区块链网络上,普通互联网应用的后端代码运行在集中式的服务器上。DApp可以使用任何语言编写前端代码和用户界面(就像普通应用程序一样),前端调用后端实现实现功能。