并行EVM技术探究:突破区块链可扩展性瓶颈

以太坊虚拟机EVM

EVM与Solidity的关系

智能合约开发是区块链工程师的基本技能。开发者通常使用Solidity或其他高级语言来实现业务逻辑。然而,EVM无法直接解释Solidity代码,需要将其编译成虚拟机可执行的低级语言(操作码/字节码)。市面上有工具可以自动完成这一转换过程,减轻了开发者理解编译细节的负担。

虽然转换会带来一些额外开销,但熟悉低级编码的工程师可以直接在Solidity中使用操作码编写程序逻辑,以达到最高效率并降低gas消耗。例如,某知名NFT交易平台的协议就广泛使用了内联汇编来最小化用户的gas开销。

深入探讨并行EVM及其生态

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

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

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

深入探讨并行EVM及其生态

并行EVM技术

历史上,区块链社区主要关注共识算法的创新,一些知名项目更因其共识机制而闻名,而非其执行层。尽管这些项目对执行层也有所创新,但它们的性能常被误认为仅源自其共识算法。

实际上,高性能区块链需要创新的共识算法和优化的执行层,类似于"木桶理论"。对于仅改进共识算法的EVM区块链来说,提升性能需要更强大的节点。例如,某知名智能链在2000 TPS的gas限制下处理区块,需要配置比以太坊全节点高几倍的机器。虽然另一个知名Layer 2解决方案理论上支持高达1000 TPS,但其实际性能往往不及预期。

并行处理的需求

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

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

深入探讨并行EVM及其生态

并行EVM的创新

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

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

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

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

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

深入探讨并行EVM及其生态

挑战

并行EVM的技术挑战

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

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

挑战与考量

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

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

深入探讨并行EVM及其生态

并行EVM的格局

并行EVM格局包括多个项目和解决方案。其中一些是Layer 1区块链,而其他一些可能是Layer 2解决方案。有些项目基于现有网络,如某区块链网络,而其他一些则是开源客户端或独立开发的解决方案。

并行EVM的主要条件是EVM兼容网络。尽管一些非EVM网络也采用并行执行,但它们不被视为并行EVM项目。

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

  • 通过并行执行技术升级的EVM兼容Layer 1网络:这些网络最初不采用并行执行,通过技术迭代升级以支持并行EVM。

  • 从一开始就采用并行执行技术的EVM兼容Layer 1网络:一些新兴项目从设计之初就考虑了并行执行。

  • 采用非EVM并行执行技术的Layer 2网络:这些包括扩展导向的Layer 2 EVM兼容链。这些网络将EVM抽象成一个可插拔的执行模块,允许根据需要选择最佳的"VM执行层",从而实现并行能力。

深入探讨并行EVM及其生态

项目

项目A: 领先的并行EVM

该项目旨在通过优化EVM并行执行和流水线架构解决传统EVM的可扩展性问题,目标是达到10,000 TPS。近期完成了大规模融资,成为迄今为止融资最多、估值最高的并行EVM项目。创始团队成员包括来自知名金融科技公司的专业人士。内部测试网已启动,预计几个月内向公众开放。

项目B:推出并行EVM网络

该项目最初是一个专注于交易的Layer 1网络,提供先进的交易应用基础设施。近期宣布全面升级,成为高性能并行EVM,大幅提高TPS。并行EVM测试网已上线,支持EVM应用的一键迁移。主网预计将在今年上半年上线。

项目C:通过双虚拟机增强执行层

该项目旨在通过扩展EVM支持并行执行来提升Layer 1网络的可扩展性。通过构建双虚拟机系统,旨在提升EVM区块链性能和网络执行效率。核心团队成员来自知名区块链项目。公测网已上线,生态系统激励计划已推出。

项目D:引入并行EVM技术

这是一个基于某区块链开发框架构建的EVM兼容Layer 1网络,专为DeFi应用而设计。近期宣布了开发计划,旨在引入并行执行EVM技术以提升网络性能。

项目E:特定区块链的EVM兼容性解决方案

该项目是建立在某高性能区块链网络上的并行EVM,也是首个该网络的EVM兼容性解决方案。它支持Solidity和Vyper EVM开发者一键部署他们的DApp,享受高吞吐量和低gas费。该项目将EVM网络的交易封装成特定格式进行执行,从而提高交易速度,TPS超过2,000。

项目F:将特定VM引入以太坊

这是一个由某知名区块链虚拟机支持的Rollup Layer 2模块化通用解决方案。它在以太坊上结算交易数据,使用ETH作为gas,但其执行层在特定VM环境中运行。近期完成了大规模融资,主网预计很快会向开发者开放。

项目G:模块化VM Layer 2

该项目基于某Layer 2扩展方案构建,是一个模块化VM Layer 2网络。它旨在将高性能虚拟机引入现有的主要以太坊和比特币Layer 2网络。支持使用以太坊或比特币作为结算层,执行层能够使用多种虚拟机进行并行执行。

深入探讨并行EVM及其生态

结论

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

深入探讨并行EVM及其生态

深入探讨并行EVM及其生态

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 3
  • 分享
评论
0/400
钱包被套到退休vip
· 07-08 23:24
gas费太贵 啃老本了
回复0
主网延期通知书vip
· 07-05 23:54
咱们延期都第29次了 gas费还这么高 啥时候轮到性能优化呢
回复0
BlockDetectivevip
· 07-05 23:42
写操作码不如写汇编香啊
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)