bitcoin-dev

Combined summary - Congestion Control via OP_CHECKOUTPUTSHASHVERIFY proposal

Combined summary - Congestion Control via OP_CHECKOUTPUTSHASHVERIFY proposal

Jeremy Rubin has proposed a new opcode draft called OP_CHECKOUTPUTSHASHVERIFY, which aims to provide easy-to-use and trustless congestion control techniques through a rudimentary form of covenant.

This opcode allows Bitcoin users to confirm payments to multiple users in a single transaction without creating the UTXO on-chain immediately. The draft covers this use case in detail, along with a few other use cases.A reference implementation of the consensus changes and tests can be found on GitHub, along with the BIP draft. Matt Corallo agrees that covenants should be implemented but suggests a more comprehensive scripting system that offers additional features beyond just congestion control. He refers to these as 'certified checks' and believes they resemble pre-signed scripts for multisig transactions, without requiring interactive setup. Corallo emphasizes the importance of flexibility and versioning in the design, making it easier to add more features in the future.The proposed BIP aims to deploy the opcode change simultaneously with Taproot as an OPSUCCESS. However, it can also be deployed separately if necessary. The changes required for the new opcode amount to approximately 74 lines of code built upon sipa's Taproot reference implementation.Overall, Jeremy Rubin's draft proposes an opcode that enables congestion control and provides a limited form of covenant for Bitcoin transactions. Matt Corallo supports the concept but suggests a more flexible solution. The BIP draft and the reference implementation can be found on GitHub, offering further details and testing capabilities for interested parties.

Discussion History

0
JeremyOriginal Post
May 20, 2019 20:58 UTC
1
May 21, 2019 19:41 UTC
2
May 22, 2019 01:47 UTC
3
May 22, 2019 02:51 UTC
4
May 22, 2019 05:11 UTC
5
May 22, 2019 06:04 UTC
6
May 22, 2019 08:10 UTC
7
May 22, 2019 20:49 UTC
8
May 23, 2019 03:45 UTC
9
May 24, 2019 19:12 UTC
10
May 24, 2019 20:36 UTC
11
May 24, 2019 21:15 UTC
12
May 25, 2019 03:56 UTC