10

I am a Bitcoin enthusiast, with no background knowledge in computer science and cryptography. I once ran Bitcoin core on my laptop but realized that it occupied too much space in my computer.

I understand the idea that Bitcoin network is secure as long as any individual can run the full node of Bitcoin core. However, what concerns me is that one day the full node may become too large to run on a normal computer. Do Bitcoin developers have any solutions to the problem? Or is it really a problem?

I would like to hear some responses from cryptocurrency developers or specialists in computer science.

  • 1
    Just running some quick numbers: currently Bitcoin takes ~250GB and grows at ~75GB/year(source). A 1TB hard drive costs ~$45 right now. The 6TB version is only $147. Bottom line: if the size of hard drives stop increasing and the prices stop falling it will still take decades for the Bitcoin blockchain size to outpace what can be run in a normal computer. – David says Reinstate Monica Oct 6 at 2:09
  • @DavidGrinberg Will the size of hard drives stop increasing one day? – Libertarian Monarchist Bot Oct 6 at 4:47
  • 1
    Probably there is some theoretical maximum limit relating to the size of atoms or something, but I don't know it. But even if individual hard drives stop growing in space, you can always just get more hard drives. I think its reasonable to say that in our lifetime we will always be able to store the entire blockchain on our personal computers with a not too expensive investment in hard drives. – David says Reinstate Monica Oct 6 at 6:28
  • We’re close to the physical limits already. Modern high capacity drives heat the platter to red hot to actually get the magnetic penetration required. – Anonymous Oct 6 at 20:05
  • @Anonymous: it seems that you're assuming that mass storage means "rotating magnetic discs". I don't believe this is a valid assumption. – Bob Jarvis - Reinstate Monica Oct 7 at 3:19
12

Bitcoin has to maintain some balance to be able to maintain the ability to be decentralized. As you've correctly established, this is partly down to making sure that the resource requirements of fully validating the block chain are not unreasonable. There's a push form the consumer side of things to constantly increase the resource usage of Bitcoin for convenience or lower transaction fees, but this comes at the cost of decentralization. What the limits for this are is debatable to some extent, but there are clearly hard limits to avoid.

Most notably it's difficult to undo mistakes in this area of the system design, going too far with resource usage is effectively a permanent decision so you will find that choices have been made as conservative as reasonable.

We have the following limitations to contend with:

  • Size of the block chain. It is often advantageous to store previously validated information, even if it is not immediately required for the operation of the system. It makes wallet management easier and allows for easy re-synchronization if required. The limit of this can not be above reasonable cost or the size of volumes available to the mass-market.

    Growth of the block chain size on dish currently is bounded by the block size limit. Knowing that 6 blocks happen on average per hour, and they can be a maximum of 4MiB when fully saturated with Segwit transactions, we have a bounded growth of 210 GiB per year.

    Nodes can disgard these blocks once validated to avoid storing them, but the entire set must be transmitted to them in some form, typically over the internet but could be done via Bluray, Fedex, or carrier pigeon if this was cheaper or required. This is a limit for the size of the growth, as it must not exceed the ability of users to obtain the data needed to validate.

  • Size of the UTXO. The Unspent Transaction Outputs database is the storage of units of Bitcoin that have not been spent. This is consensus critical and must be stored by all nodes in the network who are fully validating. This database has looser restrictions on its growth, and is effectively bounded by the block size as well, as it implicitly limits the number of entries which can be added to the database. Unfortunately there is not much to be done to reduce the impact of this 4 GiB storage on disk without much larger economic changes to Bitcoin to allow for entries to be "archived".

  • Validation complexity. The transactions within the chain have a cost associated with their validation. ECDSA is used in Bitcoin due to it being extremely space efficient and suitable for the task, but it is not particularly fast even with completely optimized implementations. Synchronizing the Bitcoin chain involves billions of individual SHA256 and ECDSA operations which puts a hard limit on the number which can be performed by a consumer processor in a reasonable amount of time. The growth of the chain should not exceed the ability for reasonable, consumer hardware to complete validation.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.