Skip to content

Instantly share code, notes, and snippets.

@RobinLinus
Last active March 4, 2024 12:04
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save RobinLinus/c96fb7c81430ec6dc92f048687bd3068 to your computer and use it in GitHub Desktop.
Save RobinLinus/c96fb7c81430ec6dc92f048687bd3068 to your computer and use it in GitHub Desktop.
A collection of resources related to covenants

Covenants

Covenant-enabling Bitcoin Features

Properties of Covenants

  • Granularity: Which transaction fields can be defined by the covenant?
  • Overhead: How many bytes are required per TX?
  • Simplicity: How complex is the implementation and the usability?
  • Status: Is there a BIP? PR? Reviews? Signet? Testnet? Signals? Merged?
  • Recursion: Can the covenant be applied endlessly to itself?
  • Use cases: For which applications is the covenant the optimal solution?

Resources

Comparisons to CTV

Projects based on covenants

CTV Activation - Pros and Cons

Pros

  • Covenants have been discussed for more than 6 years.
  • There is strong consensus that Bitcoin should support covenants.
  • CTV is the most conservative approach to enable covenants.
  • The BIP was finalized over two years ago.
  • The code is well tested and reviewed.
  • People are testing vaults and other covenants live on the CTV signet.
  • There are no objections against CTV on the code level.
  • For 5 months there has been a 5.5 BTC bug bounty program funded by community members.
  • Many community members support the activation of CTV.

Cons

  • The strongest technical argument against bip119 is: since we have to do some soft fork for covenants let’s activate full-featured covenants right away instead of causing multiple forks with overlapping features.
  • The most likely alternative seems to be TXHASH + CSFS. It combines Eltoo fans with ctv fans in a way that makes technical sense, it satisfies those who want more complex covenants going forward, the conversational well around it is less poisoned. The main downside is that it uses a few more bytes. The work that needs to be done to get it in safely can be overcome with effort.
    • However, nobody is working on it. There's no BIP yet. No review. Not even remotely a PR.
    • The number of bitfields in TXHASH is high, so the limiting factor would be writing a large number of both tests and arguing that any possible permutation of those bitfields does not lead to some resource exhaustion attack on some inputs.
    • It would take years to activate it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment