Skip to content

Instantly share code, notes, and snippets.

@harding
Last active May 26, 2022 21:05
Show Gist options
  • Save harding/dae085605fa962339358d05e54468c53 to your computer and use it in GitHub Desktop.
Save harding/dae085605fa962339358d05e54468c53 to your computer and use it in GitHub Desktop.

Covenant-based applications

To compare different proposals to enable covenants on Bitcoin, it would be useful to have a list of everything we would currently like to do with any sort of covenant. My interest is in anything where a plausible case can be made that a significant number of mostly-rational people would pay transaction fees to use the covenant-based application.

For the purpose of this list, I use Anthony Towns's definition of a covenant: "when the scriptPubKey of a UTXO restricts the scriptPubKey in the output(s) of a tx spending that UTXO". This includes (but is not restricted) to the following proposals: BIP118 SIGHASH_ANYPREVOUT (APO), BIP119 OP_CHECKTEMPLATEVERIFY (CTV), OP_CAT in combination with BIP340 schnorr signatures, OP_CHECKSIGFROMSTACK (CSFS), OP_TAPROOT_LEAF_VERIFY (TLUV), and OP_TXHASH/OP_TX.

The covenant-based application doesn't need to be good for Bitcoin as long as there's a reasonable chance people would use it. For example, Bitcoin's main chain may be destablized if one or more drivechains becomes widely used, but we can credibly believe that people might try using a version of drivechains based on a covenant opcode.

When suggesting covenant-based applications below, please either link to a public description of the idea or briefly explain how it would work.

The list of below of plausible ideas will be periodically updated with suggestions from the comments or ideas I find elsewhere. If you need to contact me directly, please use dave@dtrt.org.

Abbreviations:

  • APO: BIP118 SIGHASH_ANYPREVOUT
  • CTV: BIP119 OP_CHECKTEMPLATEVERIFY

Ideas for covenant-based applications

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment