以太坊虚拟机EVM

EVM vs. Solidity

编写智能合约是区块链开发者的基本技能。工程师可以使用 Solidity 或其他高级语言来实现业务逻辑。然而,EVM 不能直接解释 Solidity;它需要将代码编译成虚拟机可以执行的低级语言(操作码/字节码)。存在工具来自动进行这种转换,减轻开发者理解编译过程的需求。

转换会引入额外开销,但有低级编码经验的工程师可以直接在 Solidity 中使用操作码编写程序逻辑,达到最高效率并减少 gas 消耗。例如,OpenSea 的 Seaport 协议广泛使用内联汇编来最小化用户的 gas 开销。

EVM性能的差异性:标準与实现

EVM,也称为“执行层”,是编译后的智能合约操作码最终计算和处理的地方。EVM 定义的字节码是行业标準。无论是用于以太坊 Layer 2 网络还是其他独立区块链,与 EVM 标準的兼容性允许开发者在多个网络上高效部署智能合约。

尽管符合 EVM 字节码标準使虚拟机称为 EVM,但实现方法可以差异很大。例如,以太坊的 Geth 客户端用 Go 实现了 EVM 标準,而以太坊基金会的 Ipsilon 团队则维护了一个 C++ 实现。这种多样性允许不同的工程优化和定制实现。

并行EVM技术

历史上,区块链社区主要集中于共识算法的创新,像Solana、Avalanche和EOS这样的项目更因其共识机制而闻名,而不是其执行层。尽管这些项目对执行层的创新有贡献,但它们的性能往往被误认为仅源自其共识算法。

实际上,高性能区块链需要创新的共识算法和优化的执行层,类似于最弱环节原则。对于仅改进共识算法的EVM区块链来说,提升性能需要更强大的节点。例如,币安智能链(BSC)在2000 TPS的gas限制下处理区块,需要配置比以太坊全节点高几倍的机器。虽然Polygon理论上支持高达1000 TPS,但其实际性能往往不及预期。

并行处理的需求

在大多数区块链系统中,交易是按顺序执行的,类似于单核CPU,下一次计算在当前计算完成后才开始。虽然这种方法简单且系统复杂性低,但不足以扩展到互联网级用户基础。转向多核CPU并行虚拟机可以允许同时处理多笔交易,大大增加吞吐量。

并行执行带来了工程挑战,比如处理并发交易写入同一个智能合约。需要设计新的机制来解决这些冲突。并行执行不相关的智能合约可以按并行处理线程数成比例提高吞吐量。

深入探讨并行EVM及其生态

并行EVM的创新

并行EVM代表了一系列旨在优化区块链系统执行层的创新。以Monad为例,其关键创新包括:

  • 并行交易执行:Monad采用乐观并行执行算法,允许多个交易同时处理。这种方法从相同的初始状态开始交易,跟踪它们的输入和输出,生成每笔交易的临时结果。Monad通过检查下一笔交易的输入是否与当前处理中交易的输出相关来决定是否执行下一笔交易。如果有关系,则下一笔交易等待当前交易完成。如果没有关系,系统按原顺序处理下一笔交易。这种方法显着提升了交易处理性能,减少了系统延迟。

  • 延迟执行:在Monad的共识机制中,节点在不需要主节点或验证节点执行这些交易的情况下达成对交易的正式排序。起初,主节点对交易进行排序并在节点之间就其顺序达成共识。Monad不立即执行交易,而是将执行推迟到一个独立的通道中,最大限度地利用区块时间,提升整体执行效率。

  • 自定义状态数据库(Monad DB):Monad DB通过直接将Merkle树存储在SSD上优化状态存储和访问。这种直接存储方法最小化了读取放大效应,提高了状态访问速度,使智能合约的执行更快、更高效。通过减少传统数据库的低效,Monad DB确保在并行交易执行期间快速检索状态变量。

  • 高性能共识机制(Monad BFT):Monad BFT是HotStuff共识机制的改进版本,支持数百个全球分布的节点之间的同步,具有线性通信复杂度。它使用流水线投票阶段,使投票过程的不同阶段可以重叠进行,减少延迟,增加共识效率。这一修改显着提升了网络处理大规模分布式操作的能力。

挑战

并行EVM的技术挑战

顺序交易执行的瓶颈与CPU和状态读/写过程相关。虽然这种方法简单且可靠,但并行执行引入了潜在的状态冲突,需要进行执行前或执行后的冲突检查。例如,如果一个虚拟机支持四个并行线程,每个线程处理一个交易,当所有交易都与同一个Uniswap池交互时,就会发生冲突。这种情况需要仔细的冲突检测和解决机制,以确保高效的并行处理。

除了实现并行EVM的技术差异外,各团队通常重新设计并增强状态数据库的读/写性能,并开发兼容的共识算法,如Monad的MonadDb和MonadBFT。

挑战与考量

并行EVM的两个主要挑战是以太坊的长期工程价值捕获和节点集中化。虽然目前的开发阶段尚未完全开源,以保护知识产权,但这些细节最终将在测试网和主网启动时披露,面临被以太坊或其他区块链吸收的风险。快速的生态系统发展将是保持竞争优势的关键。

节点集中化对所有高性能区块链来说都是一个挑战,需要在“区块链三难困境”——无许可、无需信任的操作和高性能需求之间取得平衡。像“每硬件需求的TPS”这样的指标可以帮助比较区块链在特定硬件条件下的效率,因为较低的硬件需求可以启用更多去中心化的节点。

并行EVM的格局

