bitcoin-dev

Congestion Control via OP_CHECKOUTPUTSHASHVERIFY proposal

Congestion Control via OP_CHECKOUTPUTSHASHVERIFY proposal

Original Postby Johnson Lau

Posted on: May 24, 2019 19:12 UTC

The context discusses the proposal for a new opcode called OP_CHECKOUTPUTSHASHVERIFY (COHV) as a subset of ANYPREVOUT (NOINPUT).

The main justification for using both is space efficiency when making covenant. However, there are concerns about restricting COHV in comparison to the eltoo use case of ANYPREVOUT. The author suggests relaxing the “one input” rule to a “first input” rule, allowing more inputs as fees, and rescuing UTXO by adding more inputs if the value is insufficient to pay the required outputs. The author also argues that there is no reason to require minimal push for COHV since it is not a consensus rule. Additionally, the author proposes that the argument for requiring a prevout binding signature may be applicable to COHV, as discussed in another post. The proposed BIP for COHV enables trustless congestion control techniques through covenant and covers this use case in detail. An initial reference implementation of the consensus changes and tests are available on GitHub. The proposal suggests deploying the change simultaneously with Taproot as an OPSUCCESS but can be deployed separately if needed.