Scaling. The Bitcoin protocol requires that every node in the network download a copy of every Bitcoin transaction that has ever occurred. As Bitcoin has grown more popular, running the “full” Bitcoin client has become more and more resource-intensive. The last time I started up my Bitcoin client, it took several hours to download all the transactions that had occurred in the few weeks since the last time I ran it.
To prevent things from becoming completely unwieldy, the Bitcoin protocol limits the size of each “block,” the basic unit of Bitcoin’s shared transaction register, to one megabyte. Since one block is created every 10 minutes, on average, this places a hard limit on the number of transactions the network can process each hour. Right now, the network is operating well below the limit. But it’s not that far below the limit. If the Bitcoin economy continues to grow rapidly, we’re likely to hit it in the next few years.
Reaching the limit wouldn’t be catastrophic; the Bitcoin protocol has an elegant system of transaction fees to process the most urgent transactions first. But it does place some limits on Bitcoin’s long-term future. For example, it’s hard to imagine Bitcoin ever becoming a replacement for conventional credit cards. There are far too many credit card transactions for the Bitcoin network to accomodate.
Currently, every Bitcoin client knows the entire network history. This sums up to a few GB, which a modern computer can easily hold.
The number of transactions, however, is growing quickly. I roughly estimate than in a matter of a year or two, the total size on disk will exceed the abilities of a normal desktop computer.
How will the network function when the transaction history log grows beyond the powers of a normal desktop?