除了Monad外,并行EVM格局还包括Sei、MegaETH、Polygon、Neon EVM、BSC和Paradigm的Reth客户端。Monad、Sei、Polygon和BSC是Layer 1区块链,而MegaETH可能是Layer 2解决方案。Neon EVM基于Solana网络,Reth是一个开源客户端,MegaETH的开发部分基于Reth。

并行EVM的主要条件是EVM兼容网络。尽管像Solana、Aptos、Fuel和Sui这样的网络采用并行执行,但它们不被视为并行EVM项目,因为它们是非EVM网络。

目前,现有的并行EVM网络可以分为三种类型:

  • 通过并行执行技术升级的EVM兼容Layer 1网络**:这些网络最初不采用并行执行,通过技术迭代升级以支持并行EVM。例如,Polygon在2022年完成了并行EVM升级,Fantom即将推出的Fantom Sonic升级也将引入并行执行。

  • 从一开始就采用并行执行技术的EVM兼容Layer 1网络**:例如Monad、Sei V2和Artela。

  • 采用非EVM并行执行技术的Layer 2网络**:这些包括扩展导向的Layer 2 EVM兼容链,如Solana Neon、Eclipse和Lumio。这些网络将EVM抽象成一个可插拔的执行模块,允许根据需要选择最佳的“VM执行层”,从而实现并行能力。例如,Lumio的结算层在以太坊上,但其执行层可以使用Solana VM、Move VM、EVM等。

项目

Monad: 领先的并行EVM

Monad旨在通过优化EVM并行执行和流水线架构解决传统EVM的可扩展性问题,目标是达到10,000 TPS。4月9日,Monad完成了由Paradigm领投的2.25亿美元融资,估值达到30亿美元。此前,在去年2月的种子轮融资中筹集了1900万美元,总融资额达到2.44亿美元,成为迄今为止融资最多、估值最高的并行EVM项目。Monad的创始团队成员包括来自市场做市巨头Jump Trading的成员。创始人Keone Hon曾在Jump Trading担任研究主管八年,共同创始人James Hunsaker是那里的高级软件工程师,也是Pyth Network的核心维护者。Monad的内部测试网在3月启动,预计几个月内向公众开放。

深入探讨并行EVM及其生态

Sei:推出并行EVM网络 Sei V2

Sei 最初是一个专注于交易的 Layer 1 网络,提供先进的交易应用基础设施,如 DeFi、DEX 和游戏。去年11月,Sei宣布了全面升级到 Sei V2,成为第一个高性能并行EVM,将其 TPS 提高到 12,500。并行EVM测试网于今年2月上线,支持EVM应用的一键迁移。主网预计将在今年上半年上线。今年3月,Sei推出了 Parallel Stack 开源框架,支持 Layer 2 和 Rollup 网络采用并行处理技术。

深入探讨并行EVM及其生态

深入探讨并行EVM及其生态

Artela:通过 EVM++ 双虚拟机增强执行层

Artela 旨在通过扩展 EVM 支持并行执行来解锁 Layer 1 网络的可扩展性。通过构建 EVM++ (EVM + WASM),Artela 旨在提升 EVM 区块链性能和网络执行效率。核心团队成员来自蚂蚁链。公测网已上线,Artela 生态系统激励计划“Renaissance Plan”已于四月推出。

深入探讨并行EVM及其生态

Canto:引入并行 EVM 技术

Canto 是一个基于 Cosmos SDK 构建的 EVM 兼容的 Layer 1 网络,专为 DeFi 应用而设计。Canto 在三月份宣布了 Cyclone Stack 开发计划,该计划旨在引入并行执行 EVM 技术以提升网络性能。

深入探讨并行EVM及其生态

Neon:Solana EVM 兼容性解决方案

Neon EVM 是建立在 Solana 网络上的并行 EVM,也是首个 Solana EVM 兼容性解决方案。它支持 Solidity 和 Vyper EVM 开发者一键部署他们的 DApp 到 Solana,享受 Solana 的高吞吐量和低 gas 费。Neon EVM 将类似于 EVM 网络的交易封装成 Solana 交易进行执行,从而提高交易速度,TPS 超过 2,000。

深入探讨并行EVM及其生态

Eclipse:将 SVM 引入以太坊

Eclipse 是一个由 Solana 虚拟机 (SVM) 支持的 Rollup Layer 2 模块化通用解决方案。Eclipse 在以太坊上结算交易数据,使用 ETH 作为 gas,但其执行层在 SVM 环境中运行。与将 EVM 引入 Solana 的 Neon 不同,Eclipse 将 SVM 引入以太坊,在 Solana 的 SVM 上执行交易,同时在以太坊上结算。Eclipse 最近在 Hack VC 等领投的 A 轮融资中筹集了 5000 万美元。主网预计很快会向开发者开放。

深入探讨并行EVM及其生态

Lumio:模块化 VM Layer 2

Lumio 基于 OP Stack 构建,是一个模块化 VM Layer 2 网络,也是 Optimism 超链的一部分,被称为 SuperLumio。它旨在将高性能虚拟机(如 Aptos VM、Move VM 和 Solana VM)引入现有的主要以太坊和比特币 Layer 2 网络。与 Eclipse 类似,Lumio 支持使用以太坊或比特币作为结算层,执行层能够使用 Aptos VM 和 Solana VM 等虚拟机进行并行执行。

深入探讨并行EVM及其生态

结论

随着区块链技术的发展,关注执行层与共识算法同样重要,以实现高性能。诸如并行 EVM 等创新提供了有前途的解决方案,以提高吞吐量和效率,使区块链更具可扩展性,并能够支持广泛的用户群体。这些技术的发展和实施将塑造区块链生态系统的未来,推动该领域的进一步进步和应用。

参考文献: