The web3 billion user scaling problem
“A billion mobile users in three years. The clock starts today I think.” — Solana co-founder Anatoly Yakovenko
The iPhone was released in 2007 and by 2012 a billion people owned a smartphone. Kids started college living in the 20th century and graduated in the 21st century. In just five years smartphones had radically changed our lives.
Most of the world missed the recent release of the Solana Mobile Stack and the Solana Saga phone, but those paying attention are excited.
The Solana Mobile Stack and the Solana Saga phone are the ambitions of the space laid bare: web3 is going mainstream, or it’s going nowhere.
What’s blocking the first billion web3 users?
The super apps that dominate web2.0 are mostly first movers that captured a market by bringing users value in a way no other app previously did. Eventually web3 will have a killer app that brings users value in a way that previous apps could not.
Like web2.0 super apps, a billion user web3 app will require massive scaling. As blockchains in mainstream apps are novel, the scaling problems facing web3 are novel. This post will attempt to discus these scaling problems and their solutions.
Web3 must be fully functional from a mobile device
The current web3 UX requires both a desktop and a physical hardware wallet.
However, the vast majority of humans alive right now will only ever use mobile devices, and so web3 must be fully functional from a mobile device.
The recently announced Solana Mobile Stack (SMS) is a set of software tools and a flagship Android phone. SMS is a framework to integrate decentralized databases into smartphones. It does this in part by utilizing the cryptography hardware built into modern smartphones as a physical hardware wallet. This is the first step in turning mobile devices into full fledged web3 terminals. Soon, all three billion people with an android phone will have full access to web3.
Web3 infrastructure problems require new infrastructure solutions
Beyond the specific infrastructure needs of a app providing service to billions of humans around the globe, there are also unique problems for applications built on decentralized databases.
Blockchains, global state machines, decentralized ledgers — whatever way you want to say it — create novel infrastructure problems. Solving these problems is imperative if web3 is to go mainstream.
Latency kills web3
Milliseconds matters; users accept nothing less than the low-latency and responsive web2.0 experience they’re used to. A laggy and slow UX destroys user engagement, and makes user retention impossible. Until web3 solves it’s latency problem, it will not compete with web2.0.
Response times under 400ms are required for a UX to be immersive and engaging. If a user waits more than half a second for a response from an app, the experience is uncomfortable and frustrating. Low latency is critical for building a successful app.
Why is web3 slow? Besides slow blockchain transaction times the current web3 infrastructure strategies are not are to provide global low latency.
The Solana blockchain is already performing sub-second transactions and is steadily improving in speed. Eventually, sub-400ms responses to blockchain query and transaction requests will be possible for everyone on Earth, anywhere on Earth.
The blockchain is not everywhere — It’s where your users connect to it
Idealistically, decentralized databases may be everything, everywhere, all of the time, but the user doesn’t care about your ideals. From a user’s perspective the connection to the blockchain IS the blockchain. On Ethereum and Solana, RPC nodes act as on-ramps to the blockchain highway. Their location is critical to the user experience.
We may vanquish the speed of light some day. Until then, bringing the blockchain closer to the user is a requirement for a low-latency UX.
Quicker to the Block
Traffic on the public internet is routed along a path chosen algorithmically using a variety of metrics. Latency factors into these routing decisions, but is not always the first priority. On the other hand, a private network backbone that has great peering and interconnectivity is like an HOV lane for your traffic; connection quality is the design goal.
A private network makes connections between between metros low-latency. This unlocks a practical benefit in a multi-region infrastructure strategy: you don’t need to deploy your infrastructure into every metro on the planet. With a single deployment into each region around the globe, your application will be low latency anywhere and everywhere on Earth.
A multi-region infrastructure strategy is an effective way to build an app that’s engaging for every user on the planet. With a private network to connecting metros within a region, it’s only necessary to deploy a single location in each region. This means you can prove low response times to most of Earth’s population centers with just single locations in APAC, Africa, EU, NA, and LATAM.
Scaling to supermassive
One day you’re trying to get your mom to download your app, and three months later the NYT is banging down your door with a cash offer.
Overnight success is the dream, but no success is truly overnight. Behind all success stories was a plan to scale before a blow up.
Everywhere
A billion users doesn’t just mean a bigger cloud bill. You need to be on every continent with more people than penguins.
The challenge is finding a cloud provider that can scale web3 infrastructure.
Automated
No project is the same, and this is especially true of web3. Your project has unique infrastructure needs. These needs require tuning and calibration of your RPC nodes and validators.
Once you have the infrastructure built, you’ll need to scale it. Automation and APIs will be required to scale in a sustainable manner. On the StackPath platform I’ve built a system that allows me to turn up fully functional RPC nodes around the globe via API. With auto-scaling this can be automated to scale to your traffic needs on demand.
Affordable
The cost of scaling can be astronomical if not managed properly. Existing web3 infrastructure providers use a request-based usage model that will not financially scale to a billion users. Taking control of your stack early allows greater control of your runway.
Resiliency is credibility
Credibility can make or break a project. Outages and hacks cause a reputational adjustment in the minds of the community. Trust mirrors valuation in the marketplace of investors and by the grace of their belief does a project succeed or fail.
To maintain credibility, resiliency must be considered in the ideation phase of a web3 project.
Redundancy is reputation
The blockchain may be forever, timeless, a flat circle, or a snake eating its own tail. But the only thing keeping your project from oblivion, from being forgotten, is your uptime.
If your web3 infrastructure goes down — if your RPC, your on-ramp to the blockchain is closed —your app might as well be offline; stuck in an inaccessible stasis while the blockchain and world continues on making history. Modern users expect your application to be always on. When a user finds time standing still, they find a another way to use it.
The blockchain is always on. Web2.0 is always on. Redundancy is how you maintain your uptime. It’s how you built trust with your users that you’ll always be there.
Security is integrity
Web3 projects use discord servers to build their communities. When you first join their discord server, the project usually has a discord bots that send a boilerplate welcome message. Besides the normal rules and pleasantries, there is often a message to the affect of, “Beware of scammers. ADMINS WILL NEVER MESSAGE YOU.”
They might as well say, “Welcome to the jungle.”
Web3 security is an emerging problem space that does not yet have an agreed set of best practices. Yet a large portion of the web3 infrastructure security space is solved for with existing web2.0 practices.
There is no such thing as perfect security, but there are many vulnerabilities you can easily protect against. Right now, many web3 projects have their proverbial front door unlocked and are vulnerable against even basic attacks. Turn key security solutions are affordable, and easy to implement on top of existing web3 infrastructure. I wrote a blog post on using StackPath’s WAF to protect RPC nodes as in the diagram above.
Protecting from hacks and attacks is important in maintaining uptime and providing a good user experience, but it’s also important from a PR perspective. In the past months there have been several well publicized “organic DDoS attacks.” Without rate limiting, one of the most elementary of security tools, bot networks and legitimate users are unintentionally overwhelming web3 infrastructure. With large DDoS attacks available for sale from darknet botnets, Techcrunch will have a steady stream of entries for Web 3 is going just great.
Credibility is built slowly, but destroyed quickly. No matter the cause, when ambitions are taken down a peg, people remember. A history of hacks and outages can sink the reputation of a project, and make funding difficult to secure. If a project does not treat security seriously, VCs will have trouble treating them as a serious business.
The first web3 super app
Web3 is as much a philosophical revolution as it is a technological revolution. The notion that our data ought not be gold in a castle guarded by the monopolistic dragons of Big Tech — that instead data should be free, open, and shared as a public good — is a radical shift. This revolution towards shared databases can affect positive change everywhere: how we do business, communicate with one another, and live our lives.
Today, it may seem like a fever dream. A billion users in three years. On an app not yet imagined, let alone built. Yet there is a very real chance that the principles of shared databases unlocks the next TikTok, Instagram, Pokemon Go, or Tinder. We are increasingly close to a tipping point where a web3 super app is technically possible. Besides a billion user idea, all that builders are missing are the tools to create performant, scaled, and secure decentralized applications.
I believe StackPath, the company I work for, is uniquely positioned to provide these tools. StackPath is a global cloud infrastructure provider for household names you and your family already use. As a member of the Solana Foundation’s Server Program we provide compute services globally to blockchain projects. We are actively building solutions to real world infrastructure challenges facing our partners in the web3 space.
If you have any technical questions regarding web3 infrastructure, or you’re interested in the full length presentation, message me on @ https://twitter.com/j_shelby_j
Test StackPath’s RPC network at http://milliseconds-matter.me/rpc-speed-comparison/
Check out the official blog post for using WAF with RPC nodes https://blog.stackpath.com/protecting-a-solana-rpc-node-with-sp-waf/