撰文:0xNatalie
TL;DR
- 并行 EVM 吸引了顶尖风投的关注,不少项目纷纷开始探索这一方向,比如 Monad、MegaETH、Artela、BNB、Sei Labs、Polygon 等。
- 并行 EVM 不仅仅是为了实现并行化处理,还涉及对 EVM 各个组件的全面性能优化。通过这些优化,为更复杂和高效的区块链应用提供支持。
- 并行 EVM 需要在开源生态中实现差异化,同时平衡去中心化和高性能的需求,还要解决潜在的安全问题和市场接受度的挑战。由于引入了多线程编程的复杂性,并行 EVM 面临着协调多个交易同时进行的难题,因此必须找到有效的解决方案,以确保系统的稳定性和安全性。
- 未来,并行 EVM 将推动链上中央限价订单簿(CLOB)和可编程中央限价订单簿(pCLOB)的实现,这将大大增强 DeFi 活动的效率,预计 DeFi 生态将显著增长。
- 通过将其他高性能虚拟机(AltVM)引入以太坊生态系统,性能和安全性将得到显著提升,这种集成能够充分利用各个虚拟机的优势,推动以太坊的进一步发展。
今年,并行 EVM 吸引了诸如 Paradigm、Dragonfly 等顶尖风投公司的押注,引起了市场的广泛关注。并行 EVM 是对传统 EVM 的优化升级。传统的 EVM 是串行处理的,也就是交易必须一个接一个地顺序执行。这种方式在交易高峰期容易导致交易拥堵和处理延迟,影响用户体验。并行 EVM 则通过引入并行处理技术,允许多个独立的交易同时执行,从而大幅提升交易处理速度。随着全链游戏、账户抽象钱包等复杂应用的出现,对区块链性能的需求不断增加。为了支持更广泛的用户,区块链网络必须具备快速高效地处理大量交易的能力。因此,并行 EVM 作为解决方案,对于不断发展的 Web3 应用至关重要。
然而,实施并行 EVM 面临以下的共性挑战,这些挑战需要精确的技术解决方案来确保系统的稳定运行:
- 数据一致性:在并行 EVM 中,因为多个交易同时发生,多个操作可能需要同时读取或修改账户的信息。为了确保每个操作都能正确地反映在最终的状态中,需要采用有效的锁定机制或事务处理机制,以确保在状态修改时保持数据一致性。
- 状态访问效率:并行 EVM 需要能够快速访问和更新状态,这要求系统具有高效的状态存储和检索机制。通过优化存储结构和访问路径,比如采用更先进的数据索引技术和缓存策略,可以显著减少数据访问的延迟,提高整体的系统性能。
- 交易冲突检测:在并行执行中,多个交易可能依赖于相同的数据状态,交易的顺序和依赖关系管理变得复杂。为此,必须设计复杂的调度算法来识别和管理并行交易之间的依赖关系,检测潜在冲突,并决定如何处理,确保并行执行的交易结果与串行执行一致。
例如,MegaETH 将交易执行任务从全节点中解耦,将不同任务分配给专业化节点,以优化整体系统性能;Artela 通过预测性乐观执行和异步预加载技术,利用 AI 分析交易之间的依赖关系,并提前将所需的交易状态加载到内存中,以提高状态访问效率;BNB 链开发了专用的冲突检测器与重新执行机制,提升系统对交易依赖关系的管理能力,减少不必要的重新执行,等等。
为深入了解并行 EVM 的发展方向,以下精选九篇关于此主题的优质文章,提供了不同链的具体实施方案、生态综合研究、未来前景等全面视角。
MegaETH: Unveiling the First Real-Time Blockchain
作者:MegaETH,日期:2024.6.27
MegaETH 是一个 EVM 兼容的 Layer 2,旨在实现接近 Web2 服务器的实时性能。其目标是推动以太坊 L2 的性能达到硬件极限。MegaETH 提供高交易吞吐量、充足的计算能力和毫秒级响应时间,允许开发者构建和组合复杂的应用程序,而不受性能限制。
MegaETH 通过将交易执行任务从全节点中分离并引入并行处理技术来提升性能。其架构由三个主要角色组成:定序器、验证者和全节点。
- 定序器(Sequencer): 定序器的职责是对用户提交的交易进行排序和执行。定序器在执行交易后,会通过点对点(p2p)网络将交易的状态变化(状态差异)发送给全节点。
- 全节点(Full Node): 全节点接收到状态差异后,直接应用这些差异来更新自己的本地区块链状态,而不需要重新执行交易。这大大减少了计算资源的消耗,提高了系统的整体效率。
- 验证者(Prover): 验证者使用无状态验证方案对区块进行验证。不需要按顺序逐个验证,而是可以同时验证多个区块。这种方法进一步提高了验证效率和速度。
这种节点专业化的设计允许不同类型的节点根据各自的功能需求设定独立的硬件要求。例如,定序器需要高性能服务器来处理大量交易,而全节点和验证者则可以使用相对低配置的硬件。
Presenting Artela Scalability Whitepaper - Parallel Execution Stack and Elastic Block Space
作者:Artela,日期:2024.6.20
Artela 通过引入多项关键技术,大幅提升了区块链的并行执行效率和整体性能:
- 并行执行:通过预测交易依赖性并对交易进行分组,利用多个 CPU 核心并行处理,提高计算效率。
- 并行存储:优化存储层,支持并行数据处理,避免存储瓶颈,提升系统整体性能。
- 弹性计算:支持多台计算机协同工作,实现弹性计算节点和区块空间,为 dApps 提供更高的交易吞吐量和可预测的性能。
具体而言,Artela 的预测性乐观执行利用 AI 智能分析交易与合约之间的依赖关系,预测可能发生冲突的交易,并将其分组,从而减少冲突和重复执行。系统动态地累积并存储历史交易的状态访问信息,以供预测算法使用。通过异步预加载,系统将所需的交易状态提前加载到内存中,避免在执行过程中出现 I/O 瓶颈。同时,并行存储通过将状态承诺与存储操作分离,优化了 Merkelization 和 I/O 性能。这种分离处理方式使并行与非并行操作能够独立管理,进一步提升了系统的并行化效率。
此外,Artela 基于弹性计算构建了弹性区块空间(EBS)。传统区块链中,所有 dApp 共享同一个区块空间,导致高流量 dApp 之间资源竞争,造成不稳定的 gas 费用和不可预测的性能。弹性区块空间为 dApp 提供专属且动态可扩展的区块空间,确保性能的可预测性。dApp 可根据需求申请专属区块空间,随着区块空间的增加,验证者可通过增加弹性执行节点扩展处理能力,确保资源高效利用,适应不同的交易量。
Road to High Performance: Parallel EVM for BNB Chain
作者:BNB Chain,日期:2024.2.16
在 BNB 链上,团队采取了多个步骤来实现并行 EVM,以提高交易处理能力和可扩展性。以下是 BNB 链在实现并行 EVM 过程中所做的主要工作:
并行 EVM v1.0
在 2022 年初,BNB 链社区推动了并行 EVM 的执行,核心组件包括:
- 调度器: 负责将交易分配到不同线程进行并行执行,从而优化吞吐量。
- 并行执行引擎: 利用并行处理在专用线程上独立执行交易,大大减少处理时间。
- 本地状态数据库: 每个线程(独立执行指令的基本单位)维护自己的「线程本地」状态数据库,以高效记录执行期间的状态访问信息。
- 冲突检测与重新执行: 确保数据完整性,通过检测和管理交易依赖关系,发生冲突时重新执行交易以确保结果准确。
- 状态提交机制: 一旦交易执行完成,结果将无缝提交到全局状态数据库,更新区块链的整体状态。
并行 EVM v2.0
在并行 EVM 1.0 的基础上,BNB 链社区引入了一系列性能提升的创新:
- Streaming Pipeline: 提高执行效率,使交易在并行引擎中平稳处理。
- Universal Unconfirmed State Access: 通过优化状态信息访问,在某个交易执行完毕但未正式确认之前,允许其他交易临时使用其结果,减少交易间的等待时间。
- 冲突检测器 2.0: 增强的冲突检测机制,提高了性能和准确性,确保数据完整性,同时减少不必要的重新执行。
- 调度器增强: 调度器现在利用静态和动态调度策略,更高效地分配工作负载和优化资源利用。
- 内存优化: 通过共享内存池和轻量复制技术,显著减少内存占用,进一步提升系统性能。
并行 EVM v3.0
在并行 EVM 2.0 取得性能提升之后,BNB 链社区积极开发并行 EVM 3.0,目标如下:
- 减少或消除重新执行: 通过引入基于提示(Hints)的调度器,利用外部提示提供者分析交易并生成潜在状态访问冲突的预测。通过这些提示,可以更好地安排交易,减少冲突,从而降低重新执行的需要。
- 模块化: 将代码分解为独立模块,提高可维护性并便于适应不同环境。
- 代码库重构: 对齐最新的 BSC/opBNB 代码库,确保兼容性并简化集成。
- 彻底测试和验证: 在各种场景和工作负载下进行广泛测试,确保解决方案的稳定性和可靠性。
Sei’s Parallel Stack
作者:Sei,日期:2024.3.13
Sei Labs 创建了一个名为 Parallel Stack 的开源框架,旨在构建支持并行处理技术的 Layer 2 解决方案。Parallel Stack 的核心优势在于其并行处理能力,利用现代硬件的进步来降低交易费用。该框架采用模块化设计,允许开发者根据特定需求添加或修改功能模块,从而适应不同的应用场景和性能要求。Parallel Stack 能够与现有的以太坊生态系统无缝整合。使用 Parallel Stack 的应用和开发者无需做大量的修改或适应工作,就能直接利用以太坊现有的基础设施和工具。
为了确保交易和智能合约的安全执行,Parallel Stack 引入了多种安全协议和验证机制,包括交易签名验证、智能合约审计和异常交易检测系统。为了方便开发者在 Parallel Stack 上构建和部署应用,Sei Labs 提供了一套完整的开发者工具和 API,旨在支持开发者充分利用 Parallel Stack 的高性能和可扩展性,推动以太坊生态系统的进一步发展。
Innovating the Main Chain: a Polygon PoS Study in Parallelization
作者:Polygon Labs,日期:2022.12.1
Polygon PoS 链通过引入并行 EVM 升级,使其交易处理速度提高了一倍,这得益于最小化元数据法。
Polygon 借鉴了 Aptos Labs 开发的 Block-STM 引擎的原理,开发了最小元数据方法以满足 Polygon 的需求。Block-STM 引擎是一种创新的并行执行机制,它假设所有交易之间不存在冲突。在交易执行过程中,Block-STM 引擎监控每个交易的内存操作,识别并标记依赖关系,并重新安排有冲突的交易进行验证,确保结果的正确性。
最小元数据方法在区块中记录所有交易的依赖关系,并存储在有向无环图(DAG)中。区块提议者和验证者先执行交易,记录依赖关系并将其附加为元数据。当区块传播到网络中的其他节点时,依赖关系信息已包含在内,减少了重新验证的计算和 I/O 负担,提高了验证效率。通过最小元数据方法,记录依赖关系还优化了交易执行路径,最大限度地减少了冲突。
EVM 的并行化有何意义?或是 EVM 霸权下的终局?
作者:ChainFeeds 创始人 Zhixiong Pan,日期:2024.3.28
并行 EVM 技术受到了包括 Paradigm、Jump 和 Dragonfly 在内的一些顶级风险资本的重视和投资。这些资本看好并行 EVM 突破现有区块链技术的性能限制,实现更高效的事务处理和更广泛的应用可能性。
并行 EVM 虽然字面意思仅代表了「并行化」,但实际上它涵盖的技术改进远不止于此。并行 EVM 不仅仅是让多个交易或任务可以同时进行处理,还包括对以太坊 EVM 的各个组件进行深入的性能优化。比如改进数据存取速度、提高计算效率、优化状态管理等多个方面。因此,它的努力很可能代表着 EVM 标准下的性能极限。
除了技术上的挑战,并行 EVM 还面临着生态构建和市场接受度的难题。需要在开源生态中创造差异化,在去中心化和高性能之间找到适当的平衡。市场接受度方面,需要向行业内外证明其并行化能力真正带来的性能提升和成本效益,特别是在现有的大量以太坊应用和智能合约已经稳定运行的背景下,转向新平台的诱因需要非常突出。此外,并行 EVM 的推广还需要解决潜在的安全问题和可能出现的新的技术缺陷,确保系统的稳定性和用户资产的安全,这些都是推动新技术广泛采纳的重要因素。
Death, Taxes, and EVM Parallelization
作者:Reforge Research,日期:2024.4.1
随着并行 EVM 的推出,链上中央限价订单簿(Central Limit Order Books, CLOB)的可行性得到了提升,预计 DeFi 活动将显著增加。
在 CLOB 中,订单根据价格和时间优先级排序,确保市场的公平性和透明性。然而,在以太坊等区块链平台上实现 CLOB 时,由于平台处理能力和速度的限制,往往会导致高延迟和高交易成本。引入并行 EVM 后,极大地增强了网络的处理能力和效率,使得 DeFi 交易平台能够实现更快速和更高效的订单匹配和执行。CLOB 也就变得可行。
在此基础上,可编程中央限价订单簿(pCLOB)进一步扩展了 CLOB 的功能。pCLOB 不仅提供基本的买卖订单匹配功能,还允许开发者在订单的提交和执行过程中嵌入自定义的智能合约逻辑。这些自定义逻辑可以用于额外的验证、执行条件的判定、以及交易费用的动态调整。通过在订单簿中嵌入智能合约,pCLOB 提供了更高的灵活性和安全性,支持更复杂的交易策略和金融产品。通过利用并行 EVM 所提供的高性能和高并行处理能力,pCLOB 能够在去中心化环境中实现类似传统金融交易平台的复杂和高效的交易功能。
然而,尽管并行 EVM 为区块链性能带来了显著提升,现有的以太坊虚拟机(EVM)和智能合约的安全性仍存在不足,容易受到黑客攻击。为了解决这些问题,作者建议采用双虚拟机(dual VM)架构。在这种架构中,除了 EVM 之外,还引入一个独立的虚拟机(如 CosmWasm),用于实时监控 EVM 智能合约的执行情况。这个独立虚拟机的功能类似于操作系统中的杀毒软件,能够进行高级检测和防护,从而减少黑客攻击的风险。在未来,像 Arbitrum Stylus 和 Artela 这样的新兴解决方案被认为有望成功实现这种双虚拟机架构。通过这种架构,这些新系统可以从一开始就更好地嵌入实时保护和其他关键的安全功能。
What will be the next step towards enhanced scalability while maintaining EVM compatibility?
作者:SevenX Ventures 研究员 Grace Deng,日期:2024.4.5
新的 Layer 1 如 Solana 和 Sui 通过使用全新的虚拟机(VM)和编程语言,并采用并行执行、新的共识机制和数据库设计,从而提供了比传统 Layer 2 和 Layer 1 更高的性能。然而,这些系统不兼容 EVM,导致流动性不足和用户及开发者面临更高的门槛。但像 BNB 和 AVAX 这样的 EVM 兼容 Layer 1 区块链,尽管在共识层面进行了改进,但执行引擎的修改较少,因此性能提升有限。
并行 EVM 可以在不牺牲 EVM 兼容性的前提下提升性能。例如,Sei V2 通过采用乐观并发控制(OCC)和引入新的状态树(IAVL trie)来提高读写效率;Canto Cyclone 通过使用最新的 Cosmos SDK 和 ABCI 2.0 技术以及内存中的 IAVL 状态树来优化状态管理系统;而 Monad 则提出了一个结合高吞吐量、去中心化和 EVM 兼容性的全新 Layer 1 方案,采用 OCC、新的并行访问数据库和基于 Hotstuff 的 MonadBFT 共识机制。
除此之外,还可以考虑将其他高性能虚拟机(AltVM)集成到以太坊生态系统中,特别是那些支持 Rust 开发的虚拟机,如 Solana 的 Sealevel 或 Near 的 WASM-based VM。这样不仅可以解决 EVM 不兼容的弊端,还可以将 Rust 开发人员引入以太坊生态系统,提升整体性能和安全性,同时开拓新的技术可能性。
万字解读并行 EVM :如何突破区块链性能瓶颈?
作者:Gryphsis Academy,日期:2024.4.5
并行 EVM 主要是对执行层的性能优化。分为 Layer 1 解决方案和 Layer 2 解决方案两种。Layer 1 的解决方案引入交易并行执行机制,让交易在虚拟机中尽量并行执行。Layer 2 的解决方案本质上是利用已经并行化的 Layer 1 虚拟机实现某种程度上的链下执行 + 链上结算。未来,Layer 1 赛道可能形成并行 EVM 和并行非 EVM 的两大阵营,Layer 2 赛道则会朝着区块链虚拟机模拟器或模块化区块链的方向发展。
并行执行机制主要分为以下三类:
- 消息传递模型:每个执行者(actor)只能访问自己的私有数据,需要访问其他数据时通过消息传递。
- 共享内存模型:采用内存锁来控制对共享资源的访问,分为内存锁模型和乐观并行化。
- 严格状态访问列表:基于 UTXO 模型,提前计算每个交易要访问的账户地址,形成访问列表。
不同项目在实现并行执行机制时采取了不同的策略:
- Sei v2:由内存锁模型转向乐观并行化模型,优化潜在的数据争用。
- Monad:引入超标量流水线技术和改进的乐观并行机制,实现高达 10000 TPS 的性能。
- Canto:采用 Cyclone EVM 引入乐观并行化,并在去中心化金融基础设施上进行创新。
- Fuel:作为模块化以太坊 rollup 操作系统,采用 UTXO 模型和乐观并行化机制,提高交易吞吐量。
- Neon、Eclipse 和 Lumio:通过整合多种 Layer 1 链的能力提供跨生态性能提升,采用双虚拟机支持的策略。
虽然并行 EVM 提供了一种有效的解决方案,但同时也带来了新的安全挑战。并行执行引入了多线程编程,增加了系统的复杂性。多线程编程容易出现竞态条件、死锁(dead lock)、活锁(live lock)和饥饿(starvation)等问题,影响系统的稳定性和安全性。同时引入了新的安全隐患,如恶意交易可能利用系统的并行执行机制,制造数据不一致或发起竞争攻击。