Formal Models of Bitcoin Contracts: A Survey

Although Bitcoin is mostly used as a decentralized application to transfer cryptocurrency, over the last ten years there have been several studies on how to exploit Bitcoin to execute smart contracts. These are computer protocols which allow users to exchange bitcoins according to complex pre-agreed rules. Some of these studies introduce formal models of Bitcoin contracts, which specify their behaviour in non-ambiguous terms, in some cases providing tools to automatically verify relevant contract properties. In this paper we survey the formal models proposed in the scientific literature, comparing their expressiveness and applicability in the wild.

[1]  K. Bhargavan,et al.  : Formal Verification of Smart Contracts , 2016 .

[2]  Matteo Maffei,et al.  A Semantic Framework for the Security Analysis of Ethereum smart contracts , 2018, POST.

[3]  Ilya Sergey,et al.  Scilla: a Smart Contract Intermediate-Level LAnguage , 2018, ArXiv.

[4]  Massimo Bartoletti,et al.  Verifying liquidity of Bitcoin contracts , 2019, IACR Cryptol. ePrint Arch..

[5]  Iddo Bentov,et al.  How to Use Bitcoin to Incentivize Correct Computations , 2014, CCS.

[6]  Yi Zhang,et al.  KEVM: A Complete Formal Semantics of the Ethereum Virtual Machine , 2018, 2018 IEEE 31st Computer Security Foundations Symposium (CSF).

[7]  Nikhil Swamy,et al.  Formal Verification of Smart Contracts: Short Paper , 2016, PLAS@CCS.

[8]  Rajeev Alur,et al.  A Theory of Timed Automata , 1994, Theor. Comput. Sci..

[9]  Massimo Bartoletti,et al.  BitML: A Calculus for Bitcoin Smart Contracts , 2018, IACR Cryptol. ePrint Arch..

[10]  Marcin Andrychowicz,et al.  Modeling Bitcoin Contracts by Timed Automata , 2014, FORMATS.

[11]  Massimo Bartoletti,et al.  A formal model of Bitcoin transactions , 2018, IACR Cryptol. ePrint Arch..

[12]  Nick Szabo,et al.  Formalizing and Securing Relationships on Public Networks , 1997, First Monday.

[13]  Marcin Andrychowicz,et al.  Fair Two-Party Computations via Bitcoin Deposits , 2014, Financial Cryptography Workshops.

[14]  Massimo Bartoletti,et al.  A Survey of Attacks on Ethereum Smart Contracts (SoK) , 2017, POST.

[15]  Nobuko Yoshida,et al.  Developing secure bitcoin contracts with BitML , 2019, ESEC/SIGSOFT FSE.

[16]  Massimo Bartoletti,et al.  Constant-Deposit Multiparty Lotteries on Bitcoin , 2017, Financial Cryptography Workshops.

[17]  Iddo Bentov,et al.  How to Use Bitcoin to Design Fair Protocols , 2014, CRYPTO.

[18]  Massimo Bartoletti,et al.  Fun with Bitcoin smart contracts , 2018, IACR Cryptol. ePrint Arch..

[19]  Lawrence Charles Paulson,et al.  Isabelle/HOL: A Proof Assistant for Higher-Order Logic , 2002 .

[20]  Russell O'Connor,et al.  Simplicity: A New Language for Blockchains , 2017, PLAS@CCS.

[21]  Somesh Jha,et al.  Smart Contracts and Opportunities for Formal Methods , 2018, ISoLA.

[22]  Jeremy Clark,et al.  SoK: Research Perspectives and Challenges for Bitcoin and Cryptocurrencies , 2015, 2015 IEEE Symposium on Security and Privacy.

[23]  Marcin Andrychowicz,et al.  Secure Multiparty Computations on Bitcoin , 2014, 2014 IEEE Symposium on Security and Privacy.

[24]  Prateek Saxena,et al.  Making Smart Contracts Smarter , 2016, IACR Cryptol. ePrint Arch..

[25]  Massimo Bartoletti,et al.  SoK: unraveling Bitcoin smart contracts , 2018, IACR Cryptol. ePrint Arch..

[26]  Joseph Sifakis,et al.  An Overview and Synthesis on Timed Process Algebras , 1991, REX Workshop.

[27]  Jorge Sousa Pinto,et al.  Point-free Program Transformation , 2005, Fundam. Informaticae.

[28]  Stefan Dziembowski,et al.  Efficient Zero-Knowledge Contingent Payments in Cryptocurrencies Without Scripts , 2016, ESORICS.

[29]  Andrea Bracciali,et al.  On Symbolic Verification of Bitcoin's script Language , 2018, DPM/CBT@ESORICS.

[30]  Matteo Maffei,et al.  Foundations and Tools for the Static Analysis of Ethereum Smart Contracts , 2018, CAV.

[31]  Andrew Miller,et al.  Zero-Collateral Lotteries in Bitcoin and Ethereum , 2016, 2017 IEEE European Symposium on Security and Privacy Workshops (EuroS&PW).

[32]  Kim G. Larsen,et al.  A Tutorial on Uppaal , 2004, SFM.

[33]  Yoichi Hirai,et al.  Defining the Ethereum Virtual Machine for Interactive Theorem Provers , 2017, Financial Cryptography Workshops.