Like other public blockchains, ethereum intends to support as many users as it can.
The problem is that, today, we don’t really know the limits of the platform.
Because of a hard-coded limit on computation per block, the ethereum blockchain currently supports roughly 15 transactions per second compared to, say, the 45,000 processed by Visa.
This limitation of ethereum and other blockchain systems has long been the subject of discussion by developers and academics.
While ethereum developers might like to highlight how the flexible smart contract platform differs from bitcoin, for example, it isn’t unique in regards to scalability.
As disappointing as that might sound, there’s hope in proposed solutions that haven’t made it into the official software yet.
Why is scaling so difficult?
Ethereum and bitcoin use a combination of technical tricks and incentives to ensure that they accurately record who owns what without a central authority.
The problem is, it’s tricky to preserve this balance while also growing the number of users (especially to the point where average people can use the system to purchase coffee or run applications).
That’s because ethereum depends on a network of ‘nodes’, each of which stores the entire ethereum transaction history and the current ‘state’ of account balances, contracts and storage. This is obviously a cumbersome task, especially since the total number of transactions is increasing approximately every 10–12 seconds with each new block.
The worry is that, if developers raise the size of each block to fit more transactions, the data that a node will need to store will grow larger – effectively kicking people off the network. If each node grows large enough, only a few large companies will have the resources to run them.
Despite the inconvenience, running a full node is the best way for users to take advantage of privacy and security. Making full nodes more difficult to run would further limit the number of people that can verify transactions themselves.
In other words, decentralization and scalability are currently at odds, but developers are looking for ways around this.
There are a few ethereum scaling projects in the works, each of which tackles a different scalability problem.
As mentioned, one problem is that each node needs to store the updated state of each account on the network. ‘Sharding’ draws from a traditional scaling technique called ‘database sharding’, which effectively breaks a database into pieces and puts each part on a different server.
The goal of sharding is to move away from requiring ‘full’ nodes – those which store the full state of the network and every transaction that occurs.
Instead, each node stores a subset of this data and only verifies those transactions. If a node needs to know about transactions or blocks that it doesn’t store, then it finds another node with the information it needs.
The problem here is that the process isn’t exactly trustless, since, in this model, nodes need to rely on other nodes.
Ethereum wants to solve this problem using ‘cryptoeconomic incentives’ that drive actors in a system to act a certain way – in this case, ensuring that nodes are passing on valid information to other nodes.
A possibly more ambitious capacity-expanding technology borrows from bitcoin’s Lightning Network, a proposed top-layer to the blockchain that mirrors how the multi-layered internet works.
Lightning-style ‘off-chain’ transactions could bring the technology’s capabilities closer to how users were told it was ‘supposed to be’ – fast and nearly limitless in supply, while still not requiring users to trust any intermediary.
According to this vision, most transactions will be made on off-chain micropayment channels, lifting the burden from the underlying blockchain.
The reason that this works, in theory, is that either party can kick the transaction back to the blockchain anytime they want, giving both parties the ability to end the interaction.
With this add-on, ethereum’s computational limit doesn’t need to increase too much, and the hope is that it will still be reasonable for regular ethereum enthusiasts to run a full node.
How long will it take to scale?
This is a tricky question, as there’s still a lot of experimentation happening on the scaling front.
In creator Vitalik Buterin’s words, the long-term goal is for the platform to be able to process transactions at “Visa-scale transaction levels” or beyond.
However, as skeptical observers are keen to point out, this is based on Buterin’s analysis, and on techniques that have yet to be deployed on a public blockchain.
In sum, although ethereum currently can only handle a handful of transactions per second, its architects have high hopes for the future.