Subject: Re: [Bitcoin-development] A suggestion for reducing the size of the UTXO database

From: Pieter Wuille <[email-masked]>
Date: Sat, 9 May 2015 12:06:13 -0700

It's a very complex trade-off, which is hard to optimize for all use cases.
Using more UTXOs requires larger transactions, and thus more fees in
general. In addition, it results in more linkage between coins/addresses
used, so lower privacy.

The only way you can guarantee an economical reason to keep the UTXO set
small is by actually having a consensus rule that punishes increasing its
size.
On May 9, 2015 12:02 PM, "Andreas Schildbach" <[email-masked]> wrote:

> Actually your assumption is wrong. Bitcoin Wallet (and I think most, if
> not all, other bitcoinj based wallets) picks UTXO by age, in order to
> maximize priority. So it keeps the number of UTXOs low, though not as
> low as if it would always pick *all* UTXOs.
>
>
> On 05/09/2015 07:09 PM, Jim Phillips wrote:
> > Forgive me if this idea has been suggested before, but I made this
> > suggestion on reddit and I got some feedback recommending I also bring
> > it to this list -- so here goes.
> >
> > I wonder if there isn't perhaps a simpler way of dealing with UTXO
> > growth. What if, rather than deal with the issue at the protocol level,
> > we deal with it at the source of the problem -- the wallets. Right now,
> > the typical wallet selects only the minimum number of unspent outputs
> > when building a transaction. The goal is to keep the transaction size to
> > a minimum so that the fee stays low. Consequently, lots of unspent
> > outputs just don't get used, and are left lying around until some point
> > in the future.
> >
> > What if we started designing wallets to consolidate unspent outputs?
> > When selecting unspent outputs for a transaction, rather than choosing
> > just the minimum number from a particular address, why not select them
> > ALL? Take all of the UTXOs from a particular address or wallet, send
> > however much needs to be spent to the payee, and send the rest back to
> > the same address or a change address as a single output? Through this
> > method, we should wind up shrinking the UTXO database over time rather
> > than growing it with each transaction. Obviously, as Bitcoin gains wider
> > adoption, the UTXO database will grow, simply because there are 7
> > billion people in the world, and eventually a good percentage of them
> > will have one or more wallets with spendable bitcoin. But this idea
> > could limit the growth at least.
> >
> > The vast majority of users are running one of a handful of different
> > wallet apps: Core, Electrum; Armory; Mycelium; Breadwallet; Coinbase;
> > Circle; Blockchain.info; and maybe a few others. The developers of all
> > these wallets have a vested interest in the continued usefulness of
> > Bitcoin, and so should not be opposed to changing their UTXO selection
> > algorithms to one that reduces the UTXO database instead of growing it.
> >
> > From the miners perspective, even though these types of transactions
> > would be larger, the fee could stay low. Miners actually benefit from
> > them in that it reduces the amount of storage they need to dedicate to
> > holding the UTXO. So miners are incentivized to mine these types of
> > transactions with a higher priority despite a low fee.
> >
> > Relays could also get in on the action and enforce this type of behavior
> > by refusing to relay or deprioritizing the relay of transactions that
> > don't use all of the available UTXOs from the addresses used as inputs.
> > Relays are not only the ones who benefit the most from a reduction of
> > the UTXO database, they're also in the best position to promote good
> > behavior.
> >
> > --
> > *James G. Phillips
> > IV* <https://plus.google.com/u/0/113107039501292625391/posts>
> > /"Don't bunt. Aim out of the ball park. Aim for the company of
> > immortals." -- David Ogilvy
> > /
> >
> >  /This message was created with 100% recycled electrons. Please think
> > twice before printing./
> >
> >
> >
> ------------------------------------------------------------------------------
> > One dashboard for servers and applications across Physical-Virtual-Cloud
> > Widest out-of-the-box monitoring support with 50+ applications
> > Performance metrics, stats and reports that give you Actionable Insights
> > Deep dive visibility with transaction tracing using APM Insight.
> > http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> >
> >
> >
> > _______________________________________________
> > Bitcoin-development mailing list
> > [email-masked]
> > https://lists.sourceforge.net/lists/listinfo/bitcoin-development
> >
>
>
>
>
> ------------------------------------------------------------------------------
> One dashboard for servers and applications across Physical-Virtual-Cloud
> Widest out-of-the-box monitoring support with 50+ applications
> Performance metrics, stats and reports that give you Actionable Insights
> Deep dive visibility with transaction tracing using APM Insight.
> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
> _______________________________________________
> Bitcoin-development mailing list
> [email-masked]
> https://lists.sourceforge.net/lists/listinfo/bitcoin-development
>