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



Summary:

The discussion on enabling covenants within Bitcoin Script has raised concerns about unduly burdensome transaction and block validation for nodes. The goal is to keep Script execution as a pure function of the transaction data, with bounded resource requirements and clear evaluation costs. However, these constraints do not prohibit arbitrary, covenant-enabled computations that span across multiple transactions. While enabling covenants could allow users to put their funds at risk through complex machines that manipulate their money on the blockchain, this potential weirdness can be kept at bay by maintaining simple Script programs that are validated and scrutinized before interpretation. Enabling recursive covenants does not go against existing upgrades such as Segwit and tapscript sigops budget. The concern over enabling covenants is not equivalent to enabling OP_CAT as there is a way to do covenants using `OP_CAT` along with Schnorr sigs. The addition of `OP_CHECKSIGFROMSTACK` opcode has been generally supported, but would require an update to BIP340 and addition to sigops budget. The possibility of adding upper bounds on the number of recursions in covenants has also been suggested to prevent full Turing-completeness while allowing for a variety of use-cases.


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