paperbot · PL 论文追踪

全部论文 待读 收藏

P2 SigVM: enabling event-driven execution for truly decentralized smart contracts

SigVM:为真正去中心化的智能合约启用事件驱动执行
OOPSLA 6(OOPSLA2)2022匹配度 1/10 · 该论文聚焦区块链虚拟机与智能合约事件驱动执行,属于运行时系统/DSL工程,与用户关注的静态分析、LLM/Agent、浮点程序分析和贝叶斯程序分析均无直接关联。引用 2 inbox
Zihan Zhao, Sidi Mohamed Beillahi, Ryan Song, Yuxi Cai, Andreas Veneris, Fan Long
crossref: 2026-09-10

AI 速览

一句话:提出首个扩展 EVM 支持事件驱动执行的区块链虚拟机,通过信号事件实现合约间自动触发,消除对中心化链下中继的依赖。

现有智能合约常依赖链下中继服务器等中心化且不可靠机制来实现合约间交互。SigVM 扩展 EVM,引入事件驱动执行模型:合约可发出信号事件,其他合约可监听,事件触发后对应处理函数自动作为信号交易执行。作者构建了端到端区块链平台 SigChain 和合约语言编译器 SigSolid。实验表明,基准应用可用 SigVM 以真正去中心化方式重实现,平均仅需修改 3.17% 的合约代码,且运行时和 gas 开销可忽略。

问题
智能合约之间的交互常依赖链下中继等中心化、不可靠机制,难以实现真正去中心化的合约协作。
方法
SigVM 扩展 EVM,支持合约发出信号事件并由其他合约监听,事件触发时自动执行对应处理函数作为信号交易;同时实现 SigChain 平台和 SigSolid 合约语言编译器。
评估
通过基准应用将合约重实现为 SigVM 版本,测量代码修改比例、运行时和 gas 开销。
原文摘要(Abstract)

This paper presents SigVM, the first blockchain virtual machine that extends EVM to support an event-driven execution model, enabling developers to build truly decentralized smart contracts. Contracts in SigVM can emit signal events, on which other contracts can listen. Once an event is triggered, corresponding handler functions are automatically executed as signal transactions. We build an end-to-end blockchain platform SigChain and a contract language compiler SigSolid to realize the potential of SigVM. Experimental results show that our benchmark applications can be reimplemented with SigVM in a truly decentralized way, eliminating the dependency on centralized and unreliable mechanisms like off-chain relay servers. The development effort of reimplementing these contracts with SigVM is small, i.e., we modified on average 3.17% of the contract code. The runtime and the gas overhead of SigVM on these contracts is negligible.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot1440,
  title = {SigVM: enabling event-driven execution for truly decentralized smart contracts},
  author = {Zihan Zhao and Sidi Mohamed Beillahi and Ryan Song and Yuxi Cai and Andreas Veneris and Fan Long},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {6},
  number = {OOPSLA2},
  year = {2022},
  doi = {10.1145/3563312}
}