Smart Contract Design Meets State Machine Synthesis: Case Studies
Dmitrii Suvorov, Vladimir Ulyantsev

TL;DR
This paper explores the use of finite state machine synthesis from formal specifications to automatically generate correct smart contracts, demonstrated through case studies like crowdfunding and auctions.
Contribution
It introduces a method for synthesizing smart contracts as FSMs from LTL specifications, enabling correct-by-construction code generation for blockchain applications.
Findings
FSM synthesis successfully generated smart contracts from LTL specifications.
Generated contracts were directly translatable into executable Solidity code.
Case studies demonstrated practical applicability of the approach.
Abstract
Modern blockchain systems support creation of smart contracts -- stateful programs hosted and executed on a blockchain. Smart contracts hold and transfer significant amounts of digital currency which makes them an attractive target for security attacks. It has been shown that many contracts deployed to public ledgers contain security vulnerabilities. Moreover, the design of blockchain systems does not allow the code of the smart contract to be changed after it has been deployed to the system. Therefore, it is important to guarantee the correctness of smart contracts prior to their deployment. Formal verification is widely used to check smart contracts for correctness with respect to given specification. In this work we consider program synthesis techniques in which the specification is used to generate correct-by-construction programs. We focus on one of the special cases of program…
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
TopicsSecurity and Verification in Computing · Formal Methods in Verification · Advanced Malware Detection Techniques
