The Trouble With Scaling Ethereum

Why we're building Immutable X

Introduction

Everyone who uses, mints or trades NFTs on Ethereum knows that scaling issues along with high gas prices are the key challenges facing the industry right now.

Scalability refers to a blockchain network's ability to support high transactional throughput and future growth. Scalability is critical because it represents the only way for a blockchain network to reasonably compete with centralised platforms with rapid settlement times. To compete with these existing systems, blockchain technology must match or exceed these high levels of scalability.

Ethereum is slow - scalability of transactions (to meet growing network demand) has had the greatest impact due to inherent properties of Ethereum mining that restricts block generation to between 7-15 transactions per second. The main contributing factor is the need for every node to process each and every transaction on the network. Unless resolved, transaction congestion will continue to rise and lead to long wait times for all users.

High network demand can also affect gas fee consistency. Currently the gas price at a given time is set by demand for the network. Fees can fluctuate significantly depending on the time of day, on certain dates and even by the volume of transactions passing over the network. This makes it nearly impossible to predict how much each transaction will cost.

With high gas fees, there is a likelihood of very low liquidity in the NFT market, as a single transaction can cost more than the value of the NFT. This is a serious blocker for growth in the NFT market.

What is Layer 1 & Layer 2 Scaling

Layer 1 refers to a blockchain, while Layer 2 refers to a network or technology that operates in conjunction with Layer 1 to improve its scalability and efficiency. Ethereum, for example, is a Layer 1 blockchains.

Layer 1 scaling solutions augment the base layer of the blockchain protocol itself in order to afford scalability. Layer 1 solutions change the rules of the protocol in order to increase transaction capacity and speed, while managing more users and data. Layer 1 scaling solutions can, for example, increase the amount of data contained in each block, or accelerate the rate at which blocks are confirmed, to increase overall network throughput.

Layer 2 refers to a network or technology that operates on top of an underlying blockchain protocol. This category of scaling solutions requires shifting a portion of a blockchain protocol’s transactional burden to an adjacent system architecture, which then handles the brunt of the network’s processing and only subsequently reports back to the main blockchain to finalize its results, improving its scalability and efficiency.

By abstracting the majority of data processing to auxiliary architecture, the base layer blockchain becomes less congested and ultimately more scalable.

Existing Layer 1 Solutions

While the solutions do address the scalability issue to some degree and offer some improvements, they do not completely solve the scalability issues raised and experienced. Existing solutions include:

Sharding

Sharding involves dividing a chain state into smaller partitions called shards. Nodes within a shard must process all transactions that originate in that shard. Thus, by reducing the number of nodes that must process each transaction, overall network throughput can be improved. However the issues that can arise with sharding are the ‘single point of failure’, which means corruption of shard due to network/hardware/systems problems causes failure of the entire table.

Side Chains

Side Chains have their own consensus mechanism meaning they don't inherit security from mainnet therefore are far less secure, meaning valuable assets can be stolen. Sidechains are not truly scalable: They are heavily constrained at the upper limits as security and censorship risks continue to increase with volume. Side chains offer poor liquidity - Fragments the user-base with complexity and lack of interoperability with Layer 1.

Ethereum 2.0

Ethereum 2.0 (Eth2) is a significant update to the way that Ethereum currently functions that promises to increase its bandwidth and reduce the gas fees.

Eth2 is currently being tested (2021) with the ‘Medalla Testnet’, which involves over 20,000 validators worldwide. However, it has been plagued by delays, setbacks, and concerns within the developer community regarding the security of E2.0. While this upgrade will help congestion, it is not nearly enough to meet the surging demand for the Ethereum network - testing suggests that Eth2.0 will only be able to achieve around 3,000 transactions per second.

Existing Layer 2 Solutions

State Channels

State channels are a general-purpose scaling solution that are useful in interactions between a defined number of users in a closed system. State channels require an opening and closing transaction on-chain, but all the intermediate states are sent directly between the parties. Only a proof is submitted to the main chain after the transactions are processed as off-chain.

