Helmholtz: A Verifier for Tezos Smart Contracts Based on Refinement Types
Helmholtz: A Verifier for Tezos Smart Contracts Based on Refinement Types
复制标题
Helmholtz:基于细化类型的 Tezos 智能合约验证器
DOI:
10.1007/s00354-022-00167-1
复制
发表时间:
2022
影响因子:
2.6
通讯作者:
Igarashi Atsushi
中科院分区:
文献类型:
--
作者:
Nishida Yuki;Saito Hiromasa;Chen Ran;Kawata Akira;Furuse Jun;Suenaga Kohei;Igarashi Atsushi
Asmart contractis a program executed on a blockchain, based on which many cryptocurrencies are implemented, and is being used for automating transactions. Due to the large amount of money that smart contracts deal with, there is a surging demand for a method that can statically and formally verify them. This article describes our type-based static verification toolHelmholtzfor Michelson, which is a statically typed stack-based language for writing smart contracts that are executed on the blockchain platform Tezos.Helmholtzis designed on top of our extension of Michelson’s type system with refinement types.Helmholtztakes a Michelson program annotated with a user-defined specification written in the form of a refinement type as input; it then typechecks the program against the specification based on the refinement type system, discharging the generated verification conditions with the SMT solver Z3. We briefly introduce our refinement type system for the core calculus Mini-Michelson of Michelson, which incorporates the characteristic features such as compound datatypes (e.g., lists and pairs), higher-order functions, and invocation of another contract.Helmholtzsuccessfully verifies several practical Michelson programs, including one that transfers money to an account and that checks a digital signature.