272 sats \ 0 replies \ @rijndael 25 Aug \ parent \ on: Sunday Survey: Do you want covenants? bitcoin
Whenever you send Bitcoin, the destination “address” is actually a set of conditions that have to be satisfied to send those coins. For example, “you have to sign a transaction with the private key that corresponds to this pubkey”, or “you need to sign with 3/5 of these keys”, or “you have to sign with this key, unless its been a month, then you can sign with that key”.
In Bitcoin today, as soon as someone can satisfy those requirements, they can do anything with the coins.
This can present a challenge if you want to (for example) have two people share a UTXO. What you want to be able to do is say “if Alice signs with her keys, she can take her share of the UTXO, but not Bob’s share”. Now imagine that scheme not with 2 people but with 100 or 1000 people.
Another way you might want to restrict how the coins might be spent is a vault: “if I sign with these keys, my coins can start a withdrawal process, but if i cancel that process before two weeks are up, i get my money back”.
The first case is helpful for packing more economic activity into less blockspace. The second is for making bitcoin safer to hold.
These are examples of covenants: you put restrictions not just on who can spend the coins, but on how they are then spent.
Today we emulate covenants with presigned transactions (for example, in the lightning network), but that presents real challenges around interactivity, number of participants, protocol complexity.
Covenant proposals generally add functionality to Bitcoin to let us do these kinds of things and have it be enforced by Bitcoin consensus instead of complex presigning schemes.