Right now, we can only use Bitcoin scripts to designate when or why a bitcoin is spent. But what if we could use it to designate how a bitcoin is spent?

When you send a Bitcoin transaction currently, it goes a little something like this: You acquire an address from your recipient, you pick out which unspent transaction outputs (or UTXOs, what the cool folks call “coins”) you want to send, and you sign a transaction with your private key that proves you authorized the spend.