欢迎莅临 IEEE HotICN 中文社区,IEEE HotICN 国际学术会议网站: https://hoticn.com, https://hoticn.cn。

未分类 杨, 宗霖

Seer: Accelerating Blockchain Transaction Execution by Fine-Grained Branch Prediction

Source: https://www.ndnlab.com/

Zhang S, Cheng R, Liu X, et al. Seer: Accelerating Blockchain Transaction Execution by Fine-Grained Branch Prediction[J]. Proceedings of the VLDB Endowment, 2024, 18(3): 822-835.

随着去中心化应用(dApps)在以太坊等公链上的爆发式增长,智能合约交易的执行开销已成为制约区块链性能的核心瓶颈。预执行(Pre-execution)是一种被广泛采用的加速手段,但当面对包含大量状态变量相关分支的现代智能合约时,预执行的效果大打折扣。发表于 PVLDB 2024 的研究 Seer,通过引入细粒度的分支预测机制,使预执行的结果在实际执行中得以最大程度复用,在真实以太坊负载下实现了平均 20.6 倍的整体加速。

一、研究背景与动机:预执行为何”失灵”

以太坊采用”传播-共识-执行”(DiCE)模型处理交易,智能合约交易约占以太坊总负载的 70%。为了加速执行阶段,节点通常在共识阶段并行对交易进行预执行,将 I/O 和计算开销从关键路径上卸载。

然而,现代智能合约逻辑日趋复杂,内部包含大量与状态变量相关的分支条件(SV-conditions)。由于预执行基于上一个区块提交后的状态快照,而实际执行时状态已经发生变化,预执行路径与实际执行路径可能出现偏离。论文对以太坊真实数据的分析表明,每笔合约交易平均包含 4.1 个状态变量相关分支,随着预执行规模增大,路径偏差的比例持续上升。这不仅导致缓存的预执行结果无法复用,还会使并发执行中的冲突检测出现误判,最终拉高交易的中止率。

插图

二、核心设计:两级分支预测机制

Seer 的核心思路是:不走”暴力遍历所有路径”的老路,也不放弃状态相关的操作,而是精准预测每一个状态变量分支的走向。

整个系统由三大组件构成:交易排序模拟器(Transaction Ordering Simulator)、分支预测器(Branch Predictor)和执行调度器(Execution Scheduler)。

在预执行阶段,交易排序模拟器根据 Gas 费对交易池中的交易进行排序,模拟实际执行顺序。分支预测器则负责在预执行过程中识别和预测状态变量相关的分支方向。Seer 提出了基于栈追踪的分支识别方法,通过标记 SLOAD 指令获取的状态变量,在遇到比较操作码时自动识别出 SV-condition,无需依赖合约源代码或反编译工具。

预测机制分为两个层级。第一层是基于多版本缓存的状态预测:Seer 维护一个多版本缓存结构,记录预执行过程中状态变量的所有写版本,使后续交易能够读到最新的状态值来判断分支方向。第二层是基于感知器模型的轻量预测:对于方向历史呈现规律性的分支,Seer 采用优化后的 perceptron+ 模型直接预测方向,跳过多版本缓存的查询开销。两层机制协同工作——规律分支由感知器快速处理,不规律分支回退到多版本状态预测,兼顾效率与准确性。

三、创新点:基于检查点的快速路径执行

为了最大程度复用预执行结果,Seer 在每个 SV-condition 处生成检查点快照(Checkpoint Snapshot),缓存该点之前的执行状态,包括读写集、分支信息和 EVM 执行状态(栈、内存、程序计数器等)。

在实际执行阶段,执行调度器逐一验证每个检查点中的分支预测结果。如果预测正确,直接复用缓存的状态转移结果,跳过 EVM 的逐指令执行;如果预测失败,则从最近的检查点恢复执行,而非从头开始。这种设计确保了即使部分预测失败,已经正确执行的路径仍然可以被复用。

此外,当预执行过程中有新的高优先级交易到达时,Seer 还设计了轻量级预执行修复机制。它只检查受影响交易的分支预测结果是否仍然正确,仅在预测失效时才从相应检查点重新执行,避免了全量重启的开销。

插图1

四、实验效果:真实以太坊负载下的性能验证

论文基于 Geth 实现了 Seer 的原型系统,并使用 2022 年 1 月至 5 月的真实以太坊交易数据进行评估。

在分支预测准确率方面,即使是复杂交易(C-TXs),约 80% 的交易实现了所有分支的完美预测,命中率与普通交易接近。

在交易级加速方面,Seer 对复杂交易的平均加速比达到 50.2 倍,其中 40.6% 的复杂交易获得了 50 倍以上的加速,远超 Forerunner 和 MTPU 两个基线方案。

在整体执行阶段,Seer 结合 OCC-DA 并发控制方案,实现了平均 20.6 倍的加速和约 18 Ktps 的吞吐量,是所有对比方案中性能最优的。

在冲突检测方面,由于 Seer 能提供更准确的读写集,交易中止率始终控制在 1% 以下,而传统方案的中止率随规模增长可达 6% 以上。

在资源开销方面,Seer 的内存消耗仅为原生以太坊的 1.22 倍,通过将大部分计算和 I/O 操作卸载到预执行阶段,实际执行阶段的 CPU 利用率显著降低。

五、总结与意义

Seer 的价值在于它证明了一个重要观点:面对智能合约日益复杂的分支逻辑,通过精准预测而非暴力遍历,可以在不牺牲正确性的前提下,将预执行的潜力充分释放出来。其两级分支预测机制和检查点快速路径执行的设计思路,对于未来处理更复杂的链上应用具有重要的参考价值。随着 DeFi、NFT 等应用的持续演进,合约逻辑的复杂度只会继续增长,Seer 所代表的”预测驱动执行”范式有望成为下一代区块链执行引擎的关键方向。

论文链接:https://doi.org/10.14778/3712221.3712245

代码仓库:https://github.com/CGCL-codes/SeerEVM

喜欢 (0)