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
Summary
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
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have