# EVM:以太坊的核心组件EVM是以太坊的核心,负责运行智能合约和处理交易。作为一个计算引擎,EVM提供了计算和存储的抽象,类似于Java虚拟机(JVM)规范。EVM执行自己的字节码指令集,这些指令集通常由Solidity编译而成。EVM是一个准图灵完备的状态机。"准"是因为所有执行步骤都会消耗有限的资源Gas,避免了可能的死循环导致整个以太坊平台停止的情况。EVM没有调度功能,以太坊的执行模块从区块中取出交易,EVM负责依次执行。执行过程中会修改最新的世界状态,一笔交易执行完成后进行状态累加,到达区块完成后的最新世界状态。下一区块的执行严格依赖上一个区块执行后的世界状态,所以以太坊的交易线性执行过程难以进行并行执行优化。从这个意义上说,以太坊协议约定交易按照顺序执行。虽然顺序执行确保了交易和智能合约能够以确定性顺序执行,保障了安全性,但在面临高负载的情况下,可能会导致网络拥堵和延迟,这也是以太坊存在性能瓶颈,需要Layer2 Rollup扩容的原因。# 高性能Layer1的并行之道大多数高性能Layer1都基于以太坊不能并行处理的缺陷设计自己的优化方案,主要聚焦在虚拟机和并行执行两个方面。## 虚拟机EVM设计成一台256位的虚拟机,目的是为了更易于处理以太坊的哈希算法。然而,实际运行EVM的计算机需要把256位的字节映射到本地架构来执行智能合约,从而使得整个系统变得非常低效。因此从虚拟机的选择上,高性能Layer1更多采用基于WASM、eBPF字节码或Move字节码的虚拟机,而非EVM。WASM是一种体积小、加载快、可移植且基于沙盒安全机制的字节码格式。开发人员可以使用多种编程语言编写智能合约,然后编译成WASM字节码并执行。WASM已经被许多区块链项目接纳为标准,包括EOS、Dfinity、Polkadot等。eBPF源自BPF(Berkeley Packet Filter),提供更丰富的指令集,允许在不改动源码的情况下对操作系统内核进行动态干预和修改其行为。Solana上执行的智能合约都会编译成SBF(基于eBPF)字节码并在其区块链网络上运行。Move是Diem设计的一种新的智能合约编程语言,注重灵活性、安全性和可验证性。Move语言旨在解决资产和交易中的安全性问题,使得资产和交易能够被严格定义和控制。Aptos和Sui都采用了Move语言的变体来编写智能合约。## 并行执行区块链中的并行执行意味着同时处理不相关的交易。实现并行执行的主要挑战是确定哪些交易是不相关的,哪些是独立的。大多数高性能Layer1依赖于两种方法:状态访问方法和乐观并行模型。状态访问方法需要预先知道每个交易可以访问区块链状态的哪一部分,从而分析出哪些交易是独立的。Solana和Sui采用了这种方法。乐观并行模型假设所有交易都是独立的,只是回顾性地验证这一假设并在必要时进行调整。Aptos采用了这种方法,使用Block-STM(区块软件事务内存)来应用乐观并行执行。# 并行EVM并行EVM(Parallel EVM)旨在改进现有EVM性能和效率。目前,可以定义为并行EVM的主要有三类:1. 没有采用并行执行技术的EVM兼容Layer1的并行执行升级,如BSC和Polygon。2. 采用了并行执行技术的EVM兼容Layer1,如Monand、Sei V2和Artela。3. 采用了并行执行技术的非EVM兼容Layer1的EVM兼容方案,如Solana Neon。Monad是一个采用PoS机制的兼容EVM的高性能Layer1,使用乐观并行模型来实现区块内交易的并行执行。Sei V2是Sei网络的大范围升级,旨在成为第一个完全并行的EVM。与Monad一样,Sei V2将使用乐观并行化。Artela推出的EVM++代表着高扩展性+高性能的并行EVM,分为两个阶段实现,第一阶段将围绕并行执行进行设计。Solana Neon是Neon Labs开发的解决方案,用于在Solana之上执行EVM交易。Neon EVM实际上是Solana上的一个智能合约,该合约内实现了一个EVM解释器。# 总结区块链的并行技术是一个持续发展的话题。目前,主要是对以Aptos的Block-STM机制为代表的乐观执行模型进行改造和模仿。未来,可能会有更多新兴Layer1项目加入并行EVM的竞争,同时一些现有Layer1也可能实现EVM并行升级或EVM兼容方案。除了高性能EVM的叙事外,区块链领域还可能出现更多元化的发展,如WASM、SVM及Move VM等不同虚拟机技术的应用和创新。这种多样性将有助于推动整个区块链生态系统的进步和创新。
EVM并行化新趋势:高性能Layer1的创新与挑战
EVM:以太坊的核心组件
EVM是以太坊的核心,负责运行智能合约和处理交易。作为一个计算引擎,EVM提供了计算和存储的抽象,类似于Java虚拟机(JVM)规范。EVM执行自己的字节码指令集,这些指令集通常由Solidity编译而成。
EVM是一个准图灵完备的状态机。"准"是因为所有执行步骤都会消耗有限的资源Gas,避免了可能的死循环导致整个以太坊平台停止的情况。
EVM没有调度功能,以太坊的执行模块从区块中取出交易,EVM负责依次执行。执行过程中会修改最新的世界状态,一笔交易执行完成后进行状态累加,到达区块完成后的最新世界状态。下一区块的执行严格依赖上一个区块执行后的世界状态,所以以太坊的交易线性执行过程难以进行并行执行优化。
从这个意义上说,以太坊协议约定交易按照顺序执行。虽然顺序执行确保了交易和智能合约能够以确定性顺序执行,保障了安全性,但在面临高负载的情况下,可能会导致网络拥堵和延迟,这也是以太坊存在性能瓶颈,需要Layer2 Rollup扩容的原因。
高性能Layer1的并行之道
大多数高性能Layer1都基于以太坊不能并行处理的缺陷设计自己的优化方案,主要聚焦在虚拟机和并行执行两个方面。
虚拟机
EVM设计成一台256位的虚拟机,目的是为了更易于处理以太坊的哈希算法。然而,实际运行EVM的计算机需要把256位的字节映射到本地架构来执行智能合约,从而使得整个系统变得非常低效。因此从虚拟机的选择上,高性能Layer1更多采用基于WASM、eBPF字节码或Move字节码的虚拟机,而非EVM。
WASM是一种体积小、加载快、可移植且基于沙盒安全机制的字节码格式。开发人员可以使用多种编程语言编写智能合约,然后编译成WASM字节码并执行。WASM已经被许多区块链项目接纳为标准,包括EOS、Dfinity、Polkadot等。
eBPF源自BPF(Berkeley Packet Filter),提供更丰富的指令集,允许在不改动源码的情况下对操作系统内核进行动态干预和修改其行为。Solana上执行的智能合约都会编译成SBF(基于eBPF)字节码并在其区块链网络上运行。
Move是Diem设计的一种新的智能合约编程语言,注重灵活性、安全性和可验证性。Move语言旨在解决资产和交易中的安全性问题,使得资产和交易能够被严格定义和控制。Aptos和Sui都采用了Move语言的变体来编写智能合约。
并行执行
区块链中的并行执行意味着同时处理不相关的交易。实现并行执行的主要挑战是确定哪些交易是不相关的,哪些是独立的。大多数高性能Layer1依赖于两种方法:状态访问方法和乐观并行模型。
状态访问方法需要预先知道每个交易可以访问区块链状态的哪一部分,从而分析出哪些交易是独立的。Solana和Sui采用了这种方法。
乐观并行模型假设所有交易都是独立的,只是回顾性地验证这一假设并在必要时进行调整。Aptos采用了这种方法,使用Block-STM(区块软件事务内存)来应用乐观并行执行。
并行EVM
并行EVM(Parallel EVM)旨在改进现有EVM性能和效率。目前,可以定义为并行EVM的主要有三类:
没有采用并行执行技术的EVM兼容Layer1的并行执行升级,如BSC和Polygon。
采用了并行执行技术的EVM兼容Layer1,如Monand、Sei V2和Artela。
采用了并行执行技术的非EVM兼容Layer1的EVM兼容方案,如Solana Neon。
Monad是一个采用PoS机制的兼容EVM的高性能Layer1,使用乐观并行模型来实现区块内交易的并行执行。
Sei V2是Sei网络的大范围升级,旨在成为第一个完全并行的EVM。与Monad一样,Sei V2将使用乐观并行化。
Artela推出的EVM++代表着高扩展性+高性能的并行EVM,分为两个阶段实现,第一阶段将围绕并行执行进行设计。
Solana Neon是Neon Labs开发的解决方案,用于在Solana之上执行EVM交易。Neon EVM实际上是Solana上的一个智能合约,该合约内实现了一个EVM解释器。
总结
区块链的并行技术是一个持续发展的话题。目前,主要是对以Aptos的Block-STM机制为代表的乐观执行模型进行改造和模仿。未来,可能会有更多新兴Layer1项目加入并行EVM的竞争,同时一些现有Layer1也可能实现EVM并行升级或EVM兼容方案。
除了高性能EVM的叙事外,区块链领域还可能出现更多元化的发展,如WASM、SVM及Move VM等不同虚拟机技术的应用和创新。这种多样性将有助于推动整个区块链生态系统的进步和创新。