2017年12月的一个周末,一款叫CryptoKitties的养猫游戏几乎让以太坊网络瘫痪。这个如今看来颇为质朴的NFT游戏,在高峰期占据了以太坊全网近四分之一的交易量,链上待处理交易一度堆积到3万笔以上,普通转账的确认时间从几秒钟拉长到数小时,Gas价格被推高至450 gwei以上。这是加密行业第一次大规模见识到,一条被寄予厚望的世界计算机,可能被一款游戏级别的应用挤到几乎无法使用。
八年过去,类似的场景反复上演。2021年DeFi Summer期间,Uniswap、Compound、Yearn等协议的组合式交互让链上活动激增,Gas价格长期维持在高位;2022年4月,Yuga Labs发售Otherside系列NFT的"地契",铸造热潮在24小时内烧毁超过5.5万枚ETH,价值约1.58亿美元,不少用户为铸造两枚NFT支付了超过1.4万美元的Gas费,甚至有人为一笔5美元的转账被要求支付4500美元以上的手续费。以太坊网络当时几近宕机,Yuga Labs事后专门发文致歉。
这些事件相隔数年,触发原因各异,但指向同一个技术根源:以太坊虚拟机在设计上是单线程的,所有交易必须逐笔、按顺序执行。这个约束从未被绕开,只是被一次次拥堵重新提醒。
为什么以太坊天生跑不快
根据Chainspect的实时监测数据,以太坊主网当前的TPS约为15.48笔每秒,最近100个区块的峰值也只有约75笔每秒,而理论上限约为238笔每秒。这组数字本身就值得玩味:即便是理论峰值,也远低于一张普通信用卡网络的处理能力,更不用说日常运行水平与理论值之间还有着数倍的差距。
造成这一现象的核心原因并不复杂。EVM的执行模型要求每一笔交易都必须完整执行完毕、状态更新完成之后,才能开始下一笔交易的执行。这种严格的串行顺序不是工程疏漏,而是一种有意为之的设计选择:它保证了无论在哪个节点上重放同一组交易,得到的最终状态永远一致,这是区块链共识得以成立的基础。以太坊的全局状态树进一步放大了这种约束,因为所有交易,不管彼此是否存在数据依赖,都要与同一棵庞大的Merkle Patricia Trie交互,任何一笔交易的执行都可能触碰到这棵树的任意角落。
这意味着以太坊在设计之初,就在确定性与吞吐量之间做出了取舍,牺牲了后者去换取前者。这个取舍在网络参与者稀少、链上活动清淡的早期完全说得过去,但当越来越多资金、用户和应用涌入以后,单线程执行就成了一道物理天花板。
这道天花板并非完全无法触碰。以太坊社区近年持续通过提升区块Gas上限来挤出更多空间:Gas上限在2024年2月从3000万提升到3600万,到2025年底进一步抬高至6000万左右,验证者社区目前还在推动向4500万甚至更高的目标迈进。这些调整确实让TPS从2024年一季度的13.67笔每秒,缓慢爬升到2026年一季度的25.78笔每秒。但这种提升本质上是在同一套串行执行架构里"加宽车道",边际收益递减明显,而且提升Gas上限会直接加重全节点的状态存储与同步负担,是一种有代价的权衡,而不是架构性的突破。
拥堵不是意外,是必然
如果把以太坊网络想象成一条单车道公路,那么每一次热点应用的爆发都相当于所有车辆同时涌入这条车道。CryptoKitties是最早的样本,此后每一轮叙事周期都会重演类似剧本:2020年DeFi Summer期间流动性挖矿带来的高频交互,2021到2022年NFT铸造热潮中Bored Ape Yacht Club及其衍生项目引发的抢购潮,都让Gas价格在短时间内飙升数十倍。
这背后还有一层更精巧的机制放大了拥堵的烈度:优先级Gas拍卖(Priority Gas Auction,简称PGA)。在以太坊早期的一价拍卖模型下,交易能否被矿工优先打包,很大程度上取决于用户愿意支付多高的Gas价格。当稀缺资源(比如一次NFT铸造名额,或是一笔套利机会)出现时,参与者会不断加价,试图在链上抢跑,这种竞价行为本身又进一步推高了整个网络的Gas水位,殃及所有其他用户的普通交易,也为矿工可提取价值(MEV)留出了操作空间。
以太坊在2021年8月通过EIP-1559对这套机制做了根本性重构。研究者指出,旧的一价拍卖模型存在三重问题:用户经常按照钱包建议的、原本为应对拥堵校准的Gas价格出价,导致平时也支付两到五倍于市场出清水平的费用;同一区块内Gas价格可能出现50%以上的剧烈波动;矿工同时拿走出块奖励和全部手续费,有动机操纵交易的打包顺序。EIP-1559引入了随区块动态调整的基础费用(base fee),这部分费用直接销毁而非付给矿工,用户只需额外支付一小笔优先费(priority fee)用于加速打包。这套设计确实降低了费用的不可预测性,也切断了矿工从基础费用中攫取额外收益的路径,但它调节的是费用形成机制,并没有改变交易必须逐笔串行执行这一根本约束。换句话说,EIP-1559治理的是拥堵的价格信号,而不是拥堵的成因。
这也是为什么即便EIP-1559已经上线、Gas上限也在持续提升,只要出现足够密集的链上活动,费用飙升和确认延迟依然会重演。只要执行引擎是单线程的,容量就存在硬上限,一旦需求超过这个上限,价格机制唯一能做的就是把超额需求挤出去,而不是消化掉它。
确认延迟:另一重容易被忽视的成本
讨论以太坊性能时,TPS常常是唯一被提及的指标,但确认延迟同样关键,而且比TPS更容易被误解。
以太坊合并到权益证明之后,出块间隔固定在约12秒。但一个区块被打包出来,并不代表它已经不可逆转。以太坊采用Casper FFG作为最终性组件,检查点在每个32个slot的epoch开始时被证明和最终确定,需要经过两个epoch、约三分之二验证者的证明,一个检查点才会被正式最终确定,整个过程耗时约12.8分钟。这意味着,一笔交易从被打包到获得经典意义上的密码学最终性,中间要经历大约十几分钟的等待。对于普通转账,这个延迟或许可以接受;但对于交易所大额充提、跨链桥接、高频清算这类场景,十几分钟的不确定窗口是一个实实在在的成本。
行业内因此发展出"软确认"与"硬最终性"两套并行的实践口径:多数应用在交易被打包进几个区块之后就认为其大概率不会被重组,从而提供近似的确认体验;但真正需要密码学级别保证的场景,仍然要等待完整的最终性周期。这种分层本身是合理的工程折中,但也说明一个问题:以太坊当前的性能约束,不只体现在吞吐量的数字上,也体现在用户和应用不得不围绕这些约束设计自己的风险模型。
为什么"兼容EVM"还要动执行模型
一个自然的问题是:既然EVM生态如此庞大,工具链如此成熟,为什么不能简单地保留EVM字节码和语义,只在底层做工程优化,比如更快的存储引擎、更好的网络传播,来提升性能?
答案在于,以太坊的性能瓶颈并不主要来自网络传播或存储读写的效率,而是来自执行阶段本身的串行结构。无论底层数据库多快、P2P网络多优化,只要交易必须一笔接一笔地进入EVM解释器执行,吞吐量就永远受限于单核CPU的处理速度乘以出块时间。多核处理器早已是服务器和消费级设备的标配,但传统EVM的执行路径完全无法利用这些额外的核心,这是一种明显的资源浪费。
这正是为什么过去几年,"并行执行"成为高性能公链设计中最核心的技术分歧点,也是Solana、Aptos、Sui、Monad、Sei等一系列项目不约而同选择的方向,尽管它们各自选择的并行化路线(确定性调度、乐观并发控制、对象模型)差异很大。对于坚持EVM兼容的项目而言,问题变得更具体:如何在保留Solidity合约语义、保留账户与全局状态模型的前提下,让原本串行的执行引擎具备并行处理能力,同时不破坏那个最初让EVM可信的性质,也就是确定性。
这不是一个可以靠堆硬件绕开的问题,而是一个需要重新设计执行引擎的问题。这也是本系列接下来要逐步展开的核心内容:并行执行到底解决什么、有哪些路线可选、工程实现上要跨过哪些障碍,以及像Bitroot这样选择乐观并行EVM路线的项目,具体是如何应对的。
延伸阅读
数据来源:Chainspect - Ethereum;Consensys - The Inside Story of the CryptoKitties Congestion Crisis;Decrypt - Otherside NFT Mint Burned More Than $157M in Ethereum;CryptoSlate - Ethereum user spends $44,000 in gas fees;Ethereum Improvement Proposals - EIP-1559;eth2book - Casper FFG;Cointelegraph - Ethereum gas limit target
