SOLC-VERIFY: A Modular Verifier for Solidity Smart Contracts

被引:59
作者
Hajdu, Akos [1 ]
Jovanovic, Dejan [2 ]
机构
[1] Budapest Univ Technol & Econ, Budapest, Hungary
[2] SRI Int, New York, NY USA
来源
VERIFIED SOFTWARE: THEORIES, TOOLS, AND EXPERIMENTS, VSTTE 2019 | 2020年 / 12031卷
关键词
D O I
10.1007/978-3-030-41600-3_11
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present SOLC-VERIFY, a source-level verification tool for Ethereum smart contracts. SOLC-VERIFY takes smart contracts written in Solidity and discharges verification conditions using modular program analysis and SMT solvers. Built on top of the Solidity compiler, SOLC-VERIFY reasons at the level of the contract source code, as opposed to the more common approaches that operate at the level of Ethereum bytecode. This enables SOLC-VERIFY to effectively reason about high-level contract properties while modeling low-level language semantics precisely. The properties, such as contract invariants, loop invariants, and function pre- and post-conditions, can be provided as annotations in the code by the developer. This enables automated, yet user-friendly formal verification for smart contracts. We demonstrate SOLC-VERIFY by examining real-world examples where our tool can effectively find bugs and prove correctness of non-trivial properties with minimal user effort.
引用
收藏
页码:161 / 179
页数:19
相关论文
共 41 条
[1]  
Abdellatif T, 2018, INT CONF NEW TECHNOL
[2]  
Alt L, 2018, LECT NOTES COMPUT SC, V11247, P376, DOI 10.1007/978-3-030-03427-6_28
[3]  
[Anonymous], 2005, Technical Report
[4]  
[Anonymous], 2019, ETHEREUM CONSTANTINO
[5]  
[Anonymous], 2004, JOT, DOI [10.5381/jot.2004.3.6.a2, DOI 10.5381/JOT.2004.3.6.A2]
[6]  
[Anonymous], 2018, NIST-National Vulnerability Database
[7]  
Antonopoulos A. M., 2019, Mastering Ethereum: Building Smart Contracts and DApps, V1st ed.
[8]   A Survey of Attacks on Ethereum Smart Contracts (SoK) [J].
Atzei, Nicola ;
Bartoletti, Massimo ;
Cimoli, Tiziana .
PRINCIPLES OF SECURITY AND TRUST (POST 2017), 2017, 10204 :164-186
[9]  
Barrett Clark, 2011, Computer Aided Verification. Proceedings 23rd International Conference, CAV 2011, P171, DOI 10.1007/978-3-642-22110-1_14
[10]  
Barrett C., 2018, Handbook of Model Checking, P305, DOI DOI 10.1007/978-3-319-10575-8_11