<blockquote>
<p>Can grow to unlimited size?</p>
</blockquote>
<p>The bitcoin blockchain is designed to produce 1 block (1-2 MB) every 10 minutes. The difficulty of producing blocks is readjusted about every 2 weeks, so that this frequency does not change.</p>
<blockquote>
<p>I have to verify, by checking every block of theoretically unlimited count?</p>
</blockquote>
<p>Since the size is limited, the blockchain growth can be kept under control, but yes, if you want to be 100% sure that you are verifying your bitcoin transaction properly, you are going to have to use a bitcoin full node and download the full blockchain which is around 321Gb as of today.
There are of course lots of solution to avoid this, and most bitcoin user don't run their own full node but use <a href="https://en.bitcoinwiki.org/wiki/Simplified_Payment_Verification" rel="nofollow noreferrer">Simplified Payment verification</a> or the pruned mode that allow you to avoid having to store the full blockchain.</p>

CC BY-SA 4.0
2021-01-07T16:35:54.867Z
You right, I fixed it
Saxtheowl
CC BY-SA 4.0
2021-01-07T16:52:19.890Z
Thank you, but I still don't understand how the problem of infinite size is solved? SPV seems to still query the chain even if from the network, how are nodes going to keep up if the size increases to infinity?
php_nub_qq
CC BY-SA 4.0
2021-01-26T23:17:07.857Z
@php_nub_qq, I have written another answer detailing your comment
sanket1729
CC BY-SA 4.0
2021-01-07T16:12:17.553Z
2021-01-26T22:59:30.237Z
2021-01-26T22:59:30.237Z
Saxtheowl
<p>Running Bitcoin Core is not a problem for modern computers, and as computer technology is always improving, it will be able to keep up. Computers are very good at processing blockchain data, and that data will be finite not infinite.</p>
<p>If you get involved with Bitcoin core on GitHub, you will get an insight into how it works and you will find other people that can explain that what you are worried about is not a problem (better than me).</p>
<p><a href="https://bitcoincore.org/" rel="nofollow noreferrer">https://bitcoincore.org/</a></p>
<p><a href="https://developer.bitcoin.org/" rel="nofollow noreferrer">https://developer.bitcoin.org/</a></p>
<p><a href="https://github.com/bitcoin/bitcoin" rel="nofollow noreferrer">https://github.com/bitcoin/bitcoin</a></p>

CC BY-SA 4.0
2021-01-07T17:23:52.233Z
2021-01-07T17:23:52.233Z
Atrix
<blockquote>
<p>Say I want to join the network and start a node, I have to fetch the entire block chain which:</p>
<ol>
<li>Can grow to unlimited size?</li>
<li>I have to verify, by checking every block of theoretically unlimited count?</li>
</ol>
</blockquote>
<p>You only have to do that if you want to verify that none of the system's rules were violated at any point in its history. If you don't want to verify that, then don't bother. Nothing requires you to fetch them and check them.</p>
<p>If you don't care about ancient history, you can fetch the state of the blockchain as of some point in time. You can ask other people who have checked the history what the hash of the UTXO set was at that point. And then you can fetch that set and all the blocks after that.</p>
<p>If you only care that no more coins are in existence than are supposed to be and that the system's rules aren't broken <em>after</em> you start using the system, then you can fetch a minimal history set and not every block ever produced.</p>
<p>Another problem that you didn't mention is that if you were going to verify the full validity of every block ever produced, you would also have to understand the system's rules (including any bugs) for all previous times in the blockchain's history. For complex and evolving blockchains, that's also a huge problem.</p>

CC BY-SA 4.0
2021-01-27T09:09:51.503Z
2021-01-28T21:30:44.987Z
2021-01-28T21:30:44.987Z
David Schwartz
<blockquote>
<p>The chain works by verifying every previous block, right? How does this not become an exponential problem?</p>
</blockquote>
<p>I think you are assuming Blockchain growth is exponential with time, but it is linear with time (1MB / 10 min).</p>
<blockquote>
<p>I have to verify, by checking every block of theoretically unlimited count?</p>
</blockquote>
<p>In an extreme scenario, you are right. In the year 3000, we will have ~100 TBs to download and verify and it will keep on increasing ever after. But it's not as bad as it sounds like.</p>
<ol>
<li><p>The rate of growth is low: Because it grows linearly with time, at a given time you will always have a finite amount of data to download and verify. As others have mentioned, there are solutions like SPV and node pruning in order to avoid full storage. If you want to run a full node with entire blockchain stored locally, this rate of increase 1MB/10min is considered small relative to the rate of growth of technology.</p>
</li>
<li><p>Increased efficiencies of node resource utilization: A lot of effort goes into managing the node resources to optimize network bandwidth, disk block compression, verification speed in order to mitigate to downfalls of ever-increasing blockchain size. In fact, if you look at the historical bitcoin-core Initial Block Download times, you will find these times have kept the same or improved over time despite the increasing blockchain size.</p>
</li>
</ol>

