区块链100问|区块链2.0|56、什么是以太坊虚拟机?

我最近在重新学区块链,巩固一下细节,也收集一个“区块链100问”,供小白们使用(大佬可以另找教程),每天更新1-2个。

推特:0x00pluto


虚拟机指的是,通过软件模拟的、具备完整硬件系统功能并运行在隔离环境下的完整计算机系统;比如虚拟化物理机VMware、Java虚拟机等。而以太坊虚拟机(Ethereum Virtual Machine,EVM)则是建立在以太坊区块链上的代码运行环境,其主要作用是处理以太坊系统内的智能合约。

简单来说,以太坊虚拟机是一个完全独立的沙盒,合约代码可对外完全隔离并在EVM内部运行。由于EVM分散储存在每个节点的计算机上,所以希望创建智能合约的公司可使用类似JavaScript和Python等编程语言创建运行于EVM的应用程序;同时以太坊虚拟机又能与主网的其余部分隔离,运行时不影响主区块链的操作。出于这个原因,以太坊有时被形容为“世界电脑”。

为了减少资源耗费及保证系统性能,以太坊虚拟机并没有采用模拟完整计算机的模式,而是使用更为轻量级的虚拟机构架。其开发者团队表示,EVM设计的目标是构建具有简单性、确定性、容易优化、节省空间、确保安全等属性且专用于区块链的系统。此外,2017年召开的Devcon3会议上,以太坊开发者还推出了基于以太坊电子分布式代码合约的高级程序语言Solidity,希望借此进一步扩大该技术的应用范围。

理论上以太坊是图灵完备的,其虚拟机为智能合约的实现提供了基础,可实现任何复杂程度的操作。不过它同时也存在着缺陷,比如EVM常用的Solidity语言缺乏标准库、基于栈的架构易于优化但所需opcode更多等。而QTUM推出的量子链x86虚拟机则是由EVM衍生出、旨在修改后者不足的虚拟机。

Subscribe to 0x00pluto
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.