I wrote this piece in Jan 2021, shared it with a few friends but didn’t get around to posting it publicly. I wanted to share it more broadly, and I’ve added a few updated notes.
After spending more focused time exploring web3, it's clear that we are still very much in the early days. The web3 space simultaneously feels futuristic and clunky all at once, which I think is an inherent characteristic of any sufficiently novel technology.
It feels futuristic and surprising, in so far as I couldn't have envisioned the emergence of a permission-less world-computer and database, that has ownership, financial and organizational primitives built in. It feels clunky, in that actually using services and building in the space still feels haphazard, and rough around the edges.
It's easy to get disillusioned by the gap between the the promise and hype of what might be, and the reality of what's there today. But, the glimmers of possibility are really exciting. Web3 provides a new material to imagine both: 1) the types of software that gets built, and 2) how the software gets built, in terms of the collectives and funding that enable it.
I liked Albert Wenger's post recalling Clayton Christensen's idea about "Disruptive Innovation", and how it’s a useful lens to keep in mind when considering new technology shifts like web3:
In the article he writes:
Today, however, I want to attempt to provide a cogent explanation for why bothering about web3 makes sense. This requires telling a bit of a story and also understanding the nature of disruptive innovation. The late Clayton Christensen characterized this type of innovation as being worse at everything except for one dimension, but where that dimension really winds up mattering a lot (and then over time everything else gets better also as the innovation is widely adopted).
A blockchain is a worse database. It is slower, requires way more storage and compute, doesn’t have customer support, etc. And yet it has one dimension along which it is radically different. No single entity or small group of entities controls it – something people try to convey, albeit poorly, by saying it is “decentralized.”
The emphasis is mine, because I want to focus on the idea that we start with one substantial unique advantage, in the case of web3 it’s decentralization, and over time everything else gets better such that we have a series of "flippenings".
I think it is very much the case that in the original web of the early 1990s, people would have had a hard time believing statements like:
In this post, I want to talk about some of the surprising web3 flippenings that might be ahead, and look back to the 90s as a reminder of how these types of surprising shifts can happen.
Let’s think about what some web3 flippenings might be, and what they would mean in practice. You can think of these as “What If” conjectures. Which of the following statements do you think are likely for web3?
Building on web3 still feels clunky, and compute/storage can feel expensive to interact with, but there will be a flippening in the web3 dev experience where:
"No single entity or small group of entities controls it – something people try to convey, albeit poorly, by saying it is “decentralized.”
I'd suggest that web3 software is for the most part, already more tamper & censorship resistant than most web2 software.
Jesse Walden & the team over at Variant believe that web3 will enable an “Ownership” economy and you can read about it in-depth here.
Tokens can unlock the vision of more meritocratic distribution of ownership and align incentives toward building networks that grow bigger, faster. We call this the ownership economy — products and services that are built, operated, and owned by their users — and it is unfolding even faster than we initially imagined when we started Variant.
Is this already happening? What is the actual distribution of ownership in web3 vs web2 services, how is this likely to look over time?
My friend Blake had a helpful comment here around asking what does ownership mean in this context? There are a few ways we might think of ownership:
Related to all of the above, I think there are many questions that come up about what is being exchanged when you use a web3 service. For example, in web2 many services are “free” to use - e.g. Google, Facebook, but in exchange they’re allowed to show you ads and use your data to personalize the targeting.
What will users exchange for using services in web3? What services will be subsidized in various ways because they enable other services or activities that can capture value further up the stack - e.g. Google gives away Chrome for free because it helps drive more search traffic and web usage generally. Are these types of questions and framings even out-dated in the new web3 world?
Services like Sia, Filecoin, Arweave and others will over time be more cost effective for storage than. I haven't run the numbers yet, but it already looks like Sia's pricing / TB may be cheaper than AWS S3 Glacier.
Networks like Akash (https://akash.network/) which allow running distributed containerized compute workloads will have cheaper compute than AWS.
If distributed infrastructure out competes centralized infrastructure on price, and reliability, it’s likely that more and more services will prefer to use that type of infrastructure. Alternatively, cheap distributed compute and storage will allow for smaller players to compete with larger companies in services that were historically prohibitively costly to offer to users. It’s interesting to consider where massive price reduction and parallelization can unlock spaces for new entrants into markets: for example, web scale search seems like a good category where it would have been hard to fund a new entrant in the past.
Around this question of the cost of operating a software service, there’s the related question of who covers the cost of running the service and storing data. Web3 offers interesting new possibilities on this front. For example, Mirror.xyz publishes posts to Arweave, and right now they cover the cost for people publishing their platform, the end-user does not see the associated Arweave cost. What will be the relationship between “owning” your data, and paying for covering the costs to write and store that data on chain?
I believe a correlated aspect to the decreasing cost of “running” software, is that software will be cheaper to build. It will be faster to assemble software because there are more reusable components, and public data goods available to build on.
One of the aspects of web3 that gets me and other developers excited, is this idea that you can write a few lines of code, deploy it to the global computer (e.g. Ethereum), and then, as long as the code is correct, it will continue to run without requiring further maintenance from the developer. Think about Uniswap V1 as one example of the magic of this. If you read Hayden’s story of founding Uniswap it’s pretty magical that someone who didn’t know how to code was able to write a concise smart contract that became a multi-billion dollar protocol. The code just continues to run. I don’t know that something like this would have been possible in web2 - in part because building a scalable service in web2 also requires expertise in running infrastructure.
This deploy once, run and scale forever, is exciting - though of course comes with all the questions around the challenges of immutable, and unversionable software. The web3 challenge though is less “running” the software, and more making sure that you write secure smart contracts from the get go - which for any sophisticated use case is currently a pretty high bar to entry.
But once you do deploy something sound, there will be less down-time on web3 software over time. Web3 pager duty will be less of a thing, because there will be more reliability and redundancy built into the network than a central provider can maintain. The counter point here is that incentives can potentially get out of whack in unexpected ways leading to all sorts of strange spirals and protocol outcomes.
I'd argue that in some ways, building on the web has better Dev UX right now than building a desktop app. This is primarily because of the abundance of documentation, community discussion, libraries and tooling support. When will the same thing happen for web3 vs web2?
Right now, using wallets as Chrome Extensions, across a variety of “networks” (especially as the L2s go live) is still one of the clunky aspects of web3. I often feel on edge whenever I’m approving any bigger interaction on web3, wondering - am I doing this right? People are getting hacked often, and it’s easy to make a silly mistake and irrevocably lose your wallets. Fred Wilson had a great post about how fixing the clunkiness of wallets, and hiding web3’s plumbing from the user experience is one of the big opportunities.
Despite the current clunkiness, wallets are part of an incredibly alluring set of features: The ability to have identity, payments & ownership built into every product, in a seamless, unified UX could eventually allow for smoother experiences than any web2 product. As wallet UX improves, with features like social recovery, the experience for mainstream users will feel less like flying by the seat of your pants.
The ability to interact with every application, from any application, is also really interesting, and provides the opportunity for novel software experiences.
Beyond being tamper and censorship resistant, we can ask if software is bug free and runs as intended. Due to the open, immutable nature of on-chain software, you can’t really patch bugs, and they’re there for everyone to discover and exploit. If you want a running list of all the hacks and social nonsense happening on this front you can check out :
Smart-contracts require additional scrutiny because it’s harder to switch out the code after deploying. Proxy contracts provide some solutions to more malleable, updatable software, where you have contracts that point to other contracts for their functionality, allowing more mutable code with this router based approach.
The need to ensure “correctness” of the software, and the aspect of these smart contracts being publicly visible, might likely result in more testing of software, and developers investing in a new generation of tools for up-front code audits and static analysis. There will likely be a fair bit of innovation in proving that software works the way it’s intended to.
Will distributed clouds, and databases over time, due to being able to have a large number of nodes join in a permisionless way, actually end up out-performing centralized solutions? While a lot of on-chain solutions require replication of data and compute for security, will the sheer number of nodes, and their geographic distribution lead to performance advantages? For example, will it be hard for a centrally run CDN to compete with a distributed CDN solution?
We can talk about performance of various parts of the stack. For example on the backend, will a distributed video-transcoding protocol like LivePeer be able to transcode videos not only more cheaply, but also faster, than centralized transcoding solutions? Will large-scale processing and compute jobs that require moving data run faster on decentralized networks due to the possibility of parallelization. Will a larger network of machines running a distributed protocol outperform centralized providers like AWS.
This one is more a comment on the types of organizations that produce software, and how that might become the default over time. Open-source software is a good example of a surprising effect, where distributed individuals collaborating without explicit financial incentives often produce better software than centrally organized institutions can. There’s probably some class of software where open-source has done better, and my guess is the same will apply for decentralized organizations vs centralized organizations: there will be many instances where decentralized, on-chain organizations outperform less open, off-chain organizations. These types of organizations will also find “web3 native use cases” that were not possible via web2 organizations.
A large part of what’s happening right now with these decentralized organizations feels like experimentation in incentive design and approaches to large scale collaboration.
The above is one set of “What If” style statements we can make about web3, but I think there’s lots of other future “What If” conjectures that are interesting to consider. If these flippenings are likely to happen over time, then a much larger class of applications and services will be “default web3” than may initially be obvious. Building on web3 will be the default choice: faster, more enjoyable to build on in terms of dev UX, more enjoyable for-end users to use, and more-likely to succeed due to the types of competitive advantages listed above.
Let’s look back at the 90s, and the world-wide web, as an informative historical illustration of how people mis-judged how prevalent the web would be. In the mid-90s, for most people it would have been hard to imagine that the majority of desktop applications would one day be delivered over the web as cloud applications - even heavy-duty computing applications like photo editing.
As Albert points out in his post, the arrival of the web offered one hugely important benefit: permissionless publishing. It was really easy to put up a web page and you didn’t need to ask for anyone’s approval. Over time, these benefits really added up, and more and more benefits of the web became obvious, including:
Just the way the web touched most things, I think web3 will surprisingly do the same - even in places we might not immediately expect it to. As Albert wrote in his post:
As a first approximation all the big powerful internet companies are really database providers. Facebook is a database of people’s profiles, their friend graphs and their status updates. Paypal is a database of people’s account balances. Amazon is a database of SKUs, payment credentials and purchase histories. Google is a database of web pages and query histories. Of course all of these companies have built a great deal more over time, but operating a database has stayed at the core of why they are powerful. Only they get to decide who has permission to read and write to this database and which parts of it they get access to.
Along these lines, I believe that most web2 incumbents will have a very hard time shifting to web3 modes of operating. Their modus operandi is different. It’s likely that within 5-15 years, the large tech companies like Google, Amazon, and Facebook that are all based in part on centrally owned databases, will be less relevant than they are today.
At the very least, I’m excited to be part of the adventure of trying to reimagine how software gets built, owned and used in this new paradigm. It’ll be fun to write a follow-up post in a decade and see how all these “what ifs” played out.
Suggested Additional Content - Added Jun 2022:
I’d recommend this interview from the Bankless podcast with Marc Andreesen & Chris Dixon. As one of the early pioneers of web1, having worked on Netscape, Marc’s able to share insights from how surprising things looked to people in the 90s. One of my favorite parts is that people pushed back on allowing cryptography on the web, because they thought people wouldn’t be doing things like entering their credit cards on the web, and that transmitting encrypted information had mainly malicious use cases.