Covenants
Covenants are a category of proposed changes to Bitcoin’s consensus rules that would allow a script to prevent an authorized spender from spending to certain other scripts.
“In the context of Bitcoin, the most useful definition of covenant is that it’s when the scriptPubKey of a UTXO restricts the scriptPubKey in the output(s) of a tx spending that UTXO.” —Anthony Towns (source)
For example, a covenant may normally only allow spending to a whitelisted set of scripts, such as returning bitcoins to the user’s own balance or spending to a staging address that only allows spending to any arbitrary address after a period of time.
Primary code and documentation
Optech newsletter and website mentions
2022
- Proposal to use covenants and merkle trees to enable generalized smart contracts
- Discussion about Miner Extractable Value (MEV) risk from recursive covenants
- When would enabling
OP_CAT
allow recursive covenants? - Updated
OP_TX
opcode useful for constructing covenants - Discussion about the risks of allowing recursive covenants
- Proposed
OP_EVICT
opcode to make covenants more efficient - Proposal for composable
OP_TX
opcode useful for constructing covenants
2021
- OP_TAPLEAF_UPDATE_VERIFY opcode proposed with a taproot-native covenant design
- Replicating the
OP_CSFS
covenant-enabling opcode withOP_CAT
and schnorr signatures
2020
- Discussion about how Simplicity could be used for covenants
- Demo implementation of a multisig vaults covenant prototype
- Vault prototype using pre-signed transactions
- OP_CHECKTEMPLATEVERIFY workshop report
2019
- 2019 year-in-review: OP_CHECKTEMPLATEVERIFY
- Suggested changes to OP_CHECKTEMPLATEVERIFY proposal
- OP_CHECKOUTPUTSHASHVERIFY renamed OP_CHECKTEMPLATEVERIFY and updated
- Bitcoin vaults without covenants
- CoreDev.tech discussion: potential script changes
- New proposed opcode: OP_CHECKOUTPUTSHASHVERIFY
2018
See also
Previous Topic:
Countersign
Next Topic:
CPFP carve out