Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of 2019
DOI: 10.1145/3338906.3341173
|View full text |Cite
|
Sign up to set email alerts
|

Developing secure bitcoin contracts with BitML

Abstract: We present a toolchain for developing and verifying smart contracts that can be executed on Bitcoin. The toolchain is based on BitML, a recent domain-specific language for smart contracts with a computationally sound embedding into Bitcoin. Our toolchain automatically verifies relevant properties of contracts, among which liquidity, ensuring that funds do not remain frozen within a contract forever. A compiler is provided to translate BitML contracts into sets of standard Bitcoin transactions: executing a cont… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
37
0

Year Published

2019
2019
2024
2024

Publication Types

Select...
4
4

Relationship

3
5

Authors

Journals

citations
Cited by 28 publications
(37 citation statements)
references
References 35 publications
0
37
0
Order By: Relevance
“…Although this state space is potentially infinite for BitML, verification is possible through the finitestate abstraction in Bartoletti and Zunino (2019). Verification of Uppaal models is possible through the Uppaal model checker (http://www.uppaal.org); a tool for verifying BitML contracts is available (Atzei et al, 2019). There also exists a formalization of BitML in Agda (https://github.com/omelkonian/formal-bitml), which allows for verifying properties of BitML contracts through a proof assistant.…”
Section: Discussionmentioning
confidence: 99%
See 1 more Smart Citation
“…Although this state space is potentially infinite for BitML, verification is possible through the finitestate abstraction in Bartoletti and Zunino (2019). Verification of Uppaal models is possible through the Uppaal model checker (http://www.uppaal.org); a tool for verifying BitML contracts is available (Atzei et al, 2019). There also exists a formalization of BitML in Agda (https://github.com/omelkonian/formal-bitml), which allows for verifying properties of BitML contracts through a proof assistant.…”
Section: Discussionmentioning
confidence: 99%
“…In this paper we have compared the various languages and models for Bitcoin contracts. The need for formal modeling of Bitcoin contracts is motivated by the surprising complexity that these contracts may exhibit: for instance, the literature reports the use of Bitcoin to implement financial services, auctions, timed commitments, lotteries, and a variety of other gambling games (Atzei et al, 2018a(Atzei et al, , 2019. Our survey aims to help programmers to choose the right model for their contracts, based on the required expressiveness and available verification tools.…”
Section: Discussionmentioning
confidence: 99%
“…Namely, it incurs no additional error or bug during conversion. Other works 68 , 69 implement several common smart contracts in BitML, such as covenants and timed commitments. However, BitML language is still limited to some extent as there are contracts that could not be expressed by it.…”
Section: Constructing Smart Contracts With Scriptsmentioning
confidence: 99%
“…The choice of the smart contract language may be dictated by the choice of the underlying blockchain platform: for instance, it would be inappropriate to design a Turing-equivalent language for Bitcoin contracts, since the current restrictions on Bitcoin scripts and transactions make the expressiveness of Bitcoin contracts quite limited (Atzei et al, 2019). Even when the underlying blockchain supports Turing-equivalent contracts, like e.g., in Ethereum and Cardano, it could still be useful to restrict the expressiveness of high-level contract languages, since this would improve their verification capabilities, besides making it simpler for humans to understand programs.…”
Section: Route #2: Designing Domain-specific Languages For Smart Contmentioning
confidence: 99%
“…Focussing on the investor, the desired high-level behavior is that, in any possible interaction with the contract, the investor will gain EUR 1000 within 10 years. In restricted smart contract languages like those proposed by Atzei et al (2019) and Seijas et al (2020) it is possible to craft a contract that is statically verified to respect this high-level property. The actual contract actually depends on the assumptions on the other participants (e.g., if the bank, or the insurance company, or none of them is considered honest), and on the amounts initially deposited in the contract.…”
Section: Route #2: Designing Domain-specific Languages For Smart Contmentioning
confidence: 99%