长话短说

  1. 并行EVM概念正在被几家头部VC押注:Paradigm、Jump、Dragonfly等。

  2. 代表项目是 Monad,另外还有 Sei、MegaETH、Polygon、Neon EVM、BSC 等。有些是 L1,有些是 L2。团队各的具体差异暂无完整的公开信息。

  3. 并行EVM虽然字面意思仅代表了「毛发化」,但其实也是针对EVM各个组件性能的专项优化,所以它的努力很可能代表着EVM标准下的性能极限。

  4. 难点:除了要对整个技术栈重构之外,还有如何提前预判成品的交易是否会发生冲突,以及遇到冲突后的重新执行效率。

  5. 挑战:如何在生态构建差异性、如何在开源中心化和性能之间找到平衡。

既是人工智能算法、DA(数据层)、零知识证明技术被广泛研究和迭代之后,下一个被关注的硬核技术是并行EVM,资本市场也已经为这个叙述投入了上亿美元,并诞生了多个独创的技术角兽级别的一部分。

社区开始关注并行 EVM(EVM 家具化)起源于 Georgios Konstantopoulos(Paradigm 的 CTO)和 Dragonfly 的 Haseeb Qureshi 不约而同在 2023 年底展望 2024 年趋势时,提到了这同一个关键词。但讨论了这个话题的细节并并而且,还有很多人认为这不是什么新概念,EVM 和毛发化计算分别都是相对成熟度的概念了,为什么把这两个词结合在一起就是一个重要的趋势呢?

但这仍然是个非常小众的话题,以至于翻看很多研究机构的年度总结和趋势预测时,都没有提到并行EVM。所以这仍然是个未形成大规模认知的新概念。而且这个概念和转型算法、DA等话题类似,都是纯技术相关的,所以关注的人群就少了。

并行 EVM 最直接的优势是让现有的去中心化应用,实现互联网级别的性能。甚至可以这么说,并行 EVM 是唯一一个既能利用(大量成熟的)现有智能合约的同时,又能实现性能、鬃毛化公链吞吐量的新技术。

范式期待入局已久,跳转系下重注

据《财富》报道,Paradigm 正计划领投 Monad 的最新势头,以 30 亿美元估值买入 2 亿美元。虽然这是 Paradigm 投资计划的第一个并行 EVM 概念的团队,但实际上他们关注的是这项技术已很多年,Georgios Konstantopoulos(Paradigm 的 CTO)曾在 2021 年就提及了这个词。

Monad这个词的起源也很有趣。在椰子莱布尼茨的哲学体系中,Monad是构成Cosmos的基本元素,它们是不可分的、不受物理影响的实体,每个Monad都反映了整个Cosmos,在中文中曾被翻译为“单子”。

而在计算机科学中,Monad是函数式编程语言中的一种设计模式,它帮助程序员以近乎数学的毁灭性来处理现实世界的复杂性,使得代码更加标准化、易于理解和维护。

另一个音符是, Monad 和 Nomad 互为「变位词」(Anagram),nomad 是指游牧者,而 digital nomad 是指数字游民/数字牧民。

除了 Monad,Georgios 讨论这个话题时还超越过 Sei 和 Polygon。不过他这么看好并行 EVM 还有一个重要原因,就是他们开发了一个以太坊客户端 Reth。它的定位就是高性能的以太坊执行层客户端,用 Rust 语言实现。Reth 以快速的速度开发,刚进入 Beta 阶段。也许他们会考虑直接在 Reth 上实现并行 EVM,但到其他研发的工程量,通过投资团队推动并行 EVM 可能是一个更好的选择。根据 Monad 的文档,他们在工程上主要采用的是 C++ 和 Rust。

