Is it Possible to Verify if a Transaction is Spendable? - Arenas, Marcelo; Reisenegger, Thomas; Reutter, Juan; Vrgoč, Domagoj (Frontiers in Blockchain, 2021)
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.