Utxo bitcoin

I’m adding entries to my list of objections to raising the maximum block size as I run across them in discussions on reddit, in IRC, etc. I wasn’t worried about it yesterday, because I hadn’t looked at the trends. I am worried about it today. But let me back up and explain briefly what the Utxo bitcoin database is.

UTXO database for it to be valid. So the UTXO size has doubled in the last year. Even assuming Moore’s Law kicks in again as new memory chip technologies roll out we would still have the UTXO set growth outpacing the advance of technology. Today, the UTXO database is about 650MiB on disk, 4GB when decompressed into memory. 40 on memory if you want absolute fastest access to the UTXO. A one megabyte block is room for about 100 million 500-byte transactions per year.

If every one of them increased the UTXO set by 500 bytes, that would grow the UTXO set 50 gigabytes a year. 500 per year, at today’s DRAM prices. That cost would decline as memory prices fell. Allowing more transactions with no other changes would very likely accelerate the UTXO set growth, making it more expensive, more quickly, to run a fully validating node. Affordable for a business, not for an individual. That is a very good reason to oppose increasing the maximum block size. But is the worst case realistic?

Bitcoin Core already has a multi-level UTXO cache, thanks to the hard work of Pieter Wuille. 500 per year at today’s SSD prices. 50 per year at today’s hard disk prices. UTXO set in DRAM, then it will take you longer to validate blocks.

How much longer depends on how much memory you’re dedicating to the UTXO cache, the speed of your SSD or hard drive, and how well a new block’s transactions match typical transaction patterns. Unless you are mining, taking longer to validate new blocks isn’t a problem as long as you can validate them fast enough to keep up with the 10-minute-average block time. People assume that the people who worked on Bitcoin in the early years are fabulously wealthy. That’s a bad assumption, for lots of reasons: It was easy to lose coins. I’m adding entries to my list of objections to raising the maximum block size as I run across them in discussions on reddit, in IRC, etc. I wasn’t worried about it yesterday, because I hadn’t looked at the trends. I am worried about it today.