Michael Gingras

Interested in lots of things, but mainly -- crypto, browsertech, and interfaces.

Crypto as a New Software Paradigm

January 20, 2024 crypto web

The most compelling aspect of crypto (in my opinion) is the way it changes software development. By offering open data and composable rails, crypto creates an ecosystem for software development that maximizes interoperability. When software is built this way, it creates an ecosystem that empowers developers and gives users control over the experiences they want to have. The nouns ecosystem and Farcaster are two great examples. In the Nouns community, we have seen a proliferation of software created to supplement the original nouns. Individual developers noticed problems in the nouns community that they wanted solved, and rather than requiring the nouns team to offer up APIs into the original nouns product, developers in the community were able to create new software products that augmented nouns without ever having to ask for permission. Additionally, these new pieces of software were compatible by default without requiring nouns to officially approve an integration. In this example, crypto offered the rails to create nouns as a foundation for many more software products to be built on top of. Since crypto is all about open standards, open data, and permissionlessness, nouns has seen a proliferation of software that is serving the needs of the community, built by the community. Farcaster is another great example. The original protocol is authored by the core team, but Farcaster has seen numerous apps, UI clients, and even businesses (boutycaster) created on top of its open protocol. Since the data and protocol are open and permissionless, anyone with enough motivation can create a product that is compatible with Farcaster and is able to serve the entire community.

In a sense, crypto is the most empowering tool for end user programming. End user programming refers to the class of tools and activities that enable regular users of a product (rather than just the core developers) to shape software programs in ways that best suit their needs. Since crypto is built on open standards and open data by default, anyone with enough programming background can build the software they want or need without requiring permission from the original authors. This is increasingly important in the wake of abuses of power such as Twitter and Reddit both gating access to their API and making it prohibitively expensive to create tools on top of their platforms. This is bad for the entire community, since it limits what type of software and experiences get built. Additionally, developers are not as motivated to build on top of non-crypto platforms if they know the owners of the platform can kick them off at any moment. Platforms built on crypto rails like Farcaster give developers the piece of mind that they can build entire businesses on top of the shared protocol without ever worrying that they will be kicked off. This helps create network effects as friendly developer environments attract developers, who create a wider array of use cases and experiences, which attract more and more users, which attract more developers wanting to build new experiences for these increasingly large audiences, and so on.

These benefits can be best defined as the benefits of standards. In a sense, writing a protocol like Nouns or Farcaster is defining a set of standards for how some product works. Even more abstract are standards like token standards (ERC20, ERC721 etc). Standards make software efficient; rather than having to support a wide range of integrations for the same flavor of use case, tools only need to follow the standard and will be interoperable with any token that decides to conform to that standard. Some software products could exist outside of crypto and might even be more efficient on web2 rails, but they miss out on the interoperability and standardization of crypto rails. One might chose to use a token to represent some package of data because they want to ensure that data is compatible with the wide array of experiences built that are compatible with existing token standards. As more and more experiences are authored, the benefit of packaging data as a token compounds. In a sense, this is similar to open source — a useful piece of code is authored once, and many people are able to take advantage of it with little effort.

I could go on, but to summarize, what makes me excited about crypto is not it’s ability to be a “global consensus machine” or “arbitrator of objective truth” or whatever other abstract definitions some have for the technology. What excites me is that crypto offers us a way to expand what is possible to create with software. Since data and protocol rules are currently siloed on web2 rails, it is not possible for developers to build on top of these data + protocols to build net new platforms and products. If this data were open like they are on web3 rails, we could see an explosion of innovation in software that is also able to be fairly monetized by those who are contributing work and resources.

Vitalik writes in My Techno Optimism, “Even if the underlying code of an application is open and free, your data gets routed through a centralized server run by a corporation that could arbitrarily read your data, change the rules on you or de-platform you at any time.” Crypto is often praised for these defensive benefits. Crypto protects your from bad actors reading your data, or bad actors de-platforming you. I’m arguing that this defensive framing is actually not the most interesting framing. The best way to view crypto is to view it through a generative lens — crypto enables a proliferation or new software, collaboration, innovation. The defensive view can sometimes feel abstract — why should I care about being de-platformed? It’s unlikely this would happen to me. But everyone can get excited about more innovation or proliferation or experimentation. The generative side of crypto is the side I care about most.

It is crucial to differentiate this concept from what it is not. It is not the same as the long time promise of creating interoperable crypto games. This sort of concept promises that by building games and assets on top of web3 rails, players will be able to bring assets from game A into game B and vice versa. This concept promises a world in which all games essentially converge into one, where assets and logic are shared and infinitely compatible. Polynya does a great job explaining why this is not feasible but I will attempt to explain why this idea is not just unfeasible but also misguided. Instead of striving for an infinitely compatible game world, crypto can provide the means for infinitely moddable local game worlds with infinite. The power of composability brought by crypto and applied to game worlds is not enabling game to game mashups. Instead, it’s enabling a motivated community to continue to innovate within the game world and create mods or new types of lore. For example, I love the game Clash Royale. I’ve put days of time into this mobile game over 6 years, and after playing for so long I have plenty of ideas for what might make for interesting twists on the game’s mechanics. However, the game and everything about it (assets, IP) are closed source. Imagine if instead Clash Royale were built on crypto rails. Imagine I have an idea for a new twist on a mechanic. I could fork the game, try out the new mechanic, and launch it to the community who could play it and provide feedback. Maybe the idea is so well loved that the core team introduces this new mechanic into the game as an official mechanic and rewards me for the work. Even if this never happens, the community might create new lore with the characters and take the creative commons licenses to produce movies or action figures or whatever else of popular characters. SUP is focused on this approach. The difference is between promising that crypto will enable every game to be interoperable with the next, and providing the means for a community to truly grow the lore and world behind a game or piece of media. Crypto enables a community to innovate within a local game world by offering permissionlessness and data/protocol availability.