bitcoin-dev

Congestion Control via OP_CHECKOUTPUTSHASHVERIFY proposal

Congestion Control via OP_CHECKOUTPUTSHASHVERIFY proposal

Original Postby Jeremy

Posted on: May 22, 2019 01:47 UTC

In a recent discussion on the bitcoin-dev mailing list, Jeremy Rubin proposed the addition of a new opcode called OP_CHECKOUTPUTSHASHVERIFY that enables trustless congestion control techniques through a rudimentary, limited form of covenant.

The BIP draft covers this use case in detail and proposes to deploy the change simultaneously with Taproot as an OPSUCCESS, although it could be deployed separately if needed. The changes are about 74 lines of code on top of sipa's Taproot reference implementation. Matt Corallo agrees that covenants should be implemented but thinks that we need a flexible solution that provides more features than just this. He suggests a comprehensive new scripting system that gives other strong benefits for the ability to template scripts. While these are classifiable as covenants in implementation, they are closer in use to multisig pre-signed scripts, without the requirement of interactive setup. Therefore, we should think of these as 'certified checks' instead which can also describe a pre-signed design satisfactorily. Lastly, the design is explicitly versioned so short of an eventual full redesign, it should be easy enough to add more flexible features piecemeal as they come up and their use cases are strongly justified.