EVM并行化:区块链高性能Layer1的演进与挑战

robot
摘要生成中

EVM:以太坊的核心组件

EVM是以太坊的核心,负责运行智能合约和处理交易。它是一个计算引擎,提供计算和存储的抽象,类似于Java虚拟机规范。EVM执行自己的字节码指令集,通常由Solidity编译而成。

EVM是一个准图灵完备的状态机。"准"是因为所有执行步骤都会消耗有限的资源Gas,避免了可能的死循环导致整个平台停止的情况。

EVM没有调度功能,以太坊的执行模块从区块中取出交易,EVM负责依次执行。执行过程会修改最新的世界状态,一笔交易执行完成后进行状态累加,直到区块完成后形成最新的世界状态。下一区块的执行严格依赖上一个区块执行后的世界状态,因此以太坊的交易线性执行过程难以进行并行执行优化。

以太坊协议约定交易按照顺序执行。虽然顺序执行确保了交易和智能合约能够以确定性顺序执行,保障了安全性,但在面临高负载的情况下,可能会导致网络拥堵和延迟,这也是以太坊存在性能瓶颈的原因。

并行EVM:高性能 Layer1 的换心术

高性能Layer1的并行之道

大多数高性能Layer1都基于以太坊不能并行处理的缺陷设计自己的优化方案,主要集中在虚拟机和并行执行两个方面。

虚拟机

EVM设计成一台256位的虚拟机,目的是为了更易于处理以太坊的哈希算法。然而,实际运行EVM的计算机需要把256位的字节映射到本地架构来执行智能合约,使得整个系统变得非常低效。因此,高性能Layer1更多采用基于WASM、eBPF字节码或Move字节码的虚拟机。

WASM是一种体积小、加载快、可移植且基于沙盒安全机制的字节码格式,被许多区块链项目采用。eBPF提供更丰富的指令集,允许在不改动源码的情况下对操作系统内核进行动态干预和修改其行为。Move是一种新的智能合约编程语言,注重灵活性、安全和可验证性。

并行EVM:高性能 Layer1 的换心术

并行执行

区块链中的并行执行意味着同时处理不相关的交易。实现并行执行的主要挑战是确定哪些交易是不相关的,哪些是独立的。高性能Layer1主要依赖于两种方法:状态访问方法和乐观并行模型。

状态访问方法需要预先知道每个交易可以访问区块链状态的哪一部分,从而分析出哪些交易是独立的。乐观并行模型在所有交易都是独立的假设下运行,只是回顾性地验证这一假设并在必要时进行调整。

并行EVM:高性能 Layer1 的换心术

并行EVM

并行EVM早在2021年就被提起,指的是支持同时处理多个交易的EVM,旨在改进现有EVM性能和效率。2023年底,并行EVM再次成为热点话题,多个项目纷纷贴上了并行EVM的标签。

合理的并行EVM定义包括三类:

  1. 没有采用并行执行技术的EVM兼容Layer1的并行执行升级
  2. 采用了并行执行技术的EVM兼容Layer1
  3. 采用了并行执行技术的非EVM兼容Layer1的EVM兼容方案

代表项目包括Monand、Sei V2、Artela和Solana Neon等。这些项目采用不同的技术方案实现并行执行,以提高交易处理效率和网络性能。

并行EVM:高性能 Layer1 的换心术

并行EVM:高性能 Layer1 的换心术

并行EVM:高性能 Layer1 的换心术

并行EVM:高性能 Layer1 的换心术

总结

区块链的并行技术是一个反复讨论的话题,但目前主要集中在对乐观执行模型的改造和模仿,缺乏实质性突破。未来可能会有更多新兴Layer1项目加入并行EVM的竞争,旧的Layer1也可能实现EVM并行升级或EVM兼容方案。

除了高性能EVM的叙事,区块链领域还需要更多样化的发展,如WASM、SVM及Move VM等技术的应用和创新。这种多元化的发展将有助于推动整个区块链生态系统的进步和创新。

ETH-0.82%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 5
  • 分享
评论
0/400
空投猎手小张vip
· 17小时前
这gas真是薄饼都买不起了
回复0
AirdropHunter9000vip
· 08-02 02:58
Gas是必需的~终于懂了
回复0
GraphGuruvip
· 08-02 02:55
Gas花的好多啊
回复0
GasFeeNightmarevip
· 08-02 02:55
深夜Gas战士岗位报道 还在蹲着gwei跌到20
回复0
rekt_but_vibingvip
· 08-02 02:54
Gas费又得冲爆咯
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)