Can Decentralized Applications Help One Person Build A Billion Dollar Company?
How might a solo entrepreneur build a billion-dollar business using decentralized applications?
We're in a recession, so money is expensive, and it's more important than ever to keep costs under control. In startups, the biggest costs are usually headcount and customer acquisition.
Major new technologies can remove the need for jobs or create new markets where customers are easier to acquire. The best do both. Examples of this can be seen with the personal computer, the internet, the web, cloud computing, smartphones, and artificial intelligence.
Today the most popular genre of decentralized applications is decentralized finance or DeFi. Among other things, DeFi promises to dramatically reduce the number of people required to build financial services. But can the principles and technologies pioneered by DeFi extend to other industries? I think the answer is yes, but first, let me explain by analogizing DeFi to other technological advancements.
Cloud Computing
To begin, let’s consider cloud computing’s impact. The current age of cloud computing began with AWS in the early 2000s. Its defining principles of how to externalize services were outlined in Jeff Bezo’s API mandate. To understand its impact, let's consider the minimum number of people you might need to build an MVP web application before AWS:
- Backend Engineer: To write your business logic.
- Frontend Engineer: To create your UI and its business logic.
- DBA: To provision and administer databases.
- IT Person: To build, maintain and install servers in a data center.
- Sysadmin: To install and configure server operating systems, firewalls, and deploys.
- Engineering Manager: To coordinate and manage all of these people.
Most of these people would be making five to six-figure salaries. If you wanted to scale this web application to handle millions of daily users, you would likely need to double the team size.
Today if you were building something similar, your team would look like this:
- Backend Engineer: To write your business logic while leveraging AWS to do the job of the Sysadmin and DBA. The IT person’s job is no longer necessary.
- Frontend Engineer: To write your UI and its business logic.
A good full-stack engineer could handle backend and frontend responsibilities. The limited number of people removes the immediate need for a people manager. If you wanted to scale this application to handle millions of users, you wouldn't need to hire more than one engineer. Cloud computing platforms like AWS, for the most part, take care of scalability.
Foundations Of Decentralized Finance
Now, let’s move on to DeFi. To understand the implications of DeFi for traditional financial services, consider an average person’s financial needs:
- The ability to send and receive stable currency domestically and internationally.
- To borrow and lend.
- To acquire assets like stocks, derivatives, commodities, and cryptocurrency.
Today, these needs are met by the likes of Wells Fargo, Charles Schwab, or fintech companies like Robinhood and Square. All employ vast engineering teams to write software to facilitate these services.
How might DeFi’s unique properties be used to do this more efficiently?
Starting with Bitcoin, all blockchains have a notion of an immutable distributed ledger. An undisputable cryptographic record of who, or rather what wallet, owns what tokens. This is the foundation DeFi is built on.
Ethereum builds on Bitcoin’s concept of a distributed ledger with smart contracts.
A smart contract, like any contract, establishes the terms of an agreement. But unlike a traditional contract, a smart contract’s terms are executed as code running on a blockchain.
This concept of smart contracts is leveraged to introduce token standards or Ethereum Request-for-Comments. An example of the power of these standards can be seen in ERC-20.
ERC-20 allows for fungible tokens on Ethereum. It implements an API for tokens that provide functions that include:
- The transfer of tokens from one account to another.
- Getting the current token balance of an account.
- Getting the total supply of the token available on the network.
You can build an ERC-20 to represent different assets on Ethereum. This includes assets that exist off-chain and can be held in custody by an institution in the real world, such as dollars.
A good example is the stablecoin USDC, an ERC-20 that maps one-to-one and can be redeemed for an off-chain US dollar held in custody. Currently, there are about 55 billion USDC in circulation. This essentially allows anyone with an Ethereum wallet to have a checking account.
Implications Of Decentralized Finance
To provide a checking account, traditionally, teams of engineers at banks or fintech companies will need to write a lot of code. This code will need to manage ledgers, maintain databases, and other infrastructure to track account balances, settlements, and sends and receives in fiat currency. If you’ve ever had to do anything like this, you know how much pain this kind of code can be.
In Ethereum, all this is handled for free by stablecoins implemented using the ERC-20 standard. All a customer needs to do is connect a wallet, and you can use their transaction history, denominated in dollars, in your DeFi applications. All of the hosting and operations required to make this happen and stay up 24/7/365 are taken care of by Ethereum.
As of 2021, there were 4,236 FDIC-insured commercial banks in the United States. Many of them will have engineering teams all essentially implementing the same infrastructure. Smart contracts leveraging ERC-20s eliminate most of this redundant work.
Aside from getting rid of duplicative engineering work, what this system means is that now everyone can generate an Ethereum wallet and receive and send US dollars as if they had a checking account.
Think of what goes into opening a bank account. Consider all the redundant people and processes across all those banks that this potentially reduces. Now let’s consider how this concept can be further built upon to offer more sophisticated financial services.
Money Legos
DApps are built on top of smart contracts. DApps typically use smart contracts as their backend to do things like authorize transactions and connect to the blockchain. Smart contracts make apps decentralized as they are controlled only by the logic programmed in each contract that lives on-chain.
A key property of DeFi is the ability to combine smart contracts. The smart contract component of each DApp can be considered a building block. These smart contracts represent a protocol layer that performs a specific job; for example, there are DApps for lending, borrowing, swapping, or staking assets.
Developers can stack the protocols of multiple DApps together, like Aave, Uniswap, or Curve, to create new DApps, much like stacking blocks in a lego set. This notion of money legos saves a lot of time and complications compared to what traditional finance companies have to do.
For example, DApps do not need to start from scratch to offer functionality such as lending or trading, they can integrate an existing money lego and innovate on top of it.
It should be noted that these DApps are often created and maintained by foundations or companies.
The implication is that companies building DeFi products can be much smaller than banks or fintech companies. It also means that the world's financial services could be implemented with a fraction of the number of people working on them today.
Why Can’t This Be Done With Cloud Computing API’s?
At this point, you might be wondering… why can’t this be achieved with cloud computing API’s? The short answer is trust. The longer answer requires digging a little deeper into how Ethereum works and how DApps are implemented. This is key to learning how the blockchain enforces this trust.
As stated earlier, DApps are built on top of smart contracts. The frontend of the DApp might be a website hosted on a decentralized off-chain storage solution, like IPFS, or a centralized cloud provider like AWS. Here’s what this setup looks like from a network perspective
The Ethereum blockchain is a globally accessible, deterministic state machine maintained by a peer-to-peer network of nodes. In Ethereum, there is a single, canonical distributed computer called the Ethereum Virtual Machine, or EVM, whose state everyone on the Ethereum network agrees on. Everyone who participates in the network (every Ethereum node) keeps a copy of the state of this computer.
A smart contract is a program that runs on the EVM and defines the logic behind the on-chain state changes. Because smart contract code is stored on-chain, anyone can inspect the application logic of all smart contracts on the network. Existing data can never be updated, only new data can be written to the blockchain. The EVM is designed, so everyone has write access. As a result, this machine isn’t controlled by any single entity in the network.
The frontend of a DApp defines its UI logic and communicates with the logic encoded in the smart contract. Communicating with smart contracts requires an Ethereum node to interact with its data and code on-chain. If you want to do this, you have two options:
- Set up and run your own Ethereum node
- Use nodes provided by third-party services like Coinbase Cloud, Infura, Alchemy, or Quicknode
Hosting and setting up a new Ethereum node on a server can take days. Using a third-party service means avoiding all the operational headaches of running a full node yourself, hence most DApps go with this option. A simplified DApp architecture using a provider might look like this:
Trust in the system is enforced at the smart contract layer built on top of the EVM, which is tamper-proof, distributed, and accessible to everyone in the network. The main points to reiterate are that smart contracts are:
- Permissionless: Anyone can write a smart contract and deploy it to the network.
- Composable, Smart contracts are public and can be considered open APIs; you can call other smart contracts in your smart contract.
This means cloud providers and other components can be swapped out while the promises made by the smart contracts to users persist on the blockchain. Lets now contrast this with a centralized web app’s architecture:
To illustrate the trade off’s between the centralized web app and the DApp, let’s ask a few questions related to the companies hosting the web server and APIs used by the centralized app:
- What happens if they go out of business?
- What happens if they decide to increase prices dramatically?
- What happens if they decide not to do business with you anymore?
Ethereum’s open-source smart contracts address these concerns in the following ways:
- So long as the network is operational, they and their standards (ERCs) will still exist and function.
- Smart contracts are essentially open-source commodity services. They don’t have the same business conflict of interest as SaaS companies. If a team maintaining one shuts down, you can fork its code or migrate to another smart contract.
- The decentralized nature of protocols makes it much harder for you to be denied access to services. The EVM is permissionless.
Even big companies providing the APIs that power the internet will be tested in hard times. When stock prices slump or political tensions run high, the temptation might be to change prices and rules or deny service to your company.
A benefit of blockchains is that can’t be evil by design is better than just saying don’t be evil. Modern cloud computing has only been around for about 20 years; during that time, there have been a lot of political and economic changes. Blockchains like Ethereum allow you to build your business on data foundations you can trust.
To drive this point home, here are some specific examples of API providers changing the rules:
- In 2011, Google made drastic pricing changes out of the blue with a 30-day notice to its cloud product, app engine. This change from an abstract resource-driven model, where pricing is pegged to actual CPU usage, to an instance-driven model resulted in between a 2x to 10+x cost increase for running on GAE with the new pricing scheme.
- The first version of Twitter’s API opened up a lot of the social network’s inner workings to developers with few limitations, enabling full access to tweets and content published by users on Twitter. Beginning in 2012, Twitter tightened its terms of service. It imposed a 100,000 token limit on connected users for apps that mimic or reproduce the Twitter consumer experience, crippling many of them, and set per-endpoint rate limits across the board. A full history of Twitter’s relationships with developers can be seen here.
- In 2021, AWS decided to ban the conservative social network Parler, see here.
- PayPal has regularly gotten bad press for arbitrarily freezing users or business funds without explanation; see a recent example here.
- In 2022, Apple decided to change its AppStores rules and take a 30% cut of social media companies like Facebook’s boost post advertising revenue. See here.
Beyond Decentralized Finance
I think the same DApp lego block principles skilfully used in DeFi to make financial services more efficient can be applied more broadly. To illustrate this point, let's look at decentralized social networks.
Decentralized Social Networks
Farcaster is a decentralized social network. It’s an open protocol built on Ethereum that can support many clients, just like email.
Users can move their social identity between applications, and developers have the freedom to build applications with new features on the network. It currently has a mobile client that looks like this:
The Farcaster client is an Ethereum wallet intended to be used for transactions recording actions on the social network’s protocol. It connects to your existing Metamask or Coinbase Wallet on sign-up to verify you control those wallets and the things they contain, such as NFTs. A more detailed description of how it works can be found in its developer docs here.
One of the cool things about Farcasters is because its data is on-chain, anyone who can build a web application can build on top of its data without asking for permission; you can see a directory of these apps here. One particularly cool example of this can be seen in the following network activity dashboard:
Let’s take a moment to consider the implications of something like this for a company or government organization by contrasting it with SaaS products like Amplitude or Datadog.
If you worked at one of these organizations and you wanted to make something like this using SaaS, you would need to:
- Ask for permission to get access to the SaaS product, like Amplitude, likely requiring an API key which might cost money. This takes time and adds a lot of friction to the process.
- Learn how to use SDKs and APIs to integrate this data for each SaaS product you touch. This also takes time.
- Get access to the source code to instrument the events you want to visualize. This would be a lot of work and require getting permission from other stakeholders.
In contrast, if done right, you get all of this for free in a blockchain-based system like Ethereum, where data is publicly available, and DApps are permissionless and composable. Anyone at the company can make this dashboard. The only barrier is a skill.
Companies and organizations can easily become black boxes. it’s hard to know who’s doing what and how much money is being spent at any given time.
In the early 2000s, writing web applications was labor and capital-intensive. Cloud computing reduced the number of people required to build a scalable web application from six people to one.
However, an organization is usually not just a web application; behind the scenes, there is a whole series of business-related operations requiring the coordination of many disparate data sources and people. In the past twenty years, much, if not all, of this data has transitioned to being digital.
As an organization grows, so does the complexity of managing, integrating, and operating these data-rich systems. At tech companies, this gets distilled down to a set of dashboards. The secret to one person managing a billion-dollar company for many industries is scaling this process, so you don’t need to hire people.
Creating these dashboards takes a lot of people and hence time and money. Not doing this, especially when you run a large or complex organization is even more expensive in terms of lost operational efficiency.
I think this is one of many redundant software, data and process cost centers of organizations as they scale. This is just one example of how things can be made more efficient in a world governed by decentralized applications.
Parting Thoughts
Lest I be accused of painting an overly rosy picture of the state of Ethereum today, let me say that there are massive scalability, privacy, security, and regulatory hurdles to overcome before the above vision can be realized. The story I am telling is one of what the world might be in five to ten years time, when this technology matures.
As I mentioned in my last article, this is what I have spent the last four years of my life working on at Coinbase. My dream is to build software that enables anyone to be able to start and scale a billion-dollar company from anywhere globally.
Money is a very crude form of social capital. Much of the conversation around cryptocurrency frames it in terms of speculative financial assets whose value will be crushed as we enter into a high-interest-rate environment.
I think its nonfinancial uses as a technology that delivers productivity gains by driving, trust, accountability, and getting rid of redundant work are often overlooked.
If you are interested in reading more of my thoughts on what needs to be built for this to happen, please subscribe or follow me on Twitter or Farcaster.