paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Verifying Declarative Smart Contracts

验证声明式智能合约
ICSE Proceedings of the IEEE/ACM 46th International Conference on Software Engineering2024匹配度 3/10 · 论文属于传统形式化程序验证,针对智能合约 DSL 并自动推断归纳不变式,但未涉及 LLM/Agent 与静态分析/形式化验证的交叉,也不涉及浮点或贝叶斯程序分析,与用户核心研究方向匹配度低。引用 3 inbox
Haoxian Chen, Lan Lu, Brendan Massey, Yuepeng Wang, Boon Thau Loo
crossref: 2026-09-12

AI 速览

一句话:面向逻辑式 DSL De-Con 编写的声明式智能合约,提出自动化安全验证工具 DCV,可自动推断归纳不变式。

智能合约如今管理着大量数字资产,合约中的缺陷已造成严重经济损失,因此验证合约正确性成为一项重要任务。本文提出了自动化安全验证工具 DCV,其目标是使用 De-Con 编写的声明式智能合约——De-Con 是一种基于逻辑的领域特定语言,同时用于智能合约的实现与规约。DCV 通过数学归纳法证明安全性质,并能借助启发式模式自动推断归纳不变式,无需开发者提供任何注解。作者在 23 个基准合约上进行了评估,结果表明 DCV 能够有效验证从公开代码仓库改编而来的智能合约,并且可以验证其他工具无法支持的合约;此外,DCV 在验证时间上显著优于基线工具。

问题
智能合约管理大量数字资产,其中存在的缺陷会造成重大经济损失,因此需要自动验证合约的正确性;而现有工具难以支持以逻辑式 DSL 编写的声明式智能合约。
方法
提出自动化安全验证工具 DCV,针对逻辑式领域特定语言 De-Con 编写的声明式智能合约,采用数学归纳法证明安全性质,并通过启发式模式自动推断归纳不变式,无需开发者注解。
评估
在 23 个基准合约上开展实验,DCV 能有效验证来自公开仓库的智能合约并支持其他工具无法处理的合约,且验证时间显著优于基线工具。
原文摘要(Abstract)

Smart contracts manage a large number of digital assets nowadays. Bugs in these contracts have led to significant financial loss. Verifying the correctness of smart contracts is, therefore, an important task. This paper presents an automated safety verification tool, DCV, that targets declarative smart contracts written in De-Con, a logic-based domain-specific language for smart contract implementation and specification. DCV proves safety properties by mathematical induction and can automatically infer inductive invariants using heuristic patterns, without annotations from the developer. Our evaluation on 23 benchmark contracts shows that DCV is effective in verifying smart contracts adapted from public repositories, and can verify contracts not supported by other tools. Furthermore, DCV significantly outperforms baseline tools in verification time.

链接与引用

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

BibTeX
@inproceedings{paperbot11260,
  title = {Verifying Declarative Smart Contracts},
  author = {Haoxian Chen and Lan Lu and Brendan Massey and Yuepeng Wang and Boon Thau Loo},
  booktitle = {ICSE},
  year = {2024},
  doi = {10.1145/3597503.3639203}
}