What's the reason to make fees for segwit addresses lower, while keeping legacy addresses with higher fees? -- I'm interested in both, why segwit transactions are cheaper than legacy addresses, and why legacy addresses still exist when they are more expensive.
2 Answers
Why are segwit transactions cheaper?
Segregated witness transactions are cheaper because they are designed to be.
In legacy transactions, every byte has the same "cost"; they all count equally towards the 1000000 byte block limit. Segwit transactions on the contrary keep certain data (signatures etc) in a separate "witness" section, and that witness section is discounted: every witness byte only counts as 0.25 byte towards the block limit. Fees are determined by the market and not a system rule, but the fact that segwit transactions have some of their content discounted results in the market pricing them less.
There is a reason why this discount is justified: in legacy transactions, creating a transaction output is significantly cheaper than spending one. This encourages unspendable dust: outputs that were created at a time when fees were low may become uneconomical to spend (= cost more to spend than they're worth) when fees are high. This is a burden on the entire ecosystem, as full nodes (for now, at least) need to maintain fast access to the set of all unspent outputs.
Why are legacy transactions still in use?
Compatibility. There is little more to say about it: they're still permitted because it would be impossible to get a change that broke people's existing software without an extremely good reason. And people still use them, because they haven't upgraded their infrastructure to use segwit transactions - the engineering costs to perform this upgrade may be (rightfully or not) considered higher than what would be gained by upgrading.
-
2Nit: The blocksize limit is dead, long live the blockweight limit.– Murch ♦Commented Aug 26, 2021 at 18:33
-
2@Murch Yes, though I wanted to avoid going into those details. Describing the witness as being discounted 0.25 towards the 1000000 limit is equivalent to the actual specification, I think? Commented Aug 26, 2021 at 18:53
-
1It is cheaper because the rules say it is. The justification for that rule is that indeed, they don't burden the network as much: outputs add to the UTXOs set, but inputs remove from it. Only inputs have a witness section, so a transaction with more inputs (i.e. one that will be discounted a lot) is less of a burden on the network. Commented Aug 27, 2021 at 13:09
There needs to be incentive for the use of a more efficient type of transaction which has lower concern to network scalability.