launchkit

您已加入 🚀

以太坊虚拟机:为何这个昂贵缓慢的系统值4000亿?
Web3 词汇
以太坊虚拟机:为何这个昂贵缓慢的系统值4000亿?
了解以太坊虚拟机如何在 100 多条区块链上执行智能合约。探索 EVM 架构、Gas 机制、EVM 等效性与兼容性,以及为什么这个缓慢、昂贵的计算机能支持一个价值 4000 亿美元的生态系统。

以太坊虚拟机的特点是:它的优化目标与大多数计算机截然不同。普通计算机的目标是提高速度,而 EVM 的目标是达成共识。

当你设计的计算机需要数千个独立节点来执行相同的任务,并且每次都必须得出完全相同的结果,而不需要协调时,你会得到一些看似荒谬的约束。256 位字到处都是。基于堆栈的架构。每次操作都有 Gas 计量。每秒执行数千次操作,而不是数十亿次。

但这些限制解决了传统计算机从未面临的问题:如何在没有人掌管的情况下运行价值数千亿美元的金融应用程序?如何保证代码的执行完全符合编写内容,没有任何被审查、操控或关闭的可能?

EVM 就是答案。它支持以太坊、Polygon、Arbitrum、Optimism、BNB Chain、Avalanche 和其他 100 多条区块链。它保障了超过 4000 亿美元的价值。每天处理数十亿的金融交易。理解 EVM 的设计初衷揭示了区块链实际运行的一切。

一个纯共识构成的计算机

以太坊虚拟机是一个计算引擎,在以太坊和 EVM 兼容的区块链上执行智能合约。它就像一个全球计算机,任何人都可以通过支付 Gas 费用来使用,没有人可以关闭或审查,并保证确定性的执行。

当你与 dApp 交互 - 比如在 Uniswap 进行代币交换,借用 Aave,或者铸造 NFT - 其实是与运行在 EVM 上的智能合约交互。

它是虚拟的——EVM 不是物理硬件。它是一个由数千个独立节点在软件中实现的规范。

它是确定性的。给定相同的初始状态和交易,每个 EVM 产生的结果完全相同。

它是隔离的。智能合约在一个沙盒中运行,没有对区块链外部的访问。

它是昂贵的。每个操作都需要耗费“Gas”——一种防止无限循环的计量系统。

EVM 是为共识而非速度而设计的。

EVM 的实际工作原理

EVM 是一个基于堆栈的虚拟机。堆栈是一个先进后出的结构,最大深度为 1024 个项目。每个项目是一个 256 位字。操作从堆栈中取值,执行动作,然后将结果推回堆栈。

内存是临时用来执行操作的擦拭空间。存储是跨交易持久的键值数据库。这是智能合约存储余额和所有权的地方。它是昂贵的——写入存储是最昂贵的操作之一。

以下是执行流程。一个交易携带调用数据和 Gas 到达。EVM 加载智能合约字节码,指令逐个执行,每个操作扣除 Gas。成功完成后,状态发生变化。如果执行失败,状态回滚。

每个节点都以相同的方式执行。这就是共识——每个人都同意发生了什么。

Gas: EVM 的燃料系统

每个 EVM 操作都需要 Gas——计算工作的度量。举例来说:ADD 操作耗费 3 Gas,读取存储耗费 2100 Gas,首次写入存储耗费 20000 Gas。

存储操作的昂贵是故意设计的——区块链必须永远在成千上万个节点中存储这些数据。

您需要指定 Gas 上限和 Gas 价格。EVM 执行交易,扣除每一个操作的 Gas。如果用完 Gas,执行会终止,状态会回滚,但您仍需支付费用,因为计算已被执行。

在 2021 年的 EIP-1559 之后,Gas 定价变得更复杂,增加了一个被销毁的基础费和支付给验证者的优先费。在高峰时期,基础费用会飙升。在 2021 年,简单的交换有时会花费 50-100 美元的 Gas,推动用户迁移到 Layer 2。

从 Solidity 到字节码

大多数开发者使用 Solidity 编写智能合约,这是一种为 EVM 设计的高级语言。一个简单的存储合约会被编译成 EVM 字节码——一串诸如 PUSH、MSTORE 和 JUMP 的操作码。

部署时,这些字节码会被存储在区块链上。当您调用一个函数时,EVM 载入字节码,执行指令,并返回成功或失败的结果。

EVM 只理解字节码。您可以使用任何能编译成 EVM 字节码的语言编写智能合约——Solidity、Vyper、Fe、Yul,甚至是手动撰写的汇编代码。

EVM 等效性与兼容性

随着 Layer 2 Rollup 和替代链的出现,它们面临着一个选择:完全模仿 EVM,或者只实现足够的兼容性?

EVM 等效性链是精确的复制品。每个操作码、Gas 成本和行为完全匹配。例如:Optimism、Polygon zkEVM、Scroll。这带来了完美的兼容性,但也继承了 EVM 的局限性。

EVM 兼容链支持大多数 EVM 特性并有所修改。例如:BNB Chain、Avalanche C-Chain。您可以优化,但微妙的不兼容性可能导致合约出问题。

