@Mengerian @albin@Mengerian
One aspect to the utxo that I've been kicking around in my head for a while now is the relationship between tx fees, bitcoin valuation, and set size. It seems like alot of perverse things could happen under a forced fee market wrt to maintaining utxo bloat by essentially stranding outputs as economically infeasible to spend. Massive waves of price appreciation (and concurrent drops in tx fees in nominal terms) seem like a natural mechanism to counter this, assuming tx volumes are not intentionally pegged at capacity. This is something Mike Hearn has gotten heavily attacked for well after the fact, but cutting the default min relay fee after the fall 2013 rally probably had really positive effects.
For example, I bet that there are quite a few small hobbyist pool miners from late 2013 / early 2014 who maybe played around with very modest setups of a few GH/s with Block Erupters and such who weren't very saavy about it, somewhere got the impression that they should be paranoid about leaving any balance at all on a pool, so they have a tremendous number of tiny outputs to the same address. I have a friend who's exactly in that boat, sitting on a bunch of 0.01 outputs from BTCGuild.
this is a great discussion.
i think it helps to go back and review the history of the UTXO set. iirc, i'm almost certain this was pwuille's innovation. at the time (& probably still) it made sense to bring the unspent tx outputs into fast access RAM & dbcache so as to validate incoming tx's faster & more efficiently. not sure exactly how it was done before but maybe your node had to go back to the blockchain itself on disk & do a lookback to the actual block containing the txid of the output referenced which undoubtedly takes more time. so if you think about it, the UTXO is just a subset of the blockchain. it happens to be the most important part of the blockchain that needs fast access & is contained in the chainstate folder of your disk. so as the blockchain grows from increased adoption, it's only natural for the UTXO set to grow with it. and if more ppl use Bitcoin, then naturally they will inherit smaller and smaller numbers of satoshi's for their individual usages years into the future as the bitcoin units propagate (spread) out to the global population. and yes, it's only natural (mandatory in fact) in that scenario that those individual smaller satoshi's will have to be more valuable, in fiat terms, for them to be used efficiently and with reasonable tx fees. otherwise, they get stuck as economically unviable.
so to make an attempt, as with SWSF, to truncate the growth of this set by giving cost discounts to tx's that consolidate the UTXO's is tantamount to crippling Bitcoin's growth. it would be like acknowledging that a baby's head has to grow in the same proportion to the rest of it's body as they get older but deciding somewhere along the line that that's not a good idea b/c your head is the heaviest part of the human body. "let's consolidate all your brain cells b/c we don't want you to get to adult size and have to carry around all that weight". it makes no sense. unless of course, your goal is to divert those brain cells to a second head called LN.
on to another pt. i've heard this "SW makes inputs cheaper & outputs more expensive" from several ppl and it's confused me b/c to me the argument doesn't make sense. fact: these "cost discounts" are being given to those tx's which create larger signatures per tx. those are multisigs. what do multisigs have to do with consolidating inputs (UTXO's)? that's why i asked @Mengerian that question and his answer is that they don't do that necessarily. and i agree. so it appears to me that this may just be a red herring to convince miners that this theoretical UTXO reduction advantage is for them since they can point to f2pool's 1MB 25 sec tx of several months ago and say, "hey, you might want to do some of these too!". so then i started poking around about just how frequently these types of multi-input tx's get done by miners, exchanges. it appears to me, not much. i asked jtoomim the other day. here's his response, emphasis mine:
cypherdoc 3:59 PM] how often do pools like f2pool do those multi input complex sig tx's? didn't i hear you say maybe just once a quarter or even once a year?
jtoomim4:17 AM] multi-input huge txs? that's only been done once, as a spam cleanup
multi-output huge txs? once a year. multi-output big txs? once a day.
doesn't sound like often to me. so then, if this is the case, what is this discount for? like i've been saying, it's to advantage LN multisigs and this drive to create a offchain tx's LN that might be cheaper. so here we have evidence of another inconsistency in theory and logic from Blockstream core dev. diversion-->cheaper inputs & more expensive outputs (reduce UTXO's!!!). reality-->advantage LN multisigs.
one further pt. to the extent that UTXO set growth is a "problem". shouldn't we be blaming pwuille for this? i'm being snarky with this b/c small blockists are quick to blame Hearn for the levelDB fork of March 2013, as if he was the only one who signed off on it. what has happened in reality is that levelDB was quickly fixed and still adopted and is what we use to this day to our benefit. similarly, the UTXO set was probably a good idea and as @Mengerian says, it's growth is a good thing and a reflection of growth in the Bitcoin economy. there have been many suggestions over the years as to how to deal with this growth that we should explore going forward; commitments for one. right now, it's just not a problem.
Last edited: