上期视频已经做好啦:一口气了解 BTC L2 的发展范式~
https://www.bilibili.com/video/BV1dw411575M/?vd_source=e88bbc11f1ecd88d1c5847538efee51c
Alt L1 的竞争已经白热化,Near 推出 DA 解决方案,Sui 的 TVL 一路攀升,只有以太坊还在不紧不慢搞主网升级,L2 浮现并行 EVM 和去中心化排序器两大竞争点。
在当下和未来,一个基本事实是以太坊的地位已经很难撼动,模块化的概念将会泛化,如果 Vitalik 对 Celestia 的打压不成功,那么市场会择优选择,组合和模块化不止发生于同一体系内,市场原则会促使项目方自由组装各要件,比如各公链、L2 和比特币间组合可用性,BTC L2 的火热即是明证。
如果 Near 能干 DA 的活,那么 Aptos、Solana 和 Sui 等高性能公链也就能被“ L2 化”,最终被以太坊兼容和吞并。
并行 EVM 可以被理解为并行化的 EVM 兼容链/L2,可以从区块链速度入手,理论上解决区块链运行缓慢只有两个办法:
加码硬件,不断调优。比如 Solana 的硬件配置独一档的高,“机房”的管理和配置可以让 Solana 享受超高网速和提升吞吐量;
多核并行,多线并发。硬件提升后,多核心便可真正实现多任务,此外,不断将任务切分细化也可提升效率,这也是计算机通用做法。
默认硬件利用已经达到极致,那么并行 EVM 可以从以下三个层次去进行分类和理解:
并行是计算机领域的通用做法,任意公链和 L2 都可使用。比如 Aptos、Sui 和 Solana 等 Alt L1,或者 Sei 这个宣称自己是第一个兼容 EVM 的 L1,以及 Scroll(2024 路线图)、Lumio、Eclipse 等以太坊 L2 项目,还有 Neon EVM 等异构链上的兼容 EVM 解决方案,Neon EVM 就属于 Solana 生态,也宣称自己是第一个兼容 EVM 的。
并行 EVM 狭义上指能够兼容 EVM 的 L1/L2,理论上以太坊自己也可以实行并行化改造,这是最符合定义的并行 EVM,但是动作太大几乎不可能存在;
并行 EVM 广义上可以扩展,任意并行计算链,无论自身是否兼容 EVM,只要可以打通和 EVM 的链接,就可以归属在内,比如将 Aptos 作为以太坊的“加速器”。
考察非 EVM 兼容的 Alt L1 也具备特殊意义,它们可以被接入 EVM 生态,此外,Aptos 所开创的 Block-STM 方案也成为众多新兴并行 EVM 方案事实上的模版和思路来源,下文会详述。
前置:线程、进程、并行和并发和 EVM 的通俗说明我沿着并行 EVM 拆解的思路将其归类,但是对并行概念说明仍不完备,如果接下来直接讲项目实现的逻辑,会让人不得其解,简直是以其昭昭使人昏昏。
同样,诸如“进程是资源分配的最小单位,线程是CPU调度的最小单位”之类的解释虽然专业,但也对大多数人不甚友好,我想以买瓜为例来说明这个过程。
先铺垫一下,我们的计算机最底层是物理硬件,其上才是操作系统和各类应用,计算机在处理任务时,就是根据优先级将软硬件资源分配出去,我们以华强买瓜来说明这个过程:
线程、进程、并行和并发的关系华强骑车要去买一个西瓜,这是个单一行为,也是最小单位,是一个线程,一个西瓜此时就是能调用的物理硬件资源,多了没有;两个华强要一起去买一个西瓜,这是个复合行为,因为有两个华强要吃瓜,但是要注意,此时仍然只有一个西瓜,多了也没有。并且两个华强约好了一起去砍西瓜,谁不去谁就不是兄弟,那么此时两个华强买瓜就是一个进程,每个华强吃瓜仍然是一个线程,因此一个进程里包括了两个线程。这个时候,只有一个西瓜但是要多个人吃的情况就是并发,这里的重点是大家一起吃西瓜,要保证每个人都能最起码吃上一口,因为不论吃瓜的人有多少,他们之间如何分座位、先后,都不影响一瓜多吃的最终结果。
聪明的你一定看出问题来了,为啥非得这么多人一起吃西瓜,开西瓜摊的老板本质上是水果店老板,你还可以吃香蕉啊,说的对,这就是需要供给侧改革的原因,现在老板宣布,香蕉也上市了,那么此时物理资源(水果)就增加了,华强可以分为两列分别取吃不同的水果,这就是并行,两行并列,各吃所爱。
下一步将它们和 EVM 组合到一起,组装出并行 EVM 的真正涵义。
EVM 虽然经常被提起,但是其真正指向却含混不清,尤其是虚拟机(VM,virtual machine)总是给人一种脱实向虚的感觉,其实,不较真的说,虚拟机就是特化的操作系统,程序员不需要面向物理实体搞开发,只需要在软件层面适配就行。
简化一下 EVM 的作用就是交易,用户提交指令,随后 EVM 会按照用户的需求,如转账、SWAP、质押还是其他需要和智能合约交互的行为都会被一一执行。这里的重点是指令和一一执行,EVM 可以理解用户的需求,但是执行需要排队,不能随意改变顺序。
所以并行 EVM 本质上就是改变了执行顺序,允许多个智能合约(指令)同时进行,相当于挂摊老板雇工,他卖西瓜,小弟卖香蕉,最终挣钱了还是老板的。
EVM 说明最典型的就是我前一篇文章提到的 BTC L2 们,现在的 BTC L2 基本上都是想给比特币接入 EVM 生态,其实他们自己就是个比特币上的虚拟机,开发者面向他们开发,就不需要考虑比特币自身架构和编程语言的限制,可以用熟悉的 EVM 开发流程一步到位。
EVM 与此同理,极端一点说,如果你是个前端,那么甚至可以在完全不了解硬件、操作系统原理、以太坊原理的基础上面向文档开发,只需要看懂 EVM 开发工具和接口的说明,比如写出某个 DEX 的前端界面(只做理论说明,实际上非常复杂)。
一言以蔽之,虚拟机(VM)是摒除硬件和原理后的加工作坊,比如是华强买瓜要做西瓜汁,那么虚拟机就是榨汁机,一杯西瓜汁只需要三步:开盖、放入西瓜、榨汁,完事。
同理,EVM 就是以太坊的榨汁机,兼容 EVM 就是 L1/L2 买的拼多多平替榨汁机,虽然存在一些瑕疵,但是也能用,而并行 EVM 就是多个榨汁机一起工作。
不是手工用不起,而是榨汁机更有性价比。
最后,并行 EVM 概念重出江湖,本质上是以太坊只能依次处理单笔交易带来的速度限制,其主网 TPS 只能稳定在 10 左右,BNB Chain(BSC) 等较为中心化的 EVM 兼容链也只能提到到 200 左右,在物理硬件没有革命性突破,以及以太坊自身无法改造为并行机制的前提下,并行 EVM 赛道将长期火热,毕竟,没有人会嫌速度快。
现状:乐观验证成为共识,Move 系渐有救驾之势并行和 VM 的概念早已有之,但是引入到区块链,尤其是并行 EVM 概念,其实是以 2022 年为起点,Aptos 发布了《Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing》的论文,随后 Polygon PoS 链便在当年底尝试加入了该功能,不仅如此,Aptos 在这篇论文中提出的诸多方案和思路也成为行业共同选择,需要予以介绍。
并行EVM相关项目及分类梦想起点:Block-STM可以这样说,Aptos 是区块链并行化的集大成者,虽然 Solana、Near 已经有所探索,但是 Aptos 在区块链中应用的的 STM(软件事务内存,Software Transactional Memory)重新对交易进行排序,核心思路是先假设排序后的交易都是对的,并行执行后发现有不对的,单独解决个别不对的,按照二八定律,这样大部分的交易都可以得到加速执行,此所谓乐观验证机制,和 Rollup 中的乐观验证机制思路基本一致。
Block-STM具体而言,Block-STM 将区块链的执行过程分为两个阶段:排序阶段和执行阶段。
排序阶段,Block-STM 使用 STM 来对交易进行排序,以确保交易的顺序性;执行阶段,Block-STM 利用排序结果来并行执行交易,从而提高执行效率。自此之后的并行 EVM 基本上都与此类似,只不过排序和执行上存在实现差别,以及要增加对 EVM 的兼容,比如 Neon EVM 和 Polygon PoS 都属于此类。
Sui 改造:一切皆对象Sui 和 Aptos 师出同门,二者高度相似,但是最大差别在于 Sui 以对象(Object)为核心,比如在 Alice 给 Bob 的转账流程中,作用方式如下:
Aptos:Alice 账户减去 1 USDT,Bob 账户加上 1 USDT,涉及到两个账户的记账信息和余额变动;Sui:1 USDT 保持不变,只改变其所有权属性,将所有权由 Alice 变动为 Bob,这样只涉及 1 USDT 的信息改动;如你所见,Sui 的出发点不是考察交易双方的账户,而是涉及对象的属性变化,由此推广,不仅是代币转移,也可以是 NFT 等资产。
再延伸一下,如果一个资产只涉及点对点之间的属性变化,其实并不需要同步全节点,只要双方认可该交易即可,如此一来,此类交易都可并行处理。
当然,二者的具体实现要复杂的多,并行也会带来很多问题,但是了解到此处已经足够。
Solana 和 Neon EVM:借壳上市Solana 本身的并行处理是通过 Sea Level 机制来实现,和 Block-STM 类似(其实应该颠倒,Sea Level 提出于 2019 年,Block-STM 提出于 2022 年),都是需要对交易排序,然后再执行。
Solana 的“创新”在于对硬件资源的专项优化,理论上不仅可以对所有指令进行排序,并且优化后的多线程可以发挥处理器的全部效能,达到高并发的效果,TPS 理论值 5 万,实测高峰可达 5 千左右。
那么这和 Neon EVM 的关系在哪里呢?
Neon EVM 花费Neon 要做的就是同步 EVM 的交易信息,然后用 Solana 来运算,这样既可以利用 EVM 生态的 dApp 丰富度和安全保障,也可以利用 Solana 来提速降费,相较于以太坊主网的昂贵和缓慢,Neon 的授权、转账、存借基本上在 0.1 甚至 0.01 美元以下。
不太恰当的说,Neon 把 Solana 变成了以太坊的另类 L2,触类旁通,L1/L2 EVM 不仅可以自己实现并行,其实也可以当中介,自身只负责兼容 EVM 或者只做 L1/L2,而把剩下的部分外包出去。
这也是开头我说,泛化的模块化的真正含义,L1/L2 并行 EVM 完全可以是三个项目的组合产物,甚至是跨链组合,如此一来,玩法就多种多样了。
Sei V2 和 Monad:一起开心,字节兼容从技术实现上而言,Sei V2 和 Monad 非常相似,两者都是对以太坊的字节级兼容 EVM,其实在并行思路上,都不约而同选择了熟悉的乐观验证,先排序,能执行的就执行,出错了,再单独解决依赖项。
Sei V2 并行方案说明当然,成熟的产品和思路大家都能用,但是要注意,如同 BTC L2 一样,真正的技术创新并不多,仍然是以“组合”为主,Solana 是唯一大规模实践并行,并且软硬件搭配跑出高并发效果的 L1,其他的更多是“兼容 EVM+并行”的套餐装。
大家肯定能想到,既然 Solana 能被当做加速器,那么 Aptos 等也可以,事实上,Lumio 也是这么想的,只要自己作为中介,一面兼容 EVM,一面实现并行,那么都可以被称为并行 EVM,故此,不对 Lumio 再做过多说明。
结语:并行 EVM 的困境在本文中,我着重强调的是并行 EVM 的核心是硬件资源的调配和任务的排序执行,两者缺一不可,软件优化的上限是物理硬件的参数限制,毕竟博尔特也没法超越光速,但是并行 EVM 目前主要都是对 Aptos 的 Block-STM 的改造和模仿,这也是基本事实。
此外,目前不需要过度探索以太坊 L2 上的并行实践,它们更需要解决排序器的中心化问题,效率已经足够高。
并行 EVM 并不神秘,我在行文中省去了各项目的读写机制设计、TPS 对比、数据记录和状态同步等技术细节,普通人完全没必要了解这些东西,牢牢记住当前处于乐观验证打满全场,乐观验证就是先执行再排错的思路即可,如果有更新,我会为大家及时补充。
参考文献:
Sealevel — Parallel Processing Thousands of Smart Contracts
awesome-parallel-blockchain
Parallel Computing
Introduction to Parallel Computing Tutorial
Sei v2 - The First Parallelized EVM Blockchain
https://docs.monad.xyz/
MT Capital: Understanding Parallel EVM: Project Overview and Future Perspectives
Parallel Power Unlocked
https://neonevm.org/whitepaper.pdf
Block-STM: Scaling Blockchain Execution by Turning Ordering Curse to a Performance Blessing
https://github.com/MystenLabs/sui/blob/main/doc/paper/sui.pdf
Built for Speed: Under the Hoods of Aptos and Sui
Innovating the Main Chain: a Polygon PoS Study in Parallelization