以太坊虚拟机原理简析
以太坊虚拟机(EVM)是以太坊区块链中的重要概念,也是其智能合约实现的重要组成模块。学习EVM有助于开发者加深对智能合约实现的理解,也有助于开发者学习使用汇编语言(Assembly)来对智能合约进行更精细和更复杂的操作,甚至实现Solidity语言原本无法实现的功能。本篇文章将简要概述用Solidity编写的智能合约如何被编译成字节码以及EVM如何对字节码进行执行和运算。
以太坊虚拟机(EVM)是智能合约的执行时环境,它是完全孤立的沙盒:运行在EVM中的代码无法访问网络、文件系统或其他进程。
创建智能合约
智能合约通常使用高级语言Solidity来进行编写,其代码风格类似JavaScript与C++。
/**
* Constructor function
*
* Initializes contract with initial supply and designate ownership
*/
constructor() public {
owner = msg.sneder;
balanceOf[<