CC BY-SA 4.0
2021-01-27T18:32:00.667Z
But if rate is limited linearly then it will be unable to fulfill an exponential increase in adoption?
php_nub_qq
CC BY-SA 4.0
2021-01-27T18:42:28.103Z
There are other layer 2 scaling solutions like Lightning network that don't require everything to be published on blockchain.
sanket1729
CC BY-SA 4.0
2021-01-28T07:31:35.173Z
We have a saying - "patched work". I'm not really sure how that would translate to English but that's very much what this looks like to me. Everyone is free to draw their own conclusions, thank you for your time you took to answer :)
php_nub_qq
CC BY-SA 4.0
2021-01-26T23:16:34.547Z
2021-01-28T18:08:47.517Z
2021-01-28T18:08:47.517Z
sanket1729
<p>This question is a good 3 to 5 years late on the crypto trend but nevertheless I'm still having trouble to understand.</p>
<p>The chain works by verifying every previous block, right? How does this not become an exponential problem?</p>
<p>Say I want to join the network and start a node, I have to fetch the entire block chain which:</p>
<ol>
<li>Can grow to unlimited size?</li>
<li>I have to verify, by checking every block of theoretically unlimited count?</li>
</ol>
<p>I do believe the crypto currency can not grow as it does by having such fundamental flaws, but I seem to not be able to find the solutions to them.</p>

CC BY-SA 4.0
2021-01-07T16:55:46.903Z
I just recently downloaded and started a fresh copy of Bitcoin Core.  Yes, it started by downloading the entire blockchain, and validating every single transaction since way-back-when (2009?).  It took a bit less than 1/2 Terabyte, and about 2 days on a modern desktop PC.
abelenky
CC BY-SA 4.0
2021-01-07T16:56:35.860Z
@abelenky indeed, and that will only get worse. There surely must be a solution for this?
php_nub_qq
CC BY-SA 4.0
2021-01-07T16:59:22.547Z
Not sure what you mean by worse:  1/2 terabyte and 2 days to start up a new node after 10 years (without even using a massive computer network) is no big deal.  In another 10 years, computing power, networking and storage will all be cheaper and faster.  The overhead just isn't that worrisome.
abelenky
CC BY-SA 4.0
2021-01-07T21:29:44.287Z
People said the same thing in 2015, and it still takes me roughly the same amount of time to start a fresh node today. Technology improvements exist and have allowed bitcoin to scale despite the growing size of the blockchain.
m1xolyd1an
<blockchain><synchronization><scalability>
How isn't blockchain fundamentally broken?
php_nub_qq
# How isn't blockchain fundamentally broken?

(Asked by: username_0 on 2021-01-07)

This question is a good 3 to 5 years late on the crypto trend but nevertheless I'm still having trouble to understand.

The chain works by verifying every previous block, right? How does this not become an exponential problem?

Say I want to join the network and start a node, I have to fetch the entire block chain which:

1. Can grow to unlimited size?
2. I have to verify, by checking every block of theoretically unlimited count?

I do believe the crypto currency can not grow as it does by having such fundamental flaws, but I seem to not be able to find the solutions to them.

**Tags:** blockchain, synchronization, scalability

> **Comments:**
> **username_1**: I just recently downloaded and started a fresh copy of Bitcoin Core.  Yes, it started by downloading the entire blockchain, and validating every single transaction since way-back-when (2009?).  It took a bit less than 1/2 Terabyte, and about 2 days on a modern desktop PC.  
> **username_0**: @username_1 indeed, and that will only get worse. There surely must be a solution for this?  
> **username_1**: Not sure what you mean by worse:  1/2 terabyte and 2 days to start up a new node after 10 years (without even using a massive computer network) is no big deal.  In another 10 years, computing power, networking and storage will all be cheaper and faster.  The overhead just isn't that worrisome.  
> **username_2**: People said the same thing in 2015, and it still takes me roughly the same amount of time to start a fresh node today. Technology improvements exist and have allowed bitcoin to scale despite the growing size of the blockchain.  

