Scaling Ethereum to Billions of Users
Tokens are selling at valuations which imply they’ll have millions of users. But can the blockchain support it? If not, how far away are we?
Requirements to building scaled decentralized applications (dApps)
There are two requirements to building scaled dApps:
Two. Scalability of these components. I think this will be the main limiting factor and what will be discussed in this post.
Facebook as a measuring stick
Let’s do the math on running something like Facebook. Facebook treats about 175k requests per 2nd (900k users on the site in any given minute, assume an act is taken every five seconds). And this very likely doesn’t include API requests, which are a better analogue and very likely 3–4x higher.
Where is Ethereum now?
Very first, a note: I am not an Ethereum maximalist, but I think Ethereum is the furthest along and best suited for thinking about scalability right now.
At the moment, Ethereum can treat about thirteen transactions per 2nd, which cuts in half to about 7 transactions per 2nd for tokens (Four.7m gas limit, 21k avg gas price for standard txn =
220 standard txns every block, current avg block time 17s = thirteen txns/sec, gas requirement toughly doubles for token transactions). And this doesn’t include more expensive clever contract execution.
By this estimate we’re toughly 250x off being able to run a 10m user app and 25,000x off being able to run Facebook on chain. And since these systems are open rather than proprietary, we’ll see applications thicker than Facebook. This estimate isn’t flawless because the dApp stack functions differently in places than the current Web Two.0 stack. But I believe it’s in the right ballpark. This is why I believe scalability will be the primary bottleneck for the industry for the foreseeable future.
Scaling to billions of users
So how do we get closer to supporting billions of users? Here’s a summary of the scaling efforts I’m aware of:
This high level view makes a few things clear:
- These are hard computer science and game theory problems. Most of them have never been solved before. Estimating completion can be hard and can be far off.
- Large apps can’t run solely on chain and likely never will. They need off-chain scaling solutions.
- While it’s tricky to make accurate estimates when combining scaling improvements, it’s conceivable we could see a 100x improvement by the end of 2018, which would permit a 1–10m user app.
- Scaling is multidimensional. Different methods address different things. So it’s hard to measure with a single and global “transactions per second” metric.
- These projects have very few people working on them — in most cases less than five people. The people presently working on them are exceptionally talented, so that is not at all a knock on their efforts. If you are a developer getting into the space and want to work on hard problems with large influence, I’d suggest getting in touch with one of these projects. Talk to the Ethereum core devs (for on-chain solutions) by joining the Ethereum Core Gitter talk or contact Vitalik or Vlad, get into payment channel networks by contacting Jeff Coleman or the Raiden Network, or contact Truebit by responding to their active hiring thread on reddit.
How can Ethereum systematically scale better?
Eventually, it is worth thinking about the how this scaling work can be best supported in the future. Capital was the Ethereum Foundation’s largest constraint in January, and it has prudently managed its finances. However, given latest ETH price switches, the Foundation has over $150m (750k ETH, $30m fiat) and expenses are
$250k a month. The Foundation can now hire more developers at rates competitive to companies like Google, permitting forward thinking developers to take the plunge. Working in the industry is developing it’s own risk spectrum. Working on Ethereum could be similar to working at a Google: lower risk with broad influence right away. Working on a token is similar to working on a startup: higher risk and lower initial influence but higher upside potential. How core protocol work is best funded beyond the initial Ethereum Foundation endowment is an open question, but likely further out.
The community may also want to scale beyond central coordination by the Ethereum Foundation over time. As the chart above shows, this is already happening to a puny extent. A plain idea would be feature bounties which the community can request and approve when finished. The community could lightly crowdfund $1,000,000+ and let many teams contest like in the DARPA Grand Challenge that kicked off the self driving car thrust. It’s also possible the Ethereum Foundation moves closer to a decentralized governance model (a DAO) over time, which would have the same effect.
Everything will be tokenized and connected by a blockchain one day. Scalability is the crux of that journey at the moment. Ethereum is orders of magnitude off from being able to support applications with millions of users at the moment. Yet in true decentralized style there are a diverse set of efforts attempting to solve that problem. The fattest bottleneck to solving scalability is the number of people working on the problem. If current efforts are well executed, Ethereum could be ready for a 1–10m user app by the end of 2018.