segregated witness – Why SegWit address fees are lower than Legacy ones?
Why are segwit transactions cheaper?
Segregated witness transactions are cheaper because they are designed to be.
In normal 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 as a result.
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.