以太坊虚拟机是什么以及它是如何工作的?

2025 年 4 月 10 日 | 阅读 5 分钟

以太坊虚拟机(EVM),由 Gavin Wood 在比特币公司工作期间创建,是比特币平台广受欢迎的原因,成为 DApp 程序员的首选账本。 以太坊网络最初由科学家 Vitalik Buterin(也称为 Buterin)于 2013 年构思。EVM 是一个独立的、持续运行的状态引擎,使用 LLVM 项目的翻译器以 C++ 编写。以太坊网络中的每个区块都由其不可逆的操作决定。

EVM 规定了从区块到区块修改状态的精确规则。此外,它还规范了网站在以太坊网络维护的共享账本方面被允许进行的各种操作。加密货币因其智能合约功能而闻名,这正是由这一特定功能实现的。

要理解比特币机器在维护网络基础设施的持续运行方面所起的各种作用,必须仔细考察所有这些作用。EVM 为其接收的每个参数生成一个可预测的结果,最基本的意义上,它匹配一个代数公式。

EVM 包含 1024 个元素,每个元素都是一个 256 位字,它类似于一个堆栈机,将临时数据推入和弹出水平的下推栈。此外,在两个基于区块链的操作过程中,它会更新其字节数组形式的短期内存。除了实现额外的区块链特定堆栈活动外,EVM 还以一组 140 个标准函数的形式执行已编写的智能合约脚本。

What is Ethereum Virtual Machine and How Does it Work?

因此,EVM 具有一个国际或全球上下文,其中包含以太坊分布式账本中存储的各种银行的信息,还有一个计算机上下文,它在执行任何事务时自然是不稳定的。

自 2015 年以太坊数字货币网络成立以来,其代码(控制所有操作)已经经历了多次修订,从而产生了目前正在使用的各种 EVM 版本。

EVM 实际上负责在运行的脚本与众多加密货币节点之间保持一定程度的抽象,充当一个接口,在向用户或网络提供大量信息的同时产生准确的结果。

以太坊虚拟机(EVM)的实际功能是什么?

没有观察到重大的宕机事件,EVM 在支持以太坊平台上的所有应用程序方面似乎都非常可靠。EVM 作为主要应用程序运行,它执行可读性较低的应用程序以及加密货币中的“智能合约”。它还赋予程序员使用多种其他编程语言(如 Unity、Vyper、Python 编程语言以及 Yul 等)创建这些智能合约的灵活性。

部分归功于 EVM 提供的自由度,以太坊网络已经催生了众多 DApps,包括非同质化代币(NFT)和去中心化金融领域。然后,每个 DApp 生成的二进制代码以及它们包含的智能合约功能会被发送到以太坊网络中的任何节点,并由 EVM 进行处理。

当启动智能合约并就协议达成一致后更改其状态时,EVM 负责与每个节点进行交互。

通过将 EVM 插入每个区块链节点,可以使用字节码而不是标准编程语法来执行智能合约,从而将主机软件与其比特币软件分离开来。

以太坊虚拟机(EVM)的优点

  1. 由于 EVM 的工作方式,程序员可以在不担心其代码会如何影响整个网络,或者是否会干扰存储在每个节点机器上的信息或私人文件的情况下运行代码。
  2. 组织还可以使用共享协议在多个计算平台之间执行复杂的智能协议。由于 EVM 代码在节点之间是相同的,因此它确保了一个节点的丢失不会影响 DApp 和智能合约的运行方式。
  3. 由于 EVM 维护着全球账户的信息,程序员认为它非常适合设计可以利用这一全球信息集并生成可靠结果的独特 DApps,以及开发定制的智能合约逻辑。
  4. 由于结果的神圣性,整个以太坊网络,特别是 EVM,都适合 DApps 和以太坊智能合约环境的长期发展。
  5. 考虑到程序员可以选择的标准代码集、与 EVM 可互操作的不断增长的第 2 层数字货币数量,以及众多的潜在 EVM 实例,可以很容易地理解为什么 EVM 已成为 Web3 编程的首选框架。

以太坊虚拟机(EVM)的局限性

尽管 EVM 具有许多优势,但从事以太坊开发和业务的人员仍需考虑一些缺点。

  1. 其中最大的缺点是,在以太坊平台上执行智能合约需要支付高昂的交易费用或燃料费。
  2. 由于费用以以太坊支付,并且根据协议的难度以及执行时的网络流量而波动,因此开发者和企业主必须相应地为他们提供的服务定价。
  3. 此外,由于 Solidity 是 EVM 编程的主要语言,程序员必须精通它,并拥有特定的专业知识才能通过它设计有效的智能合约。
  4. 最后一个因素至关重要,因为任何额外的计算需求都会提高 Gas 价格,最终会损害项目的可持续性。
  5. 决定使用其他语言编写代码的开发人员必须谨慎消除源代码中可能存在的任何重复项,因为 EVM 仍会执行这些重复项。
  6. 尽管将来可以修改智能合约,但创建指定初始智能交易位置的二级智能合约存在安全问题。

EVM 的未来

尽管 EVM 对比特币环境进行了巨大的改进,但许多区块链项目仍在努力改进其代码的理解和执行方法。由于程序员最看重与其他链的兼容性,因此出现了许多 EVM 兼容的数字货币,其中大多数通过一种称为以太坊的协议提供更低的燃料费用和更高的交易速率。因此,这些分布式账本现在可以轻松地与使用以太坊的个人进行通信,并利用区块链连接在各自的系统内发送付款。

然而,随着以太坊协议在 2022 年 9 月完成合并,转向比特币 WebAssembly (eWASM) 可能是一个潜在的目标。eWASM 被描述为以太坊协议的下一个重大发展,因为它具有高度灵活和跨平台的布局,这可能会鼓励其他区块链在智能合约中也使用这种运行框架。

eWASM 在多大程度上会超越 EVM 成为一种高度可靠的智能合约技术,还需要一些时间来确定。