It's complicated.
A transaction output:
* is stored in the UTXO set until spent,
* has to be maintained by validating nodes,
* contributes to the state that nodes need for future validation.
By contrast, when that output is eventually spent, much of the data required to authorize the spend—especially signatures—is transient validation data. Once the spend is confirmed, the old UTXO can be deleted from the UTXO set.
So there is a desirable incentive structure:
UTXO creation should be relatively expensive
and
UTXO consumption should be relatively cheap
The witness discount moves Bitcoin in that direction.
Example: P2WPKH
A typical native SegWit P2WPKH input is roughly:
* 41 non-witness bytes → 41 x 4 = 164 WU
* about 107 witness bytes → 107 WU
Total: 271 WU / 67.75 vbytes
A P2WPKH output is 31 bytes, all non-witness:
31 x 4 = 124 WU = 31 vbytes
So consuming a UTXO still costs more than creating one, but the difference is much smaller than it would be if the signature received no discount.
Without the witness discount, that same input would be roughly:
41 + 107 = 148 bytes
versus only 31 bytes for the newly created output.
That would give users a fairly strong incentive to create lots of outputs because creation looks cheap, while later consolidation looks expensive.
With the discount, the ratio is closer to 68 vB input : 31 vB output rather than 148 : 31.
Why this matters for UTXO growth:
Suppose you receive ten small payments.
Later, you want to combine those ten UTXOs into one.
A consolidation transaction has:
* many inputs, which **destroy UTXOs**
* few outputs, which **create UTXOs**
Bitcoin arguably wants such transactions to be reasonably cheap because they reduce the global UTXO set.
The witness discount helps enormously here because most of the bulky part of each input—the authorization data—is discounted.
Conversely, a transaction with:
* one input
* twenty outputs
creates nineteen additional UTXOs.
Those twenty outputs receive **no witness discount**. Their bytes count at the full 4 WU/byte rate.
So the weight system implicitly taxes UTXO proliferation more heavily than it otherwise would.
Login to reply
Replies (2)
Helpful explanation... I'll need to read it a few times
I have a few reflections and curious to hear your take.
1. On "UTXO creation should be relatively expensive and UTXO consumption should be relatively cheap":
The witness discount doesn't accomplish this. It makes witness bytes cheap in the fee market regardless of whether the transaction is creating UTXOs or consuming UTXOs. A transaction that creates 20 outputs from 1 input still gets the discount on its witness data. The discount isn't targeted at UTXO economics. It's a blanket subsidy on a byte type.
2. On "So consuming a UTXO still costs more than creating one, but the difference is much smaller":
This isn't evidence the discount is working as intended. It's a side effect of blanket-witness-discounting. The discount doesn't distinguish between a consolidation transaction and an inscription. Both get the same discount on their witness data. The "desirable" asymmetry is accidental, not designed.
2. On "Without the witness discount, that same input would be roughly 148 bytes versus 31 bytes... That would give users a fairly strong incentive to create lots of outputs because creation looks cheap":
This inverts the problem. Pre-SegWit, 148 bytes for an input vs 31 bytes for an output means spending was already more expensive than creating. But that reflects reality UTXOs are persistent state, signatures are not. The fee market should price bytes by their persistence cost. The pre-SegWit ratio already does that. The witness discount didn't fix an incentive problem. It introduced a pricing distortion.
3. On "With the discount, the ratio is closer to 68 vB input : 31 vB output":
A witness byte costs a quarter of a non-witness byte in vbytes but the same in disk, in RAM, in bandwidth, and in validation. The discount is applied to the price signal. It is not applied to the object.
4. On "The witness discount helps enormously here because most of the bulky part of each input the authorization data is discounted":
Correct. But "helps enormously" is doing a lot of work. The discount also helps enormously with inscription bloat. You're selecting the beneficial use case and ignoring the harmful one. The same mechanism that makes consolidation cheap makes it cheap to stuff data into the witness at a quarter of its persistence cost.
5. On "Those twenty outputs receive no witness discount... So the weight system implicitly taxes UTXO proliferation more heavily":
Three problems. One - the outputs are non-witness data; they were always priced at 4 WU/byte, before and after SegWit. There's no "additional tax" from the discount. Outputs simply don't benefit from it. Two - you're ignoring that the discount also makes it cheap to create new witness data that persists on disk. An inscription with 1 input and 1 output benefits from the discount on its witness while adding permanent bytes to the chain. Three - the "implicit tax" framing assumes the goal is to discourage UTXO creation. But the real goal should be byte identity: every byte priced equally. The discount doesn't tax UTXOs - it subsidizes witness bytes, which happens to create a minor asymmetry between inputs and outputs.
Happy to hear your take on my review!
@Jack K @mleku
Interested to hear your guys takes too.