Unlimited covenants, was Re: CHECKSIGFROMSTACK/{Verify} BIP for Bitcoin



Summary:

The conversation on bitcoin-dev mailing list revolves around enabling covenants and whether recursive covenants, the type that are most worrying, should be allowed or not. The concern is that such covenants seem to require some kind of OP_TWEAK operation, which cannot be simulated with CHECKSIG(FROMSTACK). However, some argue that limiting Bitcoin's flexibility to avoid potential problems already present in altcoins is unnecessary. Increased functionality may imply increased processing, but computation devices are getting cheaper, making it less onerous. ZmnSCPxj argues that "inescapable" covenants, i.e., those that require the output to be paid to the same covenant, are basically Turing machines and equivalent to a `while (true);` loop. While such unbounded infinite loops are possible only under Turing machines, codata processing allows for unbounded loops without requiring full Turing-completeness. Covenants could encode an upper bound on the number of recursions, which prevents full Turing-completeness while allowing for a large number of use-cases.


Updated on: 2023-06-15T00:01:17.314107+00:00