The truth is that it costs too much money to do stuff on the Ethereum blockchain. This discourages innovation and adoption for blockchain developers and prospective consumers, holding back the progress of digital currency. It's an ominous sign given that Ethereum is already congested despite not yet penetrating the mainstream.
For those who are unfamiliar, when there are more Ethereum transactions, the prices to process or “mine” a transaction go up. That's because transactions are filled in order by the amount one bids for a transaction fee. For example, someone can offer more money to the “miners” so they compute their transactions first.
How Ethereum works
You can think of Ethereum as creating a simple market for computation – people constantly buying and selling computing power. If it was a pure market, as prices for computation go up, more computers would supply computation, driving prices back down. This does happen, but there are constraints. One of these is a limit on how much the Ethereum blockchain can actually process, called “transactions per second” or TPS.
In order to make blockchain support higher TPS, you can't just increase the block size or throw more computation power at the problem. This is because one principle of a typical blockchain is that everyone holds a copy of the chain and the state of the chain continuously grows in size. With the 11,259 active nodes on the network, it takes time to propagate this data across the network -- both fundamental to the blockchain itself, and a big bottleneck to TPS. In a proof of work system, trying to increase block size will cause Ethereum miners to need more hashing power. This leads to a high entry cost, which results in a less decentralized system; a less decentralized system is a less trustworthy system. In a Proof of Stake system, e.g. eth2
, there’s a minimum on how many validators are needed to come to a consensus, which fundamentally takes time and limits the TPS – despite solving for block generation time in proof of work.
Long story short, blockchain developers generally have to sacrifice decentralization for speed and lower gas fees and vice versa. Decentralization is a critical goal and the reason that blockchain exists in the first place. One could argue that we should view that goal in terms of degree and not as a binary. At the end of the day, we must produce useful software that works for consumer applications while advancing decentralization in steps. It's not enough for a blockchain to offer the utilitarian security benefits of decentralization– it has to work for consumers too, every day.
If we’re going to build consumer applications on the blockchain, we have to take consumer needs into account. Consumers won’t use the product if it takes 10 minutes for whatever action they’re trying to take to process, even if that action is “the most secure” way they could do it. All of the work that other payment processors have done to speed up transactions reflects the fact it's good for businesses to move quickly, and we should not take it for granted.
So what can be done? There is this incredible technology that can take a group of people and organize them without trust, but there is a high barrier to entry. One answer to this problem is to build a second layer on top of the very expensive, secure blockchain that does stuff to make it cheaper and faster. This is known as “layer 2”.
There is a handful of layer 2 solutions that have been proposed, but the consensus among most crypto experts is that one class, rollups, will be the solution to network congestion. Loosely, rollups are contracts that sit on top of the Ethereum blockchain that group together transactions, compress them, and submit them to the blockchain. There are currently two categories of rollups, optimistic and zero-knowledge.
Optimistic rollups rely on people if a validator acts in a malicious way. When users want to withdraw from an optimistic rollup layer back to the Ethereum blockchain, they must wait 7 days to allow for anyone to “challenge” the state of the chain. We strongly believe that there will be many layer two solutions, and interoperability between all of them is key – with wait times like that, users would feel locked into whatever platform they’re using.
On the other hand, zero-knowledge rollups compute a proof of validity at the time of transaction. This means it’s “actively asserted” that a given group of transactions are valid, and thus when a user wants to withdraw back to the Ethereum blockchain, they can do so as fast as it takes for one Ethereum transaction to process. Aptly, the tagline of one of the leaders in zero-knowledge proofs, zkSync, is “Rely on math, not validators”. Today, zkSync offers one of the most robust and advanced zkRollup solutions and, with full EVM capability on the way
– allowing developers to use their smart contracts on Ethereum on zkSync too. I think it’s only a matter of time before zkSync takes the Ethereum blockchain by storm.
Ultimately, I chose for my startup, Neon
, to work with zkSync. zkSync offers fast confirmations, withdrawals, and low fees – all with the same level of security as Ethereum. For our NFT gallery, zkSync was key: we wanted to avoid stifling transaction volume with network fees, and to prevent consumers from unnecessarily interacting with the complexity of blockchain while enjoying the same security and decentralization benefits of Ethereum for NFT ownership.
The point of this blog post isn’t to describe all the potential layer 2 solutions, if you’re curious about them please check out Vitalik’s post
, the co-founder of Ethereum, and an important leader in the blockchain ecosystem.