Published on: 2021-12-09T06:27:04+00:00
In a discussion between Ruben Somsen and Jeremy, the possibility of 0 sat outputs entering the Bitcoin mempool and their impact is explored. Jeremy argues that creating a 0 sat output to avoid a soft fork would be uneconomical compared to creating dust outputs. He suggests that even if a 0 sat output is confirmed without being spent, it could still be spent as long as none of its inputs are spent elsewhere. Ruben acknowledges the possibility of unintentionally keeping a 0 sat output unspent but deems it unlikely. He questions whether it would be acceptable to avoid a soft fork in such cases.Jeremy believes that 0 value outputs are not a significant problem as long as they are eventually spent. He proposes that miners and users who care about bloat should save the transaction spending the 0 sat output to resurrect it if necessary. However, he agrees that if it is more expensive to create a 0 sat output than a dust output, it would not be economically rational to do so. The discussion then shifts to exploring the idea of a UTXO with drop semantics, where an output expires and becomes unspendable if not used in the block it was created. This would allow for 0 value outputs to be present in the mempool for attaching fees but be treated like an op_return otherwise. Two cases are suggested: one bare segwit version and one equivalent to taproot. While Ruben acknowledges the potential benefits of this solution, he notes that it may require a consensus change.Another proposal by Jeremy involves a carve-out rule allowing 0 value outputs to be used as Intermediate Outputs. These outputs would need to be spent by another transaction in order for the transaction creating them to be in the mempool. The parent transaction would also need to have a higher feerate after CPFP'ing the parent than the parent alone. This would enable the use of 0 value outputs for anchor outputs and prevent pinning issues related to Decker Channels. Ruben points out that certain rules would need to be in place to ensure the 0 sat output is the only spendable output. However, this may conflict with standardness rules for transactions.In a conversation between Bastien and Jeremy, the topic of lightning anchor outputs and their impact on the utxo set is discussed. Currently, each commitment transaction has two outputs with a 330 sats amount, but only one output is spent to help confirm the transaction. The other output remains unclaimed and contributes to utxo bloat. Jeremy suggests that allowing 0 value outputs as intermediate outputs could address this issue. However, this proposal was rejected earlier due to various reasons. With the launch of package relay, Jeremy believes that a carve-out rule for 0 value outputs can be implemented without introducing new validation rules. This would be helpful for CTV-based contracts and spacechains.In summary, Jeremy Rubin proposes allowing 0 value outputs as long as they are used as intermediate outputs required to be spent by another transaction. This rule would prevent the proliferation of 0 value UTXOs while still allowing them to be used for anchor outputs and other purposes.
Updated on: 2023-07-31T23:57:20.746349+00:00