Reth 推出之初还被 Erigon 团队成员抄袭其 Akula 的开源代码,也导致了 Akula项目短缺资金停止开发。Georgios 回应称 Reth 不是任何其他客户端的分叉,代码也不来自于任何其他客户端,但并没有受到Geth、Erigon 和 Akula 的影响和启发。(https://thedefiant.io/paradigm-accused-copying-code)

另一个核心参与者就是Jump Trading和Jump Capital,Monad创始人来自Jump Trading,拥有丰富的高频交易的经​​验;Sei的投资人有Jump Capital,而且Jump还一直深度参与Solana生态,包括基础建设和项目。

而 Monad 的早期投资者 Dragonfly 也一直关注相关的波动,曾投资关注分片技术的 NEAR,以及 Aptos、Avalanche、Nervos 等公链。

升级算法还不够,终于轮到执行层

在过去的几次公链大战中,执行层一直是被重视的地方,他们几乎只讨论算法的创新,无论是 Solana、Avalanche 还是 EOS 等。虽然他们在执行层有很多创新,但社区更多还是记得他们使用了投票算法,并且整个社区都认为这些性能公链能够获得这些性能就是来自投票算法的创新。

但其实不然,如果想要获得一个性能的公链,Arbitrum算法和执行层是需要配对的,也符合木桶短板效果。而对于那些基于EVM并且只改进Arbitrum算法的公链,提升性能就需要更强的限制的节点。比如像BSC把区块可以处理的Gas在了2000 TPS的水平,需要的机器配置数倍于以太坊全节点的投入。Polygon理论可以达到1000 TPS,平时大约几十到上百。

BSC节点节点至少需要16核CPU和128G内存,以太坊节点至少需要4核CPU和16G内存。

BSC 团队也很早就认识到这些问题,所以一直在和 NodeReal 合作开发并行 EVM 技术。只有这样才能进一步提升每个区块可以处理交易的数量,让更多交易量执行,提升 TPS 上限。

配件:不仅从单核升级为多核CPU

在大多数区块链系统中,交易是按照顺序执行的,你可以把想象成一个完整的单核CPU,当前的计算完成后,才能进行下一次计算。这种方式虽然慢,但其优点是简洁且系统复杂度低。

但如果未来区块链系统需要接入互联网级别的用户规模,单核 CPU 肯定不够用。所以升级为多核 CPU 的玩具化虚拟机,可以同时处理多笔交易,增加吞吐量。不过,这在工程实现上有很多的挑战,比如同时处理对同一个智能合约写入数据的两笔交易怎么办?就需要设计一套新的来解决这种矛盾。而对于其他完全不相关的智能合约的任务执行,可以按照任务处理的线程数,按规模提升吞吐量。

另外,并行 EVM 不仅提升了线程能力,还优化了单线程时的执行效率。Monad CEO Keone Hon 表示,“……(EVM 的)真正的瓶颈在于处理事物时间隙读取读取状态……”。他还表示,任务只执行路线图的一个任务,Monad 更大的任务是高效围绕 EVM,制定相关任务。

所以,并行EVM虽然字面上的意思仅代表了「毛发化」,但实际上也是针对EVM各个组件性能的专项优化,所以它的努力很可能代表着EVM标准下的性能极限。

EVM 不等于 Solidity

编写智能合约是大多数区块链开发者的必备技能。工程师可以根据业务需求,用Solidity或其他智能合约的高级语言写出相应的逻辑实现。但EVM其实并不能直接读懂Solidity的逻辑,需要经过一些「翻译」,将其翻译(编译)为一种机器能理解的低级语言后(操作码操作码/字节码字节码),才能被虚拟机执行。而这个翻译的过程,Solidity 开发者也不需要理解,因为已经有成熟的工具实现了。

毕竟是「翻译」,所以其中同时会产生一些开销(额外开销)。而对于有基础代码经验的工程师来说,可以在 Solidity 中直接用操作码编写程序逻辑,这样能达到最高的效果,那么用户交易可以节省Gas。比如Opensea推出的Seaport协议就在智能合约中大量使用了内联协议,急需为用户减少Gas支出。

所以,如果并行 EVM 能够最终实现,不仅能带来附加化的能力,还能优化整个 EVM 堆栈的性能。普通的应用开发者不需要节省一点 Gas 就蕴藏着巨大的能量优化,因为底层的虚拟机已经足够强大了,能够消除这些差异。

EVM性能各不相同,「标准」不等于「工程实践」

「虚拟机」也可以被称为「执行层」,是智能合约被编译为操作码后,最终被计算和处理的引擎。以太坊虚拟机(EVM)定义的「字节码」目前已经成为了行业标准,无论是基于以太坊的二层网络,还是其他独立的公链,都更愿意先直接且完整兼容EVM的标准,开发者编写一次智能合约就可以配置到多个网络中,极高。

所以只要能完全兼容 EVM 的「字节码」标准,就可以称为 EVM,但是实现方式可以千差万别。比如以太坊客户端 Geth 中就用 Go 语言实现了 EVM 标准。但以太坊基金会的执行层研究团队 Ipsilon 维护了一个用 C++ 开发的 EVM 独立实现,其他以太坊客户端可以直接调用这个库来作为 EVM 执行。

举个例子,很多工业化生产的产品都有其对应的国际标准,比如某产品出厂时需要满足菌落数小于某个特定的值才能销售,这就是「标准」。但如何满足这个出厂时的标准,每一个家工厂可以从用几十种不同的杀菌方式中选择,而有的工厂能找到更高的方式来满足这个要求,这就是「实践」。

一致有evmone的实现,也可以做其他实现。所以在EVM的这个例子中,EVM的标准定义了一些基础的操作方式「字节码」(比如支持加减乘等最基础的算术),每个字节码有确定的输入时,有确定的输出。在满足这个标准时,实现(实践)方式天差地别,有大量的自定义空间和工程优化的可能性。

并行EVM的异同

在 Parallel EVM 串行中,除了最炙手可热的 Monad 之外,还有 Sei、MegaETH、Polygon、Neon EVM、BSC 等,以及 Paradigm 的 Reth 客户端也想实现疯狂化的功能。

从定位来看,Monad、Sei、Polygon、BSC 都是 Layer 1区块链,而 MegaETH 可能是 Layer 2,Neon EVM 是基于 Solana 网络的。另外,Reth 是一个开源的客户端,MegaETH 其他部分基于Reth的工程继续开发。

当然这几个团队之间还存在公开竞争关系,而且也没有完全所有的技术细节和工程文件,更多的对比要等后续他们逐渐公开才能展开。也许这又像军备竞赛一样,像 BTC Layer 2 、Restake、以太坊 Layer 2 一样,虽然技术之间存在严重差异(且开源),但更重要的是如何构建生态的独特性。

并行EVM的技术难点

对于执行的交易来说,达到CPU并读取读取状态的过程。但好处是这种方式足够简单,不会出错,所有事务按部就班的执行完成。而对于硬件执行的虚拟机来说言下之意,是可能存在状态冲突的,所以在执行前或执行后需要增加这部分的判断。

一个简单的例子就是,如果虚拟机支持四个线程执行,且每个线程同时处理一笔交易,万一这四笔交易都是和 Uniswap 上的同一个交易矿池交易,那么就不能线程交易计算,因为每次交易后都会影响这个交易矿池的交易价格。但是如果这四个线程同时处理四件完全不相关的事情,那就没有问题。

这里面会涉及到不同团队的设计和工程实现,至少要保证在完成后执行,需要一个模块来检测冲突,如果遇到冲突就重新执行。当然,如果能提前预判并提示可能存在冲突的交易,也可以增加整个虚拟机的资源效率。

除了并行EVM这个虚拟机的工程实现差异之外,各个团队一般染色体重新设计并增强状态数据库的读写性能,并搭配设计一个决策算法,比如Monad设计的MonadDb和MonadBFT。

挑战

对于并行EVM而言,有两个可能会存在的挑战:长期的工程价值是否会被以太坊捕获;节点的中心化。

由于各个团队处于并行EVM技术上还处于开发和测试阶段,所以还没有选择开源所有工程细节,这是目前的护城河。但是进入测​​试网和主网后,这些工程文件就会被公开,也有可能会被以太坊或者其他公链吸收。所以到了那个时候,就需要更快地推进生态建设,构建更多生态层面的护城河。

这个问题也这么严重,一方面对于加密货币开发者而言,现在有更多的开源许可供给选择(比如 Uniswap 的那种可以将代码公开,但不允许分叉为商业项目的许可),另一方面是Monad的定位本就和以太坊有差异。以太坊在未来能实现单插槽终局性(SSF),交易的最终性还是12秒的,这对于更高的应用场景是显然的不够。

对于所有高性能公链来说另一个挑战都一样,就是如何部署更多节点,那么用户的消耗许可(permissionless)、消耗信任(trustless)的基本要求:去中心化。也许这其中可以量化一些指标,比如「TPS除以节点的硬件需求」,这样就能实现控制变量,对比在特定硬件需求的标准下,哪个公链/客户端的TPS更高。毕竟节点的硬件需求越低,节点数量就可能越多。

接下来,我们将持续跟踪并行EVM各个项目的进展,并详细深入讨论他们的技术和差异。