Skip to content

Files

Latest commit

321d383 · Mar 8, 2023

History

History
119 lines (87 loc) · 5.01 KB

covenants.md

File metadata and controls

119 lines (87 loc) · 5.01 KB
title categories excerpt primary_sources optech_mentions see_also
Covenants
Scripts and Addresses
Soft Forks
**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.
title link
Enhancing Bitcoin transactions with covenants
title link
BIP119 OP_CHECKTEMPLATEVERIFY proposal
title url
Scaling Bitcoin Tokyo 2018, Script Roundtable: OP_CHECKSIGFROMSTACK
/en/newsletters/2018/10/09/#discussion-the-evolution-of-bitcoin-script
title url
New proposed opcode: OP_CHECKOUTPUTSHASHVERIFY
/en/newsletters/2019/05/29/#proposed-new-opcode-for-transaction-output-commitments
title url
CoreDev.tech discussion: potential script changes
/en/newsletters/2019/06/12/#potential-script-changes
title url
Bitcoin vaults without covenants
/en/newsletters/2019/08/14#bitcoin-vaults-without-covenants
title url
OP_CHECKOUTPUTSHASHVERIFY renamed OP_CHECKTEMPLATEVERIFY and updated
/en/newsletters/2019/12/04/#op-checktemplateverify-ctv
title url
Suggested changes to OP_CHECKTEMPLATEVERIFY proposal
/en/newsletters/2019/12/18/#proposed-changes-to-bip-ctv
title url
2019 year-in-review: OP_CHECKTEMPLATEVERIFY
/en/newsletters/2019/12/28/#ctv
title url
OP_CHECKTEMPLATEVERIFY workshop report
/en/newsletters/2020/02/12/#op-checktemplateverify-ctv-workshop
title url
Vault prototype using pre-signed transactions
/en/newsletters/2020/04/22/#vaults-prototype
title url
Demo implementation of a multisig vaults covenant prototype
/en/newsletters/2020/04/29/#multiparty-vault-architecture
title url
Discussion about how Simplicity could be used for covenants
/en/newsletters/2020/08/05/#bip-taproot
title url
Replicating the `OP_CSFS` covenant-enabling opcode with `OP_CAT` and schnorr signatures
/en/newsletters/2021/02/03/#replicating-op-checksigfromstack-with-bip340-and-op-cat
title url
OP_TAPLEAF_UPDATE_VERIFY opcode proposed with a taproot-native covenant design
/en/newsletters/2021/09/15/#covenant-opcode-proposal
title url
Proposal for composable `OP_TX` opcode useful for constructing covenants
/en/newsletters/2022/02/16/#simplified-alternative-to-op-txhash
title url
Proposed `OP_EVICT` opcode to make covenants more efficient
/en/newsletters/2022/03/02/#proposed-opcode-to-simplify-shared-utxo-ownership
title url
Discussion about the risks of allowing recursive covenants
/en/newsletters/2022/03/09/#limiting-script-language-expressiveness
title url
When would enabling `OP_CAT` allow recursive covenants?
/en/newsletters/2022/05/18/#when-would-enabling-op-cat-allow-recursive-covenants
title url
Updated `OP_TX` opcode useful for constructing covenants
/en/newsletters/2022/05/18/#updated-op-tx-proposal
title url
Discussion about Miner Extractable Value (MEV) risk from recursive covenants
/en/newsletters/2022/05/25/#miner-extractable-value-discussion
title url
Proposal to use covenants and merkle trees to enable generalized smart contracts
/en/newsletters/2022/11/16/#general-smart-contracts-in-bitcoin-via-covenants
title url
Proposal for `OP_VAULT` and `OP_UNVAULT` opcodes to enable convenant-based valuts
/en/newsletters/2023/01/18/#proposal-for-new-vault-specific-opcodes
title url
Proposal for alternative design for `OP_VAULT` inspired by `OP_TLUV`
/en/newsletters/2023/03/08/#alternative-design-for-op-vault
title link
An early description of covenants in Bitcoin
title link
OP_CHECKSIGFROMSTACK
topic op_checksigfromstack
title link
OP_CHECKTEMPLATEVERIFY
topic op_checktemplateverify
title link
Vaults
topic vaults

"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][towns covenant definition])

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.

{% include references.md %} [towns covenant definition]: https://lists.linuxfoundation.org/pipermail/bitcoin-dev/2022-January/019795.html