While the price of Bitcoin was reaching all time highs at the end of 2017, behind the scenes, dust was accumulating.
High demand for transactions conjoined with limited available block space led to increasingly higher fees. This prevented exchanges and other entities maintaining large Bitcoin wallets from doing their otherwise regular sweeping and consolidating of user funds into larger, more manageable pieces.
For some companies, high fees highlighted an issue otherwise ignored but that could cost them a lot: owning coins whose value is so small that it costs more to spend them that what they are worth, lots of those.
Managing the fragmentation of their utxo set will become a critical factor for BTC services.— LaurentMT (@LaurentMT) December 20, 2017
LaurentMT highlighted Coinbase as one of the companies affected by this issue.
When transactions fees were low, not looking too much into how your internal wallet allocated your bitcoins was the norm. While Bitcoin Core had a reasonably performing default implementation, spending time on optimising coin selection algorithms was far from being the priority ; a lot of people rolled out their own coin management system.
This led to a gradual accumulation of outputs of 10,000 satoshis or less (otherwise called dust, at today’s price of ~$7,500, that’s $0.75 or less). At the peak, these low value outputs represented roughly a third of all unspent outputs, while storing only 685 BTC.
However, once fees reach ~70 satoshis per byte, it is not economically viable to spend any output whose value is less than 10,000 satoshis, as doing so costs more than 10,000 satoshis.
At the beginning of the price rally of 2017, it was still possible (and done) to consolidate outputs below 10k satoshis during weekends or at night, when demand for block space was lower. However, when Bitcoin pushed to the moon in November, it became impossible ; the backlog of transactions was so high that even though it started dropping from mid-January 2018, it took more 2 weeks before transactions paying less that 70 sat/B were mined again.
It was not economically rational to spend any outputs <10,000 satoshis from November 2017 to February 2018
The fear that the fee situation would occur again led services affected by this situation to react quickly once fees subsided below the 70 sat/B threshold. Since then, Bitcoin has seen its the largest episode of consolidation of outputs, and it is still ongoing.
As I am writing these lines, the number of unspent transaction outputs dropped by around 20%. The wallet mentioned by @LaurentMT saw its number of outputs drop by 6.8M indicating Coinbase was the most important entity reshuffling its wallet (also introducing native SegWit support on Feb 23rd 2018).
However, Coinbase is not the only entity that did some spring cleaning, the number of unspent P2SH outputs (from addresses that start with ‘3’) dropped from 12.2M at mid-January 2018 to 9.8M by mid-March 2018. Several exchanges (Bitfinex, Kraken, etc..) hat use P2SH addresses could be amongst the ones involved.
One thing to note concerning this massive wallet “defragmentation”, is that it started from the highest valued outputs down to the really low value ones. Starting by the lowest valued ones first would have made more sense, since they would have been the first ones to turn economically unspendable again if fees rose drastically.
Now that the high fee episode is gone, we can see how it helped improve the Bitcoin ecosystem:
- fees (expressed in sat/B), are at their lowest in years due to generalized use of dynamic fees and better fee estimation algorithms.
- more services make use of batching and SegWit, optimizing their use of blocks
- better coin selection is now a hot topic, with Murch’s Bound and Branch algorithm merged into Bitcoin Core (thanks to Andrew C’s work!)
As Andreas M. Antonopoulos once beautifully said, Bitcoin is constantly gracefully failing to scale, and we should expect this trend of painful episodes followed by silent improvements to continue for the years to come.