The key issue with state channels is that they require of all participants involved in order to complete the final on-chain transaction. The participants can use someone to represent them if they go offline, but this third-party could be bribed or attacked (particularly if one entity is fulfilling this function for the entire ecosystem). This limits both the security and scalability of state channels.

Plasma

Plasma is another off-chain scaling technique that relies on off-chain transactions (in the child chains) with minimal interactions with the main chain. However, withdrawals from the plasma chain can take up to 2 weeks, as there is a requirement for a challenge period (‘exit game’) where users can report fraud. This presents a significant disadvantage and dramatically impacts the User Experience (UX) of the system.

Rollups

Rollups, like the name suggests, “roll up” large numbers of transactions into a big batch, then generate a “proof” for that batch. This proof, rather than each individual transaction, is then posted on mainnet. Rollups are the latest of the scaling technologies and are the subject of significant excitement for everyone involved in Ethereum.

Rollups perform transaction executions outside the main Ethereum chain (layer 1), but post transaction data on layer 1. As transaction data is included on a layer 1 block, this allows rollups to be secured by layer 1, inheriting Ethereum's security properties. Performing execution outside of layer 1, is a defining characteristic of rollups.

Optimistic Rollups

Optimistic rollups are “optimistic” because they assume that the proof provided for each transaction batch is valid.

During a pre-defined challenge period (usually 1-2 weeks), anyone can challenge the submitted proof and assert fraud - these are therefore called ‘fraud proofs'. The advantage of optimistic rollups is that they easily support general computation: you will be able to copy/paste your mainnet Solidity code.

However, they have significant limitations for scaling NFTs. Firstly, there is no possibility for fast NFT withdrawals - taking your NFT out of the system can require a 1-2 week wait. Secondly, if an optimistic rollup is very successful and contains a significant amount of value, it can become a target for attacks, as the cost of stealing funds from the optimistic rollup is unrelated to the size of the potential theft - a penalty for the growth that we and others expect in the NFT ecosystem.

Zero Knowledge Rollups

Zero knowledge rollups, also known as ZK-rollups, bundle or "roll up" hundreds of transfers off-chain and generate a cryptographic proof, known as a SNARK (Succinct Non-interactive ARgument of Knowledge) or STARK (Scalable Transparent ARgument of Knowledge).

ZK-rollups use “validity proofs” rather than the fraud proofs described above, using either SNARKs or STARKs and plenty of complex mathematics to prove the validity of the transactions in the rollup. Using validity proofs means that once a proof has been accepted on-chain, users have immediate confirmation that those transactions were valid and are now immutable.

In an NFT context, this solves both the problems identified with optimistic rollups above: users can withdraw immediately and no-one is able to attack the system. In terms of scale, ZK-rollups have been able to reach speeds of thousands of transactions per second and can reach even higher limits in future.

The current disadvantage of ZK-rollups is general computation. This is because it is more challenging to port smart contract logic directly into the rollup, meaning there is only limited functionality available e.g. transfers and trades. This challenge is rapidly being addressed.

The Solution - Immutable X Layer 2 Technology

We know the NFT ecosystem desperately needs liquidity and scalability.

With Immutable X, we’re offering that scalability to everyone without forcing applications or users to compromise on the security of their assets. When comparing scaling solutions, Immutable had a clear understanding of what it wanted:

  • Unlimited scalability
  • Instant transaction confirmation and mainstream-quality UX
  • No compromise on user security
  • Retaining access to Ethereum’s ecosystem and network effects

That’s why Immutable X is built as a ZK-rollup in partnership with StarkWare. We chose the ZK-rollups because it is the only solution capable of scale without compromise. This means whenever you mint or trade an NFT on Immutable X, you pay zero gas, and the validity of all transactions are directly enforced by Ethereum’s security using zero-knowledge proofs -- the first “layer 2” for NFTs on Ethereum.


References

  1. ZK & Optimistic Rollup - https://ethereum.org/en/developers/docs/scaling/layer-2-rollups/#zk-rollups
  2. Layer 1, Layer 2 and Layer 2 Scaling - https://www.gemini.com/cryptopedia/blockchain-layer-2-network-layer-1-network#section-layer-1-scaling-solutions

Did this page help you?