Why Ethereum will never scale

Harry Kalogirou
3 min readSep 12, 2018

--

Ethereum claims to be the platform to build unstoppable applications. It’s the first thing the official website claims. However, there is a fundamental problem when it comes to actually achieving that. The unstoppable apps are so slow, they look stopped anyway #humor. No real world apps can work like that, and proof of stake and sharding aren’t going to solve this. Why? Because, there is another fundamental flaw in Ethereum that will not allow it.

Ethereum right now runs at about 15 transactions per second. That is 15 TSP globaly. Most people don’t grasp this, and think that we are talking tps per app. So lets make this clear. All apps share a maximum of 15 TPS. All of them.

It should be clear to everyone that you can’t expect to have any useful applications, enjoying any kind of traction, that can work with this performance. That is why the ethereum foundation is trying to scale the thing up. As early as 2014 there were plans to implement some kind of Proof of Stake algorithm. This would allow for much faster and less resource intensive transaction verification, thus increasing the TPS. Research was also done in the direction of sharding, that will allow that TPS to theoretically be multiplied to infinity.

Today, after many years, Ethereum has failed to provide that throughput improvement, but we all believe that it will eventually. So lets say Ethereum has now infinite transactions per second. Can we make apps like we are used to on it? Unfortunately we can’t. We will still be restricted to simple scripts that implement ICOs, votings, etc. These will be fast and not bothered by the next cryptokitties taking down the network, however more complex apps are still just not possible.

Ethereum has a basic fundamental data structure for storing the “state” of all the contracts. This is called the state trie. This is a huge trie of hashes pointing to values. What this essentially provides is a cryptographic hash that changes when anything changes in the data. This way Ethereum can verify that a state is what is should be at a specific block. This of course affects what the contracts can work with. In Ethereum the most complex data structure that the system provides to the contract developer is a key-value mapping.

If you combine that with the fact that each instruction you execute requires gas, you are pretty much done if you need data structures more complex that just a key-value map. Think for example what will happen if you need to have an ordered list of things that you need to iterate over. You will have to implement some kind of tree structure, or sorting algorithm inside your contract. Looping around like that in Solidity gets expensive fast. Your transaction might not even fit in the block by itself. It would be like having to implement MySQL or MongoDB inside your contract. Size and gas requirements would be over the roof. This is pretty basic. You can’t have complex apps if you can’t have non-trivial data structures. Having infinite TPS doesn’t solve this problem. Things quickly get expensive and maybe even impossible.

To solve this, the platform should provide the contracts with a native implementation of some kind of database that allows for basic indexing, sorting and in-order iteration of records. Other platforms like EOS, and Ebakus provide such solutions. The developer can have a contract managing millions of records, and being able to manipulate that data without implementing the db inside the contract. Additionally, these operations implemented natively by the platform will allow for much better performance compared to interpreted code.

As I am writing this ETH price is taking a huge beating. The common sentiment is that this is due to ICOs not delivering on promises. While it is true that many ICOs didn’t really have true value into them and are now failing, we should realise that there are also those that really can’t deliver due to constraints in the Ethereum platform itself. I hope those legit attempts will not be slow to migrate to something that can actually provide the necessary technology to produce real unstoppable applications!

--

--

Harry Kalogirou

Harry is a passionate software engineer and free software enthusiast. Creator of FlyCraft, Pop Corny and EbakusNG blockchain software.