Bitcoin+: Cheap Support for Complex Spending Conditions in a UTXO Ledger
摘要
Cryptocurrencies can be used merely to transfer value between identities, but many of the more interesting uses of cryptocurrencies require contracts, e.g., “a transfer of X coins from party S to party R is permitted only if conditions A and B hold”. Bitcoin (and related cryptocurrencies) place strict limits on the language in which these conditions can be phrased. In particular, conditions have limited length and may not contain loops. In this work, we show how to augment the Bitcoin scripting language with a single “innocuous” operation to allow us to create “meta conditions” with much more expressive power (e.g., as defined by arbitrarily-sized circuits). We construct a protocol to compile such meta-conditions into a set of (augmented) Bitcoin transactions. We then show how to use this compiler to realize a full “meta-ledger” functionality, which we show is secure in the universal composability framework.