并行EVM崛起:高性能Layer1的进化之路

EVM:以太坊的核心组件

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

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

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

从这个意义上说,以太坊协议约定交易按照顺序执行。虽然顺序执行确保了交易和智能合约能够以确定性顺序执行,保障了安全性,但在面临高负载的情况下,可能会导致网络拥堵和延迟,这也是为什么以太坊有极大的性能瓶颈,需要Layer2扩容的原因。

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

高性能Layer1的并行之道

大多数高性能Layer1都是基于以太坊不能并行处理的缺陷去设计自己的优化方案,这里只聊执行层的优化,也就是虚拟机和并行执行。

虚拟机

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

WASM是一种体积小、加载快、可移植且基于沙盒安全机制的字节码格式,开发人员可以使用多种编程语言编写智能合约,然后编译成WASM字节码并执行。WASM已经被许多区块链项目接纳为标准,以太坊未来也会集成WASM,从而保证以太坊的执行层更加高效、简单,适合作为完全的去中心化计算平台。

eBPF前身是BPF,原本是用于网络数据包的高效过滤,后经过演化形成了eBPF,提供更丰富的指令集,允许在不改动源码的情况下对操作系统内核进行动态干预和修改其行为。某区块链上执行的智能合约都会编译成SBF(基于eBPF)字节码并在其区块链网络上运行。

Move是一种新的智能合约编程语言,注重灵活性、安全和可验证性。Move语言旨在解决资产和交易中的安全性问题,使得资产和交易能够被严格定义和控制。Move的字节码验证器是一个静态分析工具,分析Move字节码并确定是否遵守所需的类型、内存和资源安全规则,不需要在智能合约级别实现并在运行时检查。某些区块链项目继承了Move或通过自身定制版本来编写其智能合约。

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

并行执行

区块链中的并行执行意味着同时处理不相关的交易。把不相关的交易看作互不影响的事件。例如,如果两个人在不同的交易平台上交易代币,他们的交易可以同时处理。但是,如果它们在同一平台上交易,则可能需要按照特定的顺序执行交易。

实现并行执行的主要挑战是确定哪些交易是不相关的,哪些是独立的,大多数高性能Layer1依赖于两种方法:状态访问方法和乐观并行模型。

状态访问方法需要预先知道每个交易可以访问区块链状态的哪一部分,从而分析出哪些交易是独立的。

在某些区块链中,程序(智能合约)是无状态的,因为它们不能自行访问(读取或写入)在整个交易过程中持续存在的任何状态, 要访问或保持状态,程序需要使用帐户。每个交易必须指定在交易执行期间将访问哪些帐户,这样交易处理运行时可以调度非重叠交易并行执行,同时保证数据一致性。

在某些区块链中,每个智能合约都是一个模块,由函数和结构定义组成。结构在函数中实例化,可以通过函数调用传递给其他模块。运行时存储的结构实例作为对象,存在三种不同类型的对象,分别是拥有者对象,共享对象和不可更改对象。并行化策略与上述类似,交易也需要指定操作哪些对象。

乐观并行模型在所有交易都是独立的假设下运行,只是回顾性地验证这一假设并在必要时进行调整。

某些区块链使用Block-STM(区块软件事务内存)的方法来应用乐观并行执行。在Block-STM中,交易首先在区块内按照一定的顺序进行设置,然后在不同的处理线程之间进行拆分,以便同时执行。在处理这些交易时,系统会跟踪每个交易更改的内存位置。在每一轮处理之后,系统检查所有的交易结果。如果它发现某个交易触及了由早期交易更改的内存位置,则擦除其结果并再次运行。这一过程一直持续到区块中的每个交易都被处理完毕。

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

并行EVM

并行EVM(Parallel EVM)早在2021年就被提起,那时候指的还是支持同时处理多个交易的EVM,旨在改进现有EVM性能和效率,代表方案有某平台基于Block-STM实现的并行EVM,某平台合作开发的并行EVM。

但在2023年底,业内专家不约而同在展望2024年趋势时又提到了并行EVM,带火了一波采用了并行执行技术的EVM兼容Layer1,包括Monand和Sei。

现如今,某些Layer1和Layer2项目都纷纷贴上了并行EVM的标签,令人眼花缭乱。

