EVM
Ethereum 虚拟机
在 Ethereum 及数十条复制了它字节码格式的链上执行智能合约的运行时。
EVM 是 Ethereum 发明、后来成为智能合约链事实标准的执行层。一个编译成 EVM 字节码的合约,能在 Ethereum 主网、Polygon、Arbitrum、Optimism、Base、BNB Chain、Avalanche C-chain,以及一长串 L2 与侧链上运行。
实际意义是:用 Solidity(或 Vyper)写你的合约,在 Ethereum 测试网上测试,再部署到匹配你成本与延迟目标的那条 EVM 链。可移植性是真的。链之间的取舍体现在速度、终局性、去中心化程度,以及它们基于哪一种 L2 框架。
选链,举个实际例子:一个需要与现有借贷和 DEX 合约组合的 DeFi 协议属于 Ethereum 主网或一条主流 L2,那个生态住在那里,哪怕 Gas 更高。一个用户无法容忍美元级费用的高频消费级应用属于像 Arbitrum、Optimism 或 Base 这样的 L2(同样的安全模型,十分之一到百分之一的成本),或者干脆离开 EVM、转向 Solana。这个决定是安全对成本的取舍,而不是这个季度哪条链营销嗓门最大。
诚实的取舍与反复绊倒团队的错误:EVM 兼容不等于 Ethereum 等价。Gas 定价、Precompile、Opcode 支持和共识行为上的细微差别,意味着一个在主网通过的合约可能在一条侧链上崩。可移植性是一个起点,不是一个保证;部署前永远逐链重测。像 账户抽象 这样的账户级用户体验功能,在各链上成熟度也不同,所以在你承诺它之前先确认支持。
更深的取舍是你为便宜的费用放弃了什么。从主网迁到一条更便宜的 EVM 链,几乎总是意味着继承一个不同的信任模型:一条像 Polygon PoS 这样的侧链跑的是它自己的验证者集,而不是借用 Ethereum 的安全;一个 Rollup 加了一个你现在要依赖的排序器,以及一段回到 L1 的提款延迟。这些都不会出现在供应商放进幻灯片里的那张 Gas 费对比里。在你为单笔交易成本做优化之前,先决定你的应用实际需要保证什么。对 web3 构建,我们在 Solidity 与 Vyper 之间默认选 Solidity,因为更广的工具链和审计师的熟悉度,除非有强理由逆流而上。