当前位置: X-MOL 学术arXiv.cs.PL › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
HELMHOLTZ: A Verifier for Tezos Smart Contracts Based on Refinement Types
arXiv - CS - Programming Languages Pub Date : 2021-08-30 , DOI: arxiv-2108.12971
Yuki Nishida, Hiromasa Saito, Ran Chen, Akira Kawata, Jun Furuse, Kohei Suenaga, Atsushi Igarashi

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 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. \HELMHOLTZ{} successfully verifies several practical Michelson programs, including one that transfers money to an account and that checks a digital signature.

中文翻译:

HELMHOLTZ:基于细化类型的 Tezos 智能合约验证器

智能合约是在区块链上执行的程序,基于该程序实现了许多加密货币,并被用于自动化交易。由于智能合约要处理大量资金,因此对一种可以静态和正式验证它们的方法的需求激增。本文介绍了我们的基于类型的静态验证工具 HELMHOLTZ for Michelson,这是一种基于静态类型堆栈的语言,用于编写在区块链平台 Tezos 上执行的智能合约。HELMHOLTZ 是在我们对 Michelson 类型系统的扩展和细化类型的基础上设计的。HELMHOLTZ 将用用户定义的规范注释的迈克尔逊程序以细化类型的形式编写为输入;然后它根据基于细化类型系统的规范对程序进行类型检查,使用 SMT 求解器 Z3 解除生成的验证条件。我们简要介绍了我们针对迈克尔逊核心微积分的细化类型系统,它结合了复合数据类型(例如,列表和对)、高阶函数和另一个合约的调用等特征。\HELMHOLTZ{} 成功验证了几个实用的迈克尔逊程序,其中包括一个将资金转移到帐户和检查数字签名的程序。
更新日期:2021-09-01
down
wechat
bug