---

## 4 answers

### Answer by username_4 on 2021-01-26. Score: 4 | Accepted answer

> The chain works by verifying every previous block, right? How does this not become an exponential problem?

I think you are assuming Blockchain growth is exponential with time, but it is linear with time (1MB / 10 min).

> I have to verify, by checking every block of theoretically unlimited count?

In an extreme scenario, you are right. In the year 3000, we will have ~100 TBs to download and verify and it will keep on increasing ever after. But it's not as bad as it sounds like.

1. The rate of growth is low: Because it grows linearly with time, at a given time you will always have a finite amount of data to download and verify. As others have mentioned, there are solutions like SPV and node pruning in order to avoid full storage. If you want to run a full node with entire blockchain stored locally, this rate of increase 1MB/10min is considered small relative to the rate of growth of technology.
2. Increased efficiencies of node resource utilization: A lot of effort goes into managing the node resources to optimize network bandwidth, disk block compression, verification speed in order to mitigate to downfalls of ever-increasing blockchain size. In fact, if you look at the historical bitcoin-core Initial Block Download times, you will find these times have kept the same or improved over time despite the increasing blockchain size.

> **Comments:**
> **username_0**: But if rate is limited linearly then it will be unable to fulfill an exponential increase in adoption?  
> **username_4**: There are other layer 2 scaling solutions like Lightning network that don't require everything to be published on blockchain.  
> **username_0**: We have a saying - "patched work". I'm not really sure how that would translate to English but that's very much what this looks like to me. Everyone is free to draw their own conclusions, thank you for your time you took to answer :)  

---

### Answer by username_3 on 2021-01-07. Score: 3

> Can grow to unlimited size?

The bitcoin blockchain is designed to produce 1 block (1-2 MB) every 10 minutes. The difficulty of producing blocks is readjusted about every 2 weeks, so that this frequency does not change.

> I have to verify, by checking every block of theoretically unlimited count?

Since the size is limited, the blockchain growth can be kept under control, but yes, if you want to be 100% sure that you are verifying your bitcoin transaction properly, you are going to have to use a bitcoin full node and download the full blockchain which is around 321Gb as of today.
There are of course lots of solution to avoid this, and most bitcoin user don't run their own full node but use [Simplified Payment verification](https://en.bitcoinwiki.org/wiki/Simplified_Payment_Verification) or the pruned mode that allow you to avoid having to store the full blockchain.

> **Comments:**
> **username_3**: You right, I fixed it  
> **username_0**: Thank you, but I still don't understand how the problem of infinite size is solved? SPV seems to still query the chain even if from the network, how are nodes going to keep up if the size increases to infinity?  
> **username_4**: @username_0, I have written another answer detailing your comment  

---

### Answer by username_5 on 2021-01-07. Score: 3

Running Bitcoin Core is not a problem for modern computers, and as computer technology is always improving, it will be able to keep up. Computers are very good at processing blockchain data, and that data will be finite not infinite.

If you get involved with Bitcoin core on GitHub, you will get an insight into how it works and you will find other people that can explain that what you are worried about is not a problem (better than me).

<https://bitcoincore.org/>

<https://developer.bitcoin.org/>

<https://github.com/bitcoin/bitcoin>


---

### Answer by username_6 on 2021-01-27. Score: 1

> Say I want to join the network and start a node, I have to fetch the entire block chain which:
>
> 1. Can grow to unlimited size?
> 2. I have to verify, by checking every block of theoretically unlimited count?

You only have to do that if you want to verify that none of the system's rules were violated at any point in its history. If you don't want to verify that, then don't bother. Nothing requires you to fetch them and check them.

If you don't care about ancient history, you can fetch the state of the blockchain as of some point in time. You can ask other people who have checked the history what the hash of the UTXO set was at that point. And then you can fetch that set and all the blocks after that.

If you only care that no more coins are in existence than are supposed to be and that the system's rules aren't broken *after* you start using the system, then you can fetch a minimal history set and not every block ever produced.

Another problem that you didn't mention is that if you were going to verify the full validity of every block ever produced, you would also have to understand the system's rules (including any bugs) for all previous times in the blockchain's history. For complex and evolving blockchains, that's also a huge problem.


---

