1

I have been wondering what is the future of ethereum (or any other blockchain) if the blockchain just keep growing and growing, at some point its size will be so huge that only very few nodes in the world will be able to store it which means that:

  • Decentralization will not be possible anymore (only 3 or 4 nodes will have the whole blockchain)
  • Validating some transactions might take ages if validators have to go through most of the blockchain to check that double-spending is ok.
  • Probably much less likely given the number of possibilities but block hash collisions could also become an issue...

Has ethereum already some kind of solution in place for that?

It seems to me that because of this issue private / consortium blockchains are more likely to be used in the future rather than public ones...

1
  • Just to add information, chapter 13 (Future Directions) of the yellowpapper covers long-term storage and blockchain compression. – alberto Mar 23 at 9:21
1

Welcome! The question you're outlining here is indeed one of critical importance. You've probable heard about some of the initiatives we'll discuss here, and now you'll discover that they're working on solving this issue.

It bears emphasizing that keeping node running accessible to the masses remains a priority. We do not want a situation to arise in which most of the users are shut out from potentially running their own node. If anything, Eth2 R&D is trying to make node running more accessible: Nimbus wants you to be able to run a validator on your phone, and Lodestar wants to be a light client in your browser.

So without further ado:

Eth2

Eth2 is a ton of things. Perhaps the most famous aspect of it is the move from the Proof-of-Work algorithm (PoW) to Proof-of-Stake, but there is a lot more to it. While the actual full specification is fairly volatile, it does look like the vision will always include sharding the chain. What this means is that Ethereum will not be one chain, but many. These chains will communicate with each other, and will do so frequently and with ease. You as a user are not supposed to know if your transaction is going cross-shard or not.

The Beacon Chain which launched in December 2020 serves as a coordinator for these shards, shuffling validators (the miners of PoS) between them in order to make collusion between them difficult if not flat out impossible.

With sharding, nodes won't store every shard, but rather just a shard (to the best of my understanding, correct me if I'm wrong).

This itself might not be an answer. After all, even if we shard, each shard will still grow and grow over time. As of now (March 2021), the number of shards is quite bounded, but even if that restriction is opened up, and Ethereum can spin up a multitude of shards, they would still grow steadily over time.

I believe checkpoints and finality cut down on the size over time, though I am not sure, so I will mention it briefly, and say that Eth2 has a concept of finality baked in. This may come as surprise, but sometimes there is such a thing as a block being reverted in Eth1. You may have heard abot exchanges waiting x number of blocks before considering a transaction final - this is why. Eth2 bakes in checkpoints after which there can be no reversion. I believe these can be leveraged to compress previous data, and generally make for lighter storage. Ideas like this are also being discussed in the Stateless Ethereum initiatives, which is our next big topic.

Stateless Ethereum

Currently syncing a full node takes a decent amount of time. Even with a good SSD and connection, it usually takes a few days at least. This is because a full node will download the state of the entire chain from genesis and verify every single thing that has been done from the beginning of Ethereum time until the present. (A full node does not keep all of the state, though; only an archive node also keeps it all around.) Stateless Ethereum started off as an initiative to try to improve this by making Ethereum clients stateless, meaning that they could potentially be turned on and just start working right away. This would also create nodes that wouldn't bloat to unsustainable proportions over time.

There are a number of cutting-edge research projects going on in the Stateless Ethereum state. By all means, search and dig into it. Griffin Ichiba Hotchkiss wrote a series of blogs for the Ethereum Foundation about progress, those may be a good place to start.

Other Advancements

There are other ways that Ethereum is looking at improving efficiency, some of which would cut down on the amount of state per transaction. I doubt that these will make nodes grow less fast, as economics generally say that all that would happen is that there would be more utilisation, but there are at least two that bear mentioning. Cryptography improvements may make certain things more succinct. Rollups may move a lot of state off-chain.

In conclusion, here is a diagram from Vitalik from December 2020 describing the landscape of Ethereum R&D with progress bars of estimated progress for each. (The original tweet that contained this diagram can be found here.):

enter image description here

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.