Blockchain is no doubt an important piece of the puzzle. But exactly which piece, and the overall shape of the puzzle, is just starting to become clear. Photo by Ryoji Iwata on Unsplash
In the beginning, Bitcoin was touted as a better kind of money: peer to peer electronic cash. Today, the narrative has narrowed to digital gold, i.e., only a store of value. Ethereum, in the beginning, had an even more ambitious vision: a decentralized world computer. Today Ethereum has one main use case: decentralized finance, better known as “DeFi.”
There are two ways to look at this narrowing. On the one hand, it’s disappointing that blockchain has failed to live up to its hype and early promise. A relatively small number of people have used Bitcoin, or are likely to use it in its current form, and it appears to have appeal only in a very narrow set of circumstances: if you happen to live in Venezuela, you probably care more about protecting your wealth from hyperinflation than you do about usability or transaction fees. And, as interesting and exciting as Ethereum’s DeFi ecosystem is, it is not exactly on the verge of transforming lives or banking the unbanked. Despite its better programmability and more active developer ecosystem, even fewer people have used applications built on Ethereum than have used Bitcoin.1
On the other hand, both platforms appear to have found a form of product market fit, albeit a fit that’s more narrow than originally hoped. Most platforms and products tend to narrow in scope over time as they find product market fit, so this may only be a sign of maturity. As long as some people somewhere see value in each platform, they will each continue to thrive. Who cares if Bitcoin has, say, a few million active users rather than a billion?
Like most technologies, blockchain is very good at a narrow set of applications and pretty bad at just about everything else. When you get past the hype, it’s really just a slow, expensive, distributed, permissionless, append-only ledger, nothing more and nothing less.
In spite of being slow and expensive, this idea is in fact quite profound. Bitcoin may be “just” digital gold, but it’s the first trustless, decentralized, self-sovereign currency the world has ever known, and that’s a powerful idea for political and social, as well as economic, reasons. Ethereum adds a more expressive scripting language and VM, which enables smart contracts containing more complex logic. This makes it much easier to build applications on Ethereum such as tokens, property registries, and arcane financial primitives, an incremental but important innovation on top of Bitcoin.
I don’t want to sell blockchain short. Lots of exciting things have been built, and will continue to be built, on these platforms. There is, without a doubt, value in decentralized money, tokens, and digital property. What I do want to question is the idea that blockchain can or should deliver more than this.
Let’s start with what blockchain is good for: distributed consensus over a single, global ledger, with permissionless, ordered transactions that update that ledger. A ledger is basically a map of who owns what. Money is the most obvious application: for a global currency like bitcoin, consensus must be global in order to prevent double spending. The same idea works for property more generally, including non-digital, non-fungible property: the ledger could contain a land registry or ownership of assets such as shares or bonds. Like money, in order for these assets to have value, the ledger needs universal consensus.
An interesting, related application is identity. It’s not as immediately obvious why identity should have value the way money does. However, every human system and institution depends on identity and reputation. We don’t move through society represented by opaque, throwaway, pseudonymous identities: we use our unique names, faces, and biometric data. While identity arguably doesn’t have to be global the way money does, in global networks, it helps that there aren’t two users with the same username or email address.2 Like other assets, your identity should be durable: it should not decay or go away over time, even if you don’t login for a while. It should be secure: no one should be able to steal your identity or impersonate you. And it should be scarce in order to prevent spam and promote responsible use and investment.3 It turns out that blockchain is pretty good at allocating and keeping track of scarce, unique, secure, durable digital identity—and, indeed, this was one of its first non-monetary use cases.
However, I’d argue that productive use cases of blockchain stop here. I have yet to see a use case outside of money, digital assets, or identity that really belongs on blockchain.
In 2017, there was an explosion of projects offering blockchain-based applications. And they were about a lot more than money. From sharing economy, to social media and communication tools, to supply chain, to healthcare, to environmental protection, to dentistry, they spanned a huge variety of industries and use cases. Blockchain is not well-suited to the vast majority of these applications, and it’s therefore no surprise that most of these projects overpromised and underdelivered.
There are a few other areas worth highlighting because they have shown a bit more promise than most. One is governance, but it’s unclear to me why applications like DAOs need slow, expensive, universal consensus rather than, say, consensus just among a group of collaborators. In practice, users don’t want to spend three dollars in gas fees each time they vote on which pizza toppings to order before a meeting, and each time they disburse funds to pay for it. There’s also the fact that moving governance onto the blockchain invariably results in plutocracy.
A second is streaming music, and media more generally, with micropayments for consumption. But blockchain is not well-suited to storing or moving large amounts of data, nor is it good at processing micropayments, given low throughput and high fees. A third is gaming, and nonfungible digital assets more generally. As I wrote in The Cult of Ownership, existing blockchain-based gaming platforms have prioritized acquisition and trading of digital assets at the expense of experience. Blockchain is not well-suited to gaming, either, and it remains to be seen whether gamers care enough about ownership over digital game assets for blockchain-based games to break into the mainstream market.
The most interesting failed blockchain use case is Web3. While Web3 does not have a single, accepted definition, the general idea is that, rather than being just about money and assets, blockchain should allow us to build full-stack applications that promote things like privacy and self-sovereignty over identity and data. If Web2 was about making the static web interactive, Web3 is about re-decentralizing the web out of the hands of the tech giants and getting back to the original vision of an open web: open source, open data, open standards.
While Web3 was part of the original Ethereum vision, and more recently has been touted by platforms from Dfinity to Polkadot to NEAR protocol, it turns out that blockchain is not particularly well-suited to this application, either. For one thing, as a database, blockchain is simply too slow and expensive to store anything but the smallest, most essential pieces of data. This works well for ownership of digital assets, but it does not work well for the much larger amount of data behind most of the applications we use on a day to day basis. There’s zero chance that you’re going to store your email, text messages, calendar, or cat photos on a blockchain. As a result, Web3 dapps tend to store these data either in centralized backends, which defeats the purpose of using blockchain in the first place, or else in IPFS, which is decentralized but slow and difficult to use.
In addition to being bad at storing things, blockchain is also not especially good at P2P communication. Modern blockchain networks pass data around via something called a gossip protocol, which means that every message is sent to every node in the network indiscriminately. The protocol is well-suited to blockchain since all of the data in the network, such as blocks and transactions, is global and all nodes need to agree on them. Gossip ensures that these data traverse the entire network as quickly as possible.
While gossip works pretty well for adding blocks to a chain, it’s a terrible protocol for most other applications. Imagine if the Internet worked this way: if every time someone streamed a film on Netflix, the packets were sent indiscriminately to every other computer on the network. Gossip is inefficient, since each message has to traverse the entire network, rather than being routed point-to-point between two nodes. If a node is offline, there’s no way to contact it, and no way to queue up messages for it. Some attempts have been made to retrofit a more general messaging protocol on top of a blockchain like Ethereum, but in five years of development none have found production use cases.4
Of the three essential primitives required to build applications—compute, storage, and messaging—blockchain is really only designed for compute, and then only slow, expensive compute. In short, blockchain is not very good for building, hosting, or operating the sort of robust, user-friendly applications that we’re used to. It’s no wonder adoption of blockchain applications has been slow. The small number of users who have a strong need for self-sovereign money will put up with the onboarding hassles, expense, and slowness of blockchains. Everyone else will probably stick to Web2 applications for the foreseeable future, or at least until Web3 applications become as usable as Web2 applications.
For these reasons, blockchain by itself is only capable of fixing a small slice of the things that are wrong with software today. It allows us to take ownership over our data, but gives us a subpar database for managing those data. It gives us self-sovereign identity and money, but identity based on cryptographic keys is hard for most users to manage and money isn’t really one of the main things that’s wrong with software today. It’s censorship resistant, but in practice can only be used for storing and transmitting tiny packets of data such as coin transactions or for checkpointing data that are stored elsewhere.
None of this is meant to downplay the importance or the value of blockchain. It’s a fundamentally new, important technology that will enable classes of applications that were previously unimaginable. But blockchain is not an application stack in and of itself. It’s a primitive, one piece of a larger puzzle, and we’re just beginning to understand what that entire puzzle looks like and which parts are still missing.
Recently I’ve found it educational to zoom out a bit from blockchain, from ideas such as smart contracts and consensus, and to instead focus on adjacent platforms and technologies that use similar enabling technologies, such as cryptography and P2P networks, but fill in other pieces of the Web3 puzzle. Some of my favorite examples include Mastodon, a federated social network; Holochain, a “framework for building fully distributed, peer-to-peer applications”; Scuttlebutt, a P2P gossip protocol (sort of like blockchain without consensus); Blockstack, which solves identity and storage in novel ways and anchors its security in Bitcoin; Beaker Browser, a peer to peer web browser, and the underlying Hypercore protocol; Radicle, a decentralized GitHub replacement; and Urbit, which has reimagined and reinvented not only the application stack but in fact the entire compute and networking stack as well. There’s much to say and to discuss about the similarities and differences among each of these projects and communities, and about the ways in which each is complementary to one another and to blockchain, but I’ll leave that as the subject for a future article.
Blockchain has an important role to play in the future of applications, computing, and society more generally, but it’s not appropriate for many or even most applications. It’s time we stop pretending that blockchain can solve every problem, or that it has a role to play in every application. Instead, we should be honest about its strengths and limitations, and we should zoom out and see the bigger picture. We should view blockchain as one primitive among many that will be required to reinvent software, the web, and applications more generally. We should learn from applications like Urbit ID and Radicle Registry that use blockchain in precisely the way it’s designed to be used, but keep most things off-chain.
We should be asking questions such as, Where does blockchain fit in to the long arc of computing and applications? What novel applications does it enable, what other technologies will be required to develop these applications, and how should blockchain integrate with these applications? Which pieces of this puzzle are still missing, and how do we collaborate as a community and as a society to develop, build, and promote them?
Blockchain communities have tended to be laser-focused on shipping blockchain code in a vacuum, which is understandable given how novel the technology is and where it is in its lifecycle. As blockchain matures, however, increased collaboration becomes possible. I believe we’re at this moment today: we’ve proven that blockchain works, that it has value, and what it’s capable of, and now it’s time to put the technology into its proper context. The only hope we have of achieving these ambitious goals, and of bringing about a fairer, more decentralized, more resilient, more human Internet and software stack is by joining forces with other values-aligned projects and communities. I haven’t seen enough of this sort of collaboration in the blockchain space to date, and it’s past time that we make it a priority.
Given the pseudonymous, distributed nature of blockchain, reliable figures are hard to come by, but as of publication the best estimates are that around 25 million people use, or have used, Bitcoin, while the figure for Ethereum seems to be on the order of 1 million. (Sources: How Many People Use Bitcoin in 2020?, Dapp.com 2019 Annual Dapp Market Report) ↩
In fact, for most of human history, identity was quite a local phenomenon, which worked well. There was no reason for identity to be global until the advent of nation states, passports, and international travel. This article discusses some of the challenges associated with purely local identity. ↩