技术

什么是 EVM (Ethereum 虚拟机)?

Ethereum 虚拟机

在 Ethereum 及数十条复制了它字节码格式的链上执行智能合约的运行时。

最近审阅: 审阅人Kevin Riedl wiki ↗

EVM 是 Ethereum 发明、后来成为智能合约链事实标准的执行层。一个编译成 EVM 字节码的合约,能在 Ethereum 主网、Polygon、Arbitrum、Optimism、Base、BNB Chain、Avalanche C-chain,以及一长串 L2 与侧链上运行。

实际意义是:用 Solidity(或 Vyper)写你的合约,在 Ethereum 测试网上测试,再部署到匹配你成本与延迟目标的那条 EVM 链。可移植性是真的。链之间的取舍体现在速度、终局性、去中心化程度,以及它们基于哪一种 L2 框架。

选择 EVM 部署时应考虑工作负载、流动性、用户入口和运行保护机制。Rollup 可以降低费用并依赖以太坊结算,但其排序器、证明系统、升级权限、数据可用性和提款路径会引入具体部署的假设。应测量实际交易,而不是承诺与主网相同的安全模型或固定十倍、百倍的折扣。

诚实的取舍与反复绊倒团队的错误:EVM 兼容不等于 Ethereum 等价。Gas 定价、Precompile、Opcode 支持和共识行为上的细微差别,意味着一个在主网通过的合约可能在一条侧链上崩。可移植性是一个起点,不是一个保证;部署前永远逐链重测。像 账户抽象 这样的账户级用户体验功能,在各链上成熟度也不同,所以在你承诺它之前先确认支持。

生命周期与字节码兼容同样重要。Polygon 确认已于 2026 年 7 月 3 日关闭 zkEVM Mainnet Beta 排序器,因此它不适合作为新应用的部署目标。这不代表 Polygon PoS 或所有使用 Polygon 工具构建的链都已关闭。投入资金或规划迁移前,应核实具体网络及官方退出流程。

// FAQ

常见问题

应在目标链上测试操作码、预编译、Gas 规则、终局性、基础设施和部署工具。EVM 兼容只是起点,不能保证所有链上的行为完全一致。
应根据具体部署的安全控制、流动性、用户入口、完整交易成本和退出路径决定。已退役的 Polygon zkEVM Mainnet Beta 不适合新项目。
Solidity 与 Vyper 的语言设计和生态不同。应根据团队经验、持续维护的工具和审计支持选择,并测试具体编译器和合约行为。任何语言都不自动保证代码安全。