bitcoin-dev

Making OP_TRUE standard?

Making OP_TRUE standard?

Original Postby Johnson Lau

Posted on: May 9, 2018 20:19 UTC

In a bitcoin-dev email thread, Johnson Lau proposed a "0 fee tx with exactly one OP_TRUE output" standard to ensure that Child Pays for Parent (CPFP) will always be needed and the OP_TRUE output won't pollute the Unspent Transaction Output (UTXO) set.

However, Peter Todd argued that this approach won't work as a zero-fee transaction won't get relayed even with CPFP, due to the fact that package-based transaction relaying hasn't been implemented yet. Lau then suggested using the ANYONECANPAY opcode to sign the transaction, allowing for more inputs to be added for fees without requiring any protocol changes. Todd disagreed with this proposal and instead suggested a "CPFP anchor" softfork that outputs with empty scriptPubKey and 0 value are spendable only in the same block. If not spent immediately, they become invalid and are removed from UTXO. However, Todd believes that the best solution is a more flexible SIGHASH system that doesn't require CPFP at all.