Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: jnano on October 31, 2017, 03:45:06 PM



Title: Balancing fees, time, UTXO set size, blockchain size
Post by: jnano on October 31, 2017, 03:45:06 PM
It has occurred to me that you can reduce fees, and the UTXO set size, at the expense of blockchain usage. What do you think...

If your balance is comprised of a lot of small UTXOs, spend txes would be expensive due to their large size. You could optimize that by sending to yourself, consolidating your own UTXOs, as follows.

When you don't have an immediate need to make actual payments, you'd wait for a time with lower fees, select an even lower than average fee, then send to yourself. It could take a day or a week, but in the end you'd have a larger sum on a single UTXO. Later, when making a real payment where time is important, you'd get better fees due to the small tx size.

Pros:

* Lower fees, and maybe quicker actual payments.
* Reduces network's UTXO set size.

Cons:

* Require manual work.
* Increases blockchain size.

Considering the blockchain is already large nowadays, unlike the UTXO set which still fits in memory, I think UTXO size is more important than blockchain size? But I'm not sure what would be the  implications in the future, when the UTXO set no longer fits in RAM.

Would it make sense for Bitcoin clients to semi-automatically, after user confirmation, do such a consolidation whenever it's beneficial? I wonder how much the network's UTXO set could decrease if everyone did that.

A few related reads:
https://medium.com/@jimmysong/high-fees-and-utxo-sets-474969adebd2
https://medium.com/@lopp/the-challenges-of-optimizing-unspent-output-selection-a3e5d05d13ef
http://gavinandresen.ninja/utxo-uhoh


Title: Re: Balancing fees, time, UTXO set size, blockchain size
Post by: HCP on November 01, 2017, 04:25:52 AM
The UTXO set is constantly changing... And not necessarily just getting bigger.

There are always people consolidating (on purpose like what you've suggested and accidentally when their wallets use up several smaller UTXOs to create 1 output) and there are always people "splitting" (change and pay-to-many). It's just part of the way Bitcoin works.

I used to occasionally consolidate as you've suggested... but it's just as easy to simply put in a 10sats/byte fee on any given transaction and then use the various transaction accelerators to avoid the "low fee long wait". :P


Title: Re: Balancing fees, time, UTXO set size, blockchain size
Post by: jnano on November 01, 2017, 05:56:24 PM
It's not just a question of fees or confirmation time, but also what's good for the network.

You might see small localized dips in the UTXO set, but over longer periods of time it just grows:
https://statoshi.info/dashboard/db/unspent-transaction-output-set?from=1446227371185&to=1509558571185

Not sure why the large jump in "serialized size" two months ago.