Could you have all your coins sent to a single address, and then make a second transaction of all those coins once again to a single address? Would that reduce the UTXO set?
Yes, you could do that. That would reduce the UTXO set. You wouldn't need to have all your coins sent to the same address in the first place, although if they were, there is then no harm to your privacy.
I suppose the idea of consolidating coins at single addresses into single tx outputs pro-actively without user input would be denied due to the privacy implications and fees required? I guess there's no way around it and it's kind of a dead end to help with UTXO growth?
Thinking about it the best thing to do would be to manage the creation of txs better to minimise utxo,
e.g.
A single address has:
utxo a = 2btc
utxo b = 5btc
if you're making a new tx, you'd empty "utxo a" first, you wouldn't take 2btc from "utxo b" and leave 3btc remaining in a new "utxo c" controlled by the original address as that would be wasteful.
I believe the above is already being done? -
*edit - yes. This is how bitcoin core operates. In fact it operates in a more sophisticated way.
*edit: found an old article discussing this very idea: https://medium.com/@lopp/the-challenges-of-optimizing-unspent-output-selection-a3e5d05d13efPerhaps what would be a useful suggestions is making UTXO transparent to wallet users.
I transfer random amounts generally. There's no rhyme or reason to the values unless they're direct payments. If I'm transfering to an exchange, I transfer whatever number I feel like.
It would make more sense if I could see that I have UTXO of value X, then I can choose a transfer of exactly that amount.
If this was transparent in the wallet and it advised the user "hey, match a UTXO or the sum of some UTXO and you will get lower fees". That could be beneficial in some way.