- 并行EVM的必要性在于它解决了传统EVM按顺序处理交易的效率问题,通过允许多个操作同时执行,显著提高了网络的吞吐量和性能。
- 并行EVM的实现方法包括基于调度的并发处理、多线程EVM实例、系统级分片,同时面临诸如不可靠时间戳、区块链确定性和验证者收益导向等技术挑战。
- Monad Labs通过其Layer 1项目Monad,旨在通过独特技术特性显著提升区块链的可扩展性和交易速度,特点包括每秒处理高达10,000笔交易、1秒区块时间、并行执行能力和MonadBFT共识机制。
- Sei V2是Sei网络的重要升级,旨在成为首个完全并行化的EVM,提供向后兼容EVM智能合约、乐观并行化、新的SeiDB数据结构和与现有链的互操作性,旨在大幅提升交易处理速度和网络可扩展性。
- Neon EVM是在Solana上的平台,旨在为以太坊dApps提供高效、安全、去中心化的环境,允许开发者轻松部署和运行dApps,同时利用Solana的高吞吐量和低成本优势。
- Lumio是Pontem Network开发的一种Layer 2解决方案,它通过独特支持EVM和Aptos使用的Move VM,创新地解决了以太坊的可扩展性挑战,将Web3体验提升至接近Web2水平。
- Eclipse是一个以太坊Layer 2解决方案,使用SVM加速交易处理,采用模块化rollup架构,整合了以太坊结算、SVM智能合约、Celestia数据可用性和RISC Zero欺诈证明。
- Solana利用其Sealevel技术实现并行智能合约处理,Sui通过Narwhal和Bullshark组件提高吞吐量,Fuel通过UTXO模型实现并行交易执行,而Aptos使用Block-STM引擎以提升交易处理能力,均展现了区块链领域中并行技术的不同实现和优势。
- 采用并行的主要挑战包括解决数据竞争和读写冲突问题,确保技术与现有标准兼容,适应新的生态系统交互模式,以及管理系统复杂性增加,特别是在安全性和资源分配方面。
- 并行EVM展示了在增强区块链可扩展性和效率方面的巨大潜力,标志着区块链技术的一次重大转变,通过多处理器同时执行事务来提高交易处理能力,突破了传统顺序交易处理的限制。虽然并行EVM提供了巨大的潜力,但它们的成功实施需要克服复杂的技术挑战,并确保广泛的生态系统采用。
- 它提供了一种更节能高效的交易处理方法。通过减轻验证者和整个网络的工作负担,并行EVM有助于构建更可持续的区块链生态系统。
- 提高的可扩展性和增加的吞吐量直接导致交易费用的降低。用户将享受到更经济的体验,使区块链平台对更广泛的受众更具吸引力。
- 同时处理多个交易而非按顺序处理,意味着dApps即使在网络高需求期间也能更顺畅地运行。
- 一个EVM实例的多线程。
- 一个节点上多个EVM实例的多线程。
- 多个节点上多个EVM实例的多线程(基本上是系统级的分片)。
- 不可靠的时间戳使得基于时间戳的并发方法难以在区块链世界中部署。
- 区块链系统上绝对的确定性,以确保不同验证者之间重新执行的交易是相同的。
- 验证者的最终目标是更高的收益,而不是更快地执行交易。
- 需要系统级的共识,更快的执行将带来更高的回报。
- 考虑到区块限制的多变量调度算法,可以在能够更快完成执行的同时捕获更多收入。
- 更细粒度的数据操作,包括操作码级的数据锁定、内存缓存层等。
- MonadBFT:
- MonadBFT是Monad区块链的高性能共识机制,用于在拜占庭行为者存在的情况下,在部分同步条件下达成交易排序的一致性。它是基于HotStuff的改进版,采用了两阶段的BFT算法,具有乐观响应性,并在常见情况下具有线性通信开销,在超时情况下具有二次通信开销。在MonadBFT中,领导者每轮向验证者发送一个新块和前一轮的QC(Quorum Certificate)或TC(Timeout Certificate)。验证者对该块进行审核,如果同意,会向下一轮的领导者发送签名的“是”投票。这个过程通过阈值签名来聚合**2f+1**个验证者的“是”投票形成QC。在通信的常见情况下,领导者向验证者发送块,验证者直接向下一轮的领导者发送投票。MonadBFT还采用了基于配对的BLS签名,以解决可伸缩性问题,它可以将签名增量聚合成一个签名,验证单个有效聚合签名就能证明与公钥关联的股份都已签署了该消息。为了性能考虑,MonadBFT采用了混合签名方案,其中BLS签名仅用于可聚合的消息类型(投票和超时)。消息的完整性和真实性仍由ECDSA签名提供。由于这些特点,MonadBFT能够实现高效和稳健的区块链共识。
- 延迟执行:
- 这是一项关键的创新,使执行过程从共识过程中解耦。在这种架构下,共识过程涉及节点就交易的官方排序达成一致,而执行则是实际执行这些交易并更新状态的过程。在这种设计中,领导节点提出交易排序,但在提出排序时还不知道最终的状态根;验证节点在对块有效性进行投票时,也不知道块中的所有交易是否会执行成功。
- 这种设计允许Monad实现显著的速度提升,使得单分片区块链可以扩展到数百万用户。在Monad中,每个节点在对块N达成共识的同时,独立执行块N中的交易,并开始对块N+1达成共识。这种方法允许更大的gas预算,因为执行只需跟上共识的速度。此外,由于执行只需平均上跟上共识,这种方法对计算时间的具体变化更具容忍性。
- 为了进一步确保状态机复制,Monad在区块提案中包含了一个延迟了D个区块的Merkle根。这种延迟的Merkle根确保了即使有节点执行错误或恶意行为,也能维持整个网络的一致性。
- 在MonadBFT中,最终确定性是单槽(1秒),执行结果通常在全节点上落后不到1秒。这种单槽的最终确定性意味着,提交交易后,用户将在单个区块之后看到交易的官方排序。除非网络的超级多数行为恶意,否则不会有重新排序的可能性。对于需要快速了解交易结果的用户(例如,高频交易者),可以运行全节点以最小化延迟。
- 并行执行:
- 它使得Monad能够同时执行多个交易。这种方法在首次看来似乎与以太坊的执行语义不同,但实际上并不是。Monad的区块与以太坊的区块相同,都是线性排序的交易集合。执行这些交易的结果在Monad和以太坊之间是相同的。
- 在并行执行过程中,Monad使用乐观执行的方法,即在块中较早的交易完成之前开始执行后续交易。这有时会导致执行结果不正确。为解决这个问题,Monad通过追踪在执行交易过程中使用的输入,并将它们与之前交易的输出进行比较。如果存在差异,表明需要使用正确的数据重新执行该交易。
- 此外,Monad在执行交易时采用了一种静态代码分析器来预测交易间的依赖关系,以避免无效的并行执行。在最佳情况下,Monad可以提前预测许多依赖关系;在最坏情况下,它会回退到简单的执行模式。
- Monad的并行执行技术不仅提高了网络效率和吞吐量,而且通过优化执行策略,减少了因为并行执行导致的交易失败的情况。
- MonadDb:
- MonadDb用于数据存储和处理的优化。它是Monad优化策略的一部分,旨在提高整体网络性能,尤其是在处理状态数据和交易数据方面。这样的组件设计用于增强数据存储的效率和可扩展性,提高区块链网络处理大量数据的能力。它包括改进的数据索引机制、更高效的存储结构和优化的数据访问路径。这些优化有助于减少数据存取时间,提高交易处理速度,从而提升整个区块链网络的性能。
- 向后兼容EVM智能合约:
- 这意味着开发者可以无需更改代码,就能在Sei上部署已经过审核的、与EVM兼容的智能合约。这一点对于开发者来说极为重要,因为它简化了他们将现有智能合约从以太坊等其他区块链转移到Sei的过程。
- 从技术角度来看,Sei节点将自动导入Geth——以太坊虚拟机的Go实现。Geth将用于处理以太坊交易,任何由此产生的更新(包括状态更新或非EVM相关合约的调用)都将通过Sei为EVM创建的特殊接口进行。
- 乐观并行化:
- 它允许区块链在不需要开发者定义任何依赖关系的情况下支持并行化。这意味着所有交易可以并行运行,当出现冲突(例如,交易触及相同的状态)时,链将跟踪每个交易接触的存储部分,并按顺序重新运行这些交易。这个过程将递归地继续,直到解决所有未解释的冲突。因为交易在区块中有序排列,这个过程是确定性的,能够在保持链级别并行性的同时简化开发者的工作流程。
- SeiDB:
- 它将引入名为SeiDB的新数据结构来优化平台的存储层。SeiDB的主要目标是防止状态膨胀,即网络变得数据过重的问题,同时简化新节点的状态同步过程。这样的设计旨在提升Sei区块链的整体性能和可扩展性。
- Sei V2通过将传统的IAVL树转变为一个双组件系统——状态存储和状态承诺,实现了这一目标。这种变化显著减少了延迟和磁盘使用量,并且Sei V2还计划转向使用PebbleDB,以提高多线程访问的读写性能。
- 与现有链的互操作性:
- Sei V2允许EVM与Sei支持的任何其他执行环境之间的无缝组合,为开发者提供了更流畅的体验,他们可以轻松访问本地代币和其他链功能,如质押。它还将创建一个新组件来支持EVM智能合约。这些EVM智能合约将受益于对共识和并行化所做的所有更改,并且还能够与现有的Cosmwasm智能合约进行交互。
- Neon EVM程序:
- 它是一个编译成Berkeley Packet Filter字节码的EVM,运行在Solana上。它在Solana上处理类以太坊交易(Neon交易),遵循以太坊规则。Neon EVM通过类似去中心化的多签EVM账户进行配置,参与者可以更改Neon EVM代码和设置参数。
- Neon EVM处理交易的过程涉及几个关键步骤。首先,用户通过兼容以太坊的钱包发起类似以太坊的交易(N-tx)。这些交易通过Neon Proxy被封装成Solana交易(S-tx),然后被传递给托管在Solana上的Neon EVM程序。Neon EVM程序解封交易,验证用户签名,加载EVM状态(包括账户数据和智能合约代码),在Solana BPF(Berkeley Packet Filter)环境中执行交易,并更新Solana的状态以反映新的Neon EVM状态。
- Neon Proxy:它使以太坊dApps能够以最小的重配置方式移植到Neon。Neon Proxy将EVM交易打包成Solana交易,以容器化解决方案的形式提供,以方便使用。运行Neon Proxy服务器的操作者促进在Solana上执行类以太坊交易,接受NEON代币作为gas费用及Solana生态系统内的其他支付。
- Neon DAO:DAO为Neon基金会提供托管服务,并指导未来的研究和发展。它以Solana上的一系列合约运作,提供控制Neon EVM功能的治理层。NEON代币持有者可以参与DAO活动,包括提出和投票决定提案。
- NEON代币:这种实用代币有两个主要功能 - 支付gas费用和通过DAO参与治理。
- 集成和工具:Neon EVM支持各种开发和分析的集成和工具。这些包括块浏览器(如NeonScan)、ERC-20 SPL包装器用于代币转移、NeonPass用于在Solana和Neon EVM之间转移ERC-20代币、NeonFaucet提供测试代币,以及与MetaMask等EVM兼容钱包的兼容性。
- 结算层 -Ethereum: Eclipse使用以太坊作为其结算层。在这一层上,交易被最终确定和安全保障。使用以太坊不仅意味着利用其健全的安全性和流动性,而且还意味着使用ETH作为支付交易费用的gas代币。这样的设置允许Eclipse从以太坊那里继承强大的安全特性。
- 执行层 -SVM:在智能合约的执行方面,Eclipse采用了SVM。这与EVM顺序执行交易的方式形成鲜明对比,SVM能够进行并行交易处理。其Sealevel运行时的特点是,可以并行处理不涉及重叠状态的交易,使得Eclipse能够水平扩展并提高吞吐量。
- 数据可用性 -Celestia:为确保数据的及时可用和可验证,Eclipse采用Celestia。Celestia为数据发布提供了一个可扩展和安全的平台,是Eclipse高吞吐量的重要支持。
- 欺诈证明 - RISC Zero:Eclipse集成了RISC Zero来进行零知识欺诈证明,避免了中间状态序列化的需求,从而提高了系统的效率和安全性。
- 双虚拟机兼容性:Lumio独特地支持EVM和Aptos的Move VM。这种双重兼容性使Lumio能够无缝整合以太坊和Aptos的功能,提高了dApp开发和执行的灵活性和效率。
- 高吞吐量和低延迟:通过利用像Aptos这样的高性能链进行交易排序,Lumio显著提升了交易带宽。这种整合确保了Lumio能够高效处理大量交易,同时保持以太坊的安全性和流动性特点。
- 乐观Rollup技术:Lumio使用开源OP栈,采用乐观rollup技术。乐观rollups以其高效的交易处理和较低成本而闻名,适合扩展基于以太坊的应用程序。
- 灵活的Gas费用经济模型:Lumio引入了以应用为中心的Gas费用经济模型。这种模型允许应用开发者直接从网络使用中受益,可能激励更多创新和用户友好的dApp开发。
- 互操作性和整合:Lumio能够在Aptos上处理交易,并在以太坊上进行结算,展现了不同区块链生态系统之间的高度互操作性。这一特性使开发者能够在其应用程序中充分利用以太坊和Aptos的优势。
- 安全性和可扩展性的平衡:结合了以太坊的强大安全性和Aptos的可扩展性,为开发者提供了一个有吸引力的解决方案,以构建高性能、安全的dApps。Lumio的架构旨在有效平衡这两个关键方面。
- Narwhal和Bullshark组件:这两个组件对Sui的共识机制至关重要。Narwhal作为内存池,负责加速交易处理,改善网络效率,确保数据提交给Bullshark(共识引擎)时的可用性。Bullshark负责对由Narwhal提供的数据进行排序,利用拜占庭容错机制来验证交易的有效性并在网络中分配这些交易。
- 资产所有权模型:在Sui网络中,资产可以被单一所有者拥有或多个所有者共享。单一所有者的资产可以在网络中快速自由转移,而共享资产需要通过共识系统进行验证。这种资产所有权系统不仅提高了交易处理的效率,还使开发人员能够为其应用程序创建多种类型的资产。
- 分布式计算:Sui的设计允许网络根据需求扩展资源,使其功能类似于云服务。这意味着,随着对Sui网络的需求增加,网络验证者能够增加更多的处理能力,保持网络的稳定性,并维持低gas费。
- Sui Move编程语言:Sui Move是Sui的原生编程语言,专为创建高性能、安全且功能丰富的应用程序而设计。它基于Move语言,旨在改善智能合约编程语言中的缺陷,提高智能合约的安全性和程序员的工作效率。
- 可编程交易块(PTB):Sui中的PTB是一种复杂、可组合的交易序列,可以访问所有智能合约中的任何公开的链上Move函数。这种设计为支付或金融导向的应用程序提供了强大的保证。
- 水平可扩展性:Sui的可扩展性不仅限于交易处理,还包括存储。这使得开发人员能够定义具有丰富属性的复杂资产,并直接存储在链上,而不必为了节省gas费而使用间接的离链存储。