Abstract

Formal methods (FM) are mathematics-based software development methods aimed at producing ``code for a nuclear power reactor''. That is, due application of FM can produce bug-free, zero-defect, correct-by-construction, guaranteed, certified software. However, the software industry seldom use FM. One of the main reasons for such a situation is that there exists the perception (which might well be a fact) that FM increase software costs. On the other hand, FM can be partially applied thus producing high-quality software, although not necessarily bug-free.
 In this paper we outline some FM related techniques whose application the cryptocurrency community should take into consideration because they could bridge the gap between ``loose web code'' and ``code for a nuclear power reactor''. We include relevant case studies in the area of cryptocurrency.

Highlights

  • Given that cryptocurrency software deals with virtual money, software errors can produce irreparable loses

  • In this paper we present the case for the application of Formal methods (FM) to cryptocurrency software

  • We argue that setbased formal modeling, simulation, prototyping and automated proof can be applied before considering more powerful approaches such as code formal verification

Read more

Summary

Introduction

Given that cryptocurrency software deals with virtual money, software errors can produce irreparable loses. They are a valuable target of highly skilled attackers. Banking software is not (always) “loose web code”, it certainly is not “code for a nuclear power reactor” For these reasons the cryptocurrency community is seeking for approaches, methods, techniques and development practices that can reduce the chances of the presence of either errors or vulnerabilities. The traditional banking system has less incentives to pursue high levels of software quality and to seek better development practices. One such approach is the application of Formal Methods (FM) to software construction. We show that test cases can be generated from the same models and how automated proof can be used to evaluate the correctness of these models

Formal methods in a nutshell
Components of cryptocurrency software
Cryptocurrency software as critical systems — Related work
A gradual adoption process
Formal Specification of a Consensus Protocol
Formal Specification of the EVM
Some Verification Techniques for Set-Based Models
Set-based prototypes and simulations
Model-based testing
Automated proofs
Final remarks
A Subtleties and Traps with Security Properties
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call