The increasing size of Ethereum blockchain could soon become a potential problem. Miners running Ethereum full nodes have reported difficulties in synchronizing them. One miner, for example, pointed out that their geth node running the latest version 1.8.1 fails to sync the last 65 blocks. Another complaint read that the node always failed to sync with the current state of the Ethereum blockchain.
What is Causing This Problem?
A reason for this failure could be Ethereum’s ever-growing blockchain size, which is reported to have exceeded 1 Terabyte (TB). The size represents the amount of data that has to be validated and synced by all full nodes running on the network. If one were to run an Ethereum full node, he would need at least 1TB of vacant disk space and that much of bandwidth to download that much data in a reasonable time frame.
The speed at which nodes sync with the main chain is dependent on hardware capabilities of the host machine and its internet speed. On June 11, 2017, it was observed that the size of the Ethereum blockchain had risen by 700 percent between June 2016 and June 2017 to reach 160GB. The same source predicted that if it continued to grow at the same rate, it would reach 1TB by June 2018. The prediction has turned out to be accurate.
On May 23, stopanddecrypt published a Medium post outlining the issues with Ethereum and providing a commentary on these issues, while experts of the blockchain network provided their response.
Why Ethereum’s Growing Blockchain Size is a Problem
There are two versions of the Ethereum blockchain nodes available to download. One is the full version while the other is the light version. The light version of the node contains only headers of the most recent transaction blocks. It works on the logic that if recent transactions are valid, the previous transactions must also be valid and verified successfully. As a result, the light node does not validate individual transactions, only the headers of the most recent transactions.
On the other hand, full nodes have an exact copy of all transactions that have occurred on the network since the currency’s genesis block. Full nodes download and sync all relevant block data from the first block to the current one. They are, therefore, central to proper working of any blockchain network, verifying each transaction to ensure that it adheres to the consensus rules.
However, as Ethereum’s blockchain size increases, it becomes more difficult for miners to keep up with it. The lack of any cap on the block size means that the amount of data full nodes needs to verify keeps on increasing. Ethereum is a smart contract platform and is host to several decentralized apps, all of which tend to keep adding more transactions. The Ethereum blockchain is capable of only handling about 15 transactions per second.
As its blockchain size increases, full nodes are increasingly stressed for bandwidth and storage. In the event when a specific piece of hardware is no longer capable of handling transactions at a high enough speed, the node will fail to sync. This is exactly what is happening with miners that are reporting that their full node does not sync anymore.
Growing Blockchain Size will ‘Kill Decentralization’
Those that cannot run a full version of the node can still download a lighter one. There are no exact figures available that estimate the number of full and light nodes separately. If Ethereum’s blockchain size goes on increasing indefinitely, it will likely render most miners out of sync. They may then switch to running light client versions.
“That Ethereum node count? Guarantee you those are mostly Light-Nodes doing absolutely zero validation work (checking headers isn’t validation). Don’t agree with that? Prove me wrong. Show me data.” – stopanddecrypt
“How about the author provides some data supporting their speculative claims? “Guarantee you” implies an appeal to authority, and given the above false claims and misunderstandings, the author has in my mind lost enough credibility to be taken seriously on matters of (Ethereum) protocols and networks.” -Gustav Simonsson
Such a situation where a few miners are the only ones left running full nodes will possibly lead to decentralized being threatened. What is worse is that it will never be publicly known when only a few miners are the ones left running full nodes while the rest have shifted to light versions.
Sharding May Also Fail to Solve the Problem
It has long been argued that sharding will help overcome the problem of Ethereum’s bloating blockchain. Sharding proposes splitting up the main chain into ‘n’ smaller shards such that nodes will be responsible for only validating transactions of only one shard and not the rest.
The idea is to make nodes validate more transactions in parallel and increase the number of transactions that can be handled by the network. However, if a few miners run the whole network, they can easily carry out a 51 percent attack and insert a malicious transaction in the blockchain. Due to such an occurrence, other honest nodes may not even realize that the shard header it just validated might be a malicious one.
A potential solution could be to implement a block size cap on transactions that occur on the Ethereum blockchain. A block size cap will be different from the currently existing gas limit. However, this will result in transaction fees increasing, and some dApps ceasing to function.
Ethereum Experts Respond
In response to stopanddecrypt’s post, Gustav Simonsson, an Ethereum core developer, published a rebuttal on May 25. He argued that there is a cap on Ethereum’s blocksize, stating that if the author can trust bitcoin miners to act in a way to maximize the value of bitcoin, then the author should also trust that Ethereum miners will not vote for block sizes that are excessive.
Also, Simonsson maintains that apps do not cripple the Ethereum network, but rather, “it simply pushes tx fees up to the point where people are willing to pay them, which generally overshoots (just like it does on Bitcoin) and then finds an equilibrium significantly lower than the peak.”
Responding to the claims that Ethereum underutilizes full nodes, Simonsson said that “any dedicated machine with a CPU from the last six years, 8GB of RAM and a modern SSD can process an Ethereum full node just fine (or several full nodes as run on my pretty modest server).”
He also goes on to state that no one knows how many nodes are required for a decentralized network, as we have yet to experience a large-scale attack to test the resilience of Bitcoin or Ethereum. The rebuttal also reminded readers that Ethereum is processing four times as many transactions as Bitcoin, illustrating a philosophical difference in approach between the two blockchain networks.