bitcoin-dev

CheckTemplateVerify Does Not Scale Due to UTXO's Required For Fee Payment

CheckTemplateVerify Does Not Scale Due to UTXO's Required For Fee Payment

Original Postby Peter Todd

Posted on: January 24, 2024 19:31 UTC

CheckTemplateVerify (CTV) is a proposed Bitcoin covenant opcode that makes a commitment to the transaction which will spend a particular output.

It specifies details like the number of inputs and outputs, as well as the outputs hash. CTV is anticipated to be primarily used with anchor outputs for fee payment or by creating an input in a separate transaction to include in the CTV-committed transaction. However, these methods could lead to scalability issues since they require users to manage additional UTXOs solely for fee payments. This requirement undermines the efficiency gains from UTXO sharing schemes that CTV aims to facilitate.

To maintain self-sovereignty within reactive security protocols like Lightning Network, users must ensure transactions are mined within deadlines, which necessitates fee payments. The dependency on extra UTXOs for fee payments essentially forces each user to maintain another UTXO, contradicting the purpose of shared UTXO schemes. A possible workaround involves third-party fee payments, such as through a Lightning Network payment, but this compromises mining decentralization and is less efficient than paying fees directly.

The recommendation is to stop further development of CTV in its current form due to its inherent design flaws—referred to as a "design foot-gun." Instead, it's suggested that new covenant schemes should be created that are compatible with replace-by-fee features, eliminating the need for additional UTXOs and enhancing on-chain efficiency. For more information on CTV and related discussions, you can explore the Bitcoin Improvement Proposals on GitHub or read more about the transactional challenges at Peter Todd's review on v3 transactions. To reach out to Peter Todd, the email address is 'peter'[:-1]@petertodd.org, with the last character omitted intentionally.