bitcoin-dev

Congestion Control via OP_CHECKOUTPUTSHASHVERIFY proposal

Congestion Control via OP_CHECKOUTPUTSHASHVERIFY proposal

Original Postby ZmnSCPxj

Posted on: May 23, 2019 03:45 UTC

This conversation is about the benefits and limitations of the OP_CHECKOUTPUTSHASHVERIFY opcode in CoinJoin and how it can be used for congestion control.

The opcode allows creating multiple outputs at a lower cost and participants can move coins without revealing the outputs created by the CoinJoin until needed, making the protocol more stable with respect to input choice. It can also help open channels from a CoinJoin safely. However, using this opcode for congestion control increases blockchain usage by one TXO and one input, which may increase congestion. Nonetheless, this improves quality of service for most users and helps to have a backlog of low-priority transactions to support the fee market. Overall block bandwidth utilization is fairly spikey, so having long term well-known outputs that are not time-sensitive can be used to better utilize bandwidth. The conversation also touches upon using n-of-n MuSig for simple "close only" channel factories in Bitcoin Lightning, which can work just as well as the OP_CHECKOUTPUTSHASHVERIFY opcode.