以 EVM 为灵感的链使用不同的虚拟机,可以运行翻译后的 Solidity。例如:Solana 的 SVM,Aptos/Sui 的 Move VM。这些提供了更好的性能,但需要移植合约并缺少工具。

目前的趋势是趋向 EVM 等效性。EVM 生态的价值太高,难以放弃。

为什么 EVM 主宰市场

如果 EVM 又慢又贵,为什么 100 多条区块链使用它?

网络效应。以太坊拥有最大的开发者社区、最多的工具、最多的经过审计的合约。

工具的成熟度。Remix IDE、Hardhat、Foundry、Etherscan、OpenZeppelin 库——EVM 已经有十年的工具发展。

流动性和用户。EVM 兼容链能立即吸引以太坊用户。

通过熟悉性保证安全。EVM 的怪异特性已被广泛理解。新虚拟机意味着新的攻击向量。

可组合性。DeFi 在合约无缝调用其他合约的情况下蓬勃发展。

这创造了一个护城河。即使是技术上更高级的虚拟机也难以竞争。

EVM 的局限性

EVM 并不完美。其执行是顺序的——EVM 逐一执行交易,即使交易没有冲突也无法并行。这从根本上限制了吞吐量。

存储访问模式非常昂贵。读取和写入持久状态的 Gas 成本比计算高出几个量级。这限制了应用设计,使得某些用例(如具有丰富状态的链上游戏)在经济上不可行。

Gas 成本并不能完美反映计算成本。有些操作仍然定价过低,造成 DoS 漏洞。另一些则定价过高,限制了功能。

这些局限性是替代虚拟机存在的原因。但 EVM 最大的优势是它已经运作良好,并经过实战检验。

EVM 的替代方案

一些项目构建了非 EVM 虚拟机。WASM(WebAssembly)被 NEAR 和 Polkadot 采用——成熟且快速但链上特性较少。Solana 虚拟机允许并行执行,速度极快但编程模型不同。Move VM(Aptos, Sui)以安全为目标。CairoVM(StarkNet)则为零知识证明设计。

尽管有替代方案,EVM 仍然占据主导地位。大多数新链选择 EVM 兼容性,因为生态系统的价值胜过技术限制。

EVM 的演变

EVM 通过以太坊改进提案不断演进。2021 年的 EIP-1559 改变了 Gas 市场机制。2024 年的 EIP-4844 引入了 Blob 交易。未来的改进包括 EVM 对象格式和 Verkle 树。

EVM 的改进是缓慢且慎重的。每一项变化都必须保持向后兼容并经过严格的测试。

构建于 EVM 之上

Gas 优化是关键。存储写操作昂贵——尽量减少它们,高效地打包变量,使用调用数据而非内存。

安全至关重要。重入攻击、整数溢出、抢先交易——使用经过审计的库,进行合约审计,遵循最佳实践。

可组合性是一大优势。构建在现有 DeFi 原件上,而不是重新发明它们。

确定性不可妥协。没有外部或acles 的情况下无法引入随机性,无 API 调用,无文件系统。

测试至关重要。已部署的合约是不可变的——错误是永久的。

改变金融的计算机

EVM 不是最快的虚拟机。也不是最优雅的。但它是让可编程货币成为现实的存在。

在 EVM 出现之前,区块链可以转移价值,但无法运行任意逻辑。EVM 是第一个设计用于运行图灵完备程序并具有完整区块链安全性的虚拟机。

这为 DeFi 释放了力量——Uniswap、Aave、Compound、MakerDAO 都是 EVM 合约。NFT 使用 ERC-721 标准。像 USDC 和 DAI 这样的稳定币是 ERC-20 合约。复杂的金融衍生品、链上游戏以及数以千计的其他应用成为可能。

当替代方案是可以冻结您资产或完全关闭的中心化系统时,EVM 的局限性并不重要。慢吗?是的。贵吗?绝对。但它是无法阻挡的。

按传统计算机标准来看,EVM 是怪异的。但是区块链不是传统的计算机——它们是共识机器。EVM 的怪异是运行全球性的计算机的代价,该计算机可以被数千个节点以相同的方式执行。

EVM 又慢、又贵,还很怪异。不过正因为如此,它才在改变金融。


References

  1. Ethereum Yellow Paper: EVM Specification
  2. Ethereum.org: EVM Documentation
  3. EVM Opcodes Reference
  4. Solidity Documentation
  5. EIP-1559: Fee Market Change
  6. Ethereum.org: Gas and Fees
  7. OpenZeppelin: Solidity Security
  8. Chainlist: EVM Compatible Chains
  9. Vitalik Buterin: EVM Evolution
  10. Foundry: Ethereum Development Toolkit

META TITLE: 什么是以太坊虚拟机(EVM)?

META DESCRIPTION: 探索以太坊虚拟机如何在 100 个以上的区块链上运行智能合约,了解其架构和如何影响价值 4000 亿美元的生态系统。

FOCUS KEYWORDS: 以太坊虚拟机, EVM, 智能合约, 区块链共识, Gas 机制

相关术语