pull down to refresh

This Halloween week, a debate erupted in the Bitcoin community over the meaning of "recursive covenants" and their implications for the future of bitcoin. At the centre of the discussion is Rearden, a prominent Bitcoin developer, who argues that the term "recursive" is misunderstood and unhelpful in evaluating covenant designs.

Unpacking the Definitions

  • Colloquial Definition: This widespread interpretation defines a recursive covenant as one that can permanently enforce a rule on Bitcoin, such as a government whitelist. This implies the covenant can replicate itself in every subsequent transaction, acting like a self-propagating "quine" in programming terms.
  • TheBlueMatt's Definition: Another Bitcoin expert, @TheBlueMatt, proposes a different definition: a recursive covenant is one that can modify and propagate its state across transactions. This definition emphasises the ability to change state, without requiring self-replication.
  • Programming Definition: Contrasting with both interpretations above, the traditional computer science definition of recursion focuses solely on a function calling itself, regardless of state changes or self-replication. By this definition, the Bitcoin opcode OP_CHECKTEMPLATEVERIFY is already considered recursive.

A Call for Clarity

The Venn diagram in Rearden's analysis highlights the overlap and discrepancies between these definitions. This ambiguity, Rearden argues, hinders productive discussion about covenant designs and their risks.

Moving Beyond "Recursive"

Instead of focusing on the contentious term "recursive," Rearden proposes a more descriptive and nuanced framework for evaluating covenants:
  • Self-Propagating: This characteristic refers to a covenant's ability to replicate itself in future transactions. While convenient for some protocol designs, self-propagation is not a critical factor in assessing risks, as alternative methods like multisig already exist.
  • State Transforming: This aspect examines whether a covenant can modify and propagate its state. This capability is crucial for enabling functionalities like hashrate escrows, regardless of whether the covenant is self-propagating.
  • Granularity: Rearden stresses that granularity – the specificity of a covenant's control over transaction elements – is the most critical design consideration. High granularity unlocks powerful functionalities like CatVM, AMMs, and DEXs, often requiring both state transformation and self-propagation.
Rearden concludes by urging the Bitcoin community to shift the focus from "recursive" to more meaningful aspects like granularity and auxiliary functionalities when assessing covenant proposals. This shift in perspective aims to foster more informed and constructive discussions about the future of Bitcoin's scripting capabilities.