HELMHOLTZ: A Verifier for Tezos Smart Contracts Based on Refinement Types
Yuki Nishida, Hiromasa Saito, Ran Chen, Akira Kawata, Jun Furuse,, Kohei Suenaga, Atsushi Igarashi

TL;DR
HELMHOLTZ is a static verification tool for Tezos smart contracts written in Michelson, using an extension of the type system with refinement types to ensure correctness and security.
Contribution
It introduces a refinement type system for Michelson and a verification tool that discharges verification conditions using Z3, enabling formal verification of smart contracts.
Findings
Successfully verifies practical Michelson programs
Handles complex features like compound datatypes and higher-order functions
Verifies contracts involving money transfer and digital signatures
Abstract
A smart contract is 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 tool HELMHOLTZ for Michelson, which is a statically typed stack-based language for writing smart contracts that are executed on the blockchain platform Tezos. HELMHOLTZ is designed on top of our extension of Michelson's type system with refinement types. HELMHOLTZ takes 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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsCryptography and Data Security · Blockchain Technology Applications and Security · Logic, Reasoning, and Knowledge