我认为合理的能定义成并行EVM的只有以下三类:

  1. 没有采用并行执行技术的EVM兼容的Layer1的并行执行升级;

  2. 采用了并行执行技术的EVM兼容的Layer1;

  3. 采用了并行执行技术的非EVM兼容的Layer1的EVM兼容方案。

这里简单介绍下几个代表性项目。

Monad是一个采用PoS机制的兼容EVM的高性能Layer1,旨在通过并行执行显着增强可扩展性和交易速度。Monad允许在区块内并行执行交易以提高效率。它使用乐观并行模型,在上一步的执行完成之前就开始执行新交易。为了应对不正确的结果,Monad跟踪输入/输出并重新执行不一致的交易。静态代码解析器可以预测依赖关系,避免无效的并行性,并在不确定时恢复到简单模式。这种并行执行增加了吞吐量,同时减少了交易失败的可能性。

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

Sei是基于Cosmos SDK开发的Layer1,专门为DeFI设计的公链。Sei V2是对Sei网络的大范围升级,旨在成为第一个完全并行的EVM。与Monad一样,Sei V2将使用乐观并行化。这允许区块链同时执行交易,而不需要开发人员定义任何依赖项。当发生冲突时,区块链将跟踪每个交易触及的存储部分并按顺序重新运行这些交易。这个过程将递归地持续下去,直到所有未解决的冲突都得到解决。

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

Artela是一个可扩展的区块链网络,使开发人员能够构建功能丰富的去中心化应用程序(dApps)。Artela推出的EVM++代表着高扩展性+高性能的并行EVM,分为两个阶段实现,第一阶段将围绕并行执行进行设计,在并行执行的基础上,通过弹性计算保证网络节点算力可扩展,最终实现弹性区块空间。其中并行执行会根据交易依赖冲突分析对交易进行分组以支持并行执行。

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

某平台上的EVM兼容方案是在该平台之上执行EVM交易的解决方案。它实际上是该平台上的一个智能合约,该合约内实现了一个EVM解释器,编译为特定字节码。它内部实现了一套以太坊交易模型和账户模型,用户只需要支付EVM GAS费用即可发送交易。该平台网络的费用是由代理支付的。该平台强制要求交易提供账户列表,包装交易也不例外,所以代理的职责包括生成这个账户列表,同时也获得了该平台的交易并行执行能力。

类似的将EVM作为智能合约运行以实现EVM兼容的方案还有其他几个项目,理论上某些平台上也可以采用此方案来实现无侵入性的EVM兼容。有项目正在做这样的工作,开发一个模块化框架,用于在任何分布式环境中构建和部署基于Move的基础设施、应用程序和区块链。该项目的某模块可以将EVM操作码无缝转换为Move操作码,这意味着Solidity项目可以利用Move的性能和安全优势,而无需一行Move代码。

EVM兼容使得开发者可以轻松将他们的以太坊应用迁移到链上,而无需进行大规模修改,是一个很好建设生态的方向。

总结

区块链的并行技术已经是个老生常谈的话题了,叙事每隔一段时间就会抬一次头,但是目前主要都是对以某区块链的Block-STM机制为代表的乐观执行模型的改造和模仿,没有实质性的突破,所以热度难以持续。

展望未来,还会有更多的新兴的Layer1项目加入并行EVM的竞争,而对于一些旧的Layer1也会实现EVM并行升级或EVM兼容的方案,两个方向殊途同归,还会诞生更多与性能提升有关的新叙事。

不过相比于高性能EVM的叙事,区块链能百花齐放,出现类似WASM,SVM及Move VM的叙事也许更值得期待。

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

ETH1.95%
MOVE1.59%
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 6
  • 分享
评论
0/400
BlockImpostervip
· 21小时前
gas真贵
回复0
RektHuntervip
· 21小时前
gas高了还有替代链 谁玩谁智障
回复0
degenonymousvip
· 21小时前
加个gas费要了老命好吗
回复0
薛定谔的gasvip
· 21小时前
gas战争真tm离谱 前天深夜抢铸又烧没了我三位数刀
回复0
钱包自毁专家vip
· 21小时前
gas费太高还是算了
回复0
绿蜡烛收集家vip
· 21小时前
Gas费快涨死人了
回复0
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)