Abstract
With the popularity of Bitcoin, there is a growing need to understand the functionality, security, and performance of various mechanisms that comprise it. In this paper, we analyze Bitcoin’s scripting language, Script, that is one of the main building blocks of Bitcoin transactions. We formally define the semantics of Script, and study the problem of determining whether a user-defined script is well-formed; that is, whether it can be unlocked, or whether it contains errors that would prevent this from happening.
Highlights
Bitcoin (Nakamoto, 2008; Bonneau et al, 2015; Narayanan et al, 2016; Antonopoulos, 2017) is a decentralized cryptocurrency protocol proposed in 2008 by a person or a group of people under the pseudonym Satoshi Nakamoto
The Bitcoin protocol and its Script language permit the design of different forms of smart contracts, and currently we have a variety of pre-designed contracts, and several formal models to understand the correctness of contracts, their semantics or their power [see e.g. (Bartoletti and Zunino, 2019)]
We focused on Script, the scripting language of the Bitcoin protocol, and contribute to its understanding in three aspects:
Summary
Bitcoin (Nakamoto, 2008; Bonneau et al, 2015; Narayanan et al, 2016; Antonopoulos, 2017) is a decentralized cryptocurrency protocol proposed in 2008 by a person or a group of people under the pseudonym Satoshi Nakamoto. Bitcoin allows for transactions between users, and can be used for instance as a way of transferring money between individuals in a secure way, and without depending on any bank or centralized institution. The subject of this article is a feature called “smart contracts”, which, in Bitcoin, work by specifying certain requirements that must be satisfied by transactions before this money can be spent. The subject of this article is a feature called “smart contracts”, which, in Bitcoin, work by specifying certain requirements that must be satisfied by transactions before this money can be spent1 These contracts are issued using Script, a language designed for this task, and that is integrated into the Bitcoin protocol. In order to dig deeper on Bitcoin’s smart contracts, we start by pointing out some of the differences that exist between a common bank transaction and a Bitcoin transaction
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.