Software scarcity

Software is is not a scarce resource. It costs nothing to copy. It is an anti-rivalrous good.

Cryptocurrency is a market, markets are for allocating scarce resources, software is not scarce, therefore cryptocurrency serves no purpose.

Perhaps! Nevertheless, the universe is non-teliological. Evolved systems don’t need to serve any purpose. They just propagate. A virus, a tree, you, and me. Maybe cryptocurrency is like that? But there’s something else…

There are natural scarcities in software.

Names are scarce

Names are crucial in software. Think domain names, usernames, package names. Ideally we want names to be secure, decentralized, and human-meaningful.

  • Secure. The name reliably points to what it is supposed to, and not to an imposter.

  • Decentralized. there is no central authority in the naming system that can fail, or be corrupted.

  • Human-meaningful. The name makes sense and is memorable. gordonbrander.com, or @gordonbrander, for example.

But a name cannot be all three at once. Secure, decentralized, meaningful, you have to pick two. This is Zooko’s Triangle.

Meaningful names are scarce, and non-fungible. I want the username @gordon. All the other Gordons want that username, and perhaps a few spammers, too. Someone has to mediate this conflict, but in a decentralized system there is no “someone” in charge. There is no central source of truth to appeal to. Faced with this dilemma, most systems choose one of two tradeoffs:

  • Secure-Decentralized. Decentralized, but the names are meaningless strings of numbers and letters. Examples: Bitcoin addresses, IPFS hash-based addresses, Urbit IDs, encryption keys, phone numbers.

  • Secure-Meaningful. Nice names, but centralized. Examples: DNS (Domain Name System), NPM registry, Twitter user names.

Is there a third way?

Trust is scarce

Trust and reputation are crucial in human systems. Reputation, developed through mutual rating, makes it plausible to host a stranger via AirBnB. The chains of reputation embodied in an SSL certificate make e-commerce and other sensitive transactions possible.

Trust is also entangled with status. The difference between a Hermes handbag and a knockoff is wrapped up in the reputation of the brand. The entire luxury goods sector is balanced on reputation.

One way to see trust is as the result of a repeated game, where participants remember the past behavior of other players. This requires a durable symbol around which reputation can accrue, so trust is closely related to names. Like names, trust is non-fungible. Like names, trust is often solved through centralization.

Attention is scarce

What information consumes is rather obvious: it consumes the attention of its recipients. Hence a wealth of information creates a poverty of attention, and a need to allocate that attention efficiently among the overabundance of information sources that might consume it.
Herbert A Simon, quoted by Hal Varian in “The Information Economy

Desktop apps compete for attention during work and school. Facebook and Twitter compete for attention while you’re waiting in line. Podcasts compete for attention while you’re walking and driving. Netflix competes with sleep.

You know, think about it, when you watch a show from Netflix and you get addicted to it, you stay up late at night. You really — we’re competing with sleep, on the margin. And so, it’s a very large pool of time.
Reed Hastings, CEO Netflix

There are only so many hours in a day. This is one reason for the emergence of advertising on the web. When information is abundant, there will be a market for attention.

Labor is scarce

Software costs nothing to copy, but someone still has to create it. The costs of development may approach zero as copies approach infinity, but there is still a very-non-zero amount of time and capital needed for activation energy.

More importantly, there are ongoing costs in the form of maintenance and support. Users need help. Environments change. Dependencies break.

The joke is that open source software is free-as-in-puppy. These very real costs are why. See Nadia Eghbal’s Working in Public for a deeper exploration of how these costs influence open source development.

Hardware has costs

Software has to run on something. Moore’s Law has made hardware abundant and affordable, and while it’s a useful fiction to treat hardware as essentially free, it still has real costs.

  • Devices are scarce. Apple has made a good business out of welding anti-rivalrous software to naturally-scarce devices.

  • Chips are scarce. The 2021 chip shortage makes it plain. Hardware costs add up to trillions of dollars in aggregate, with serious geopolitical stakes.

  • Storage is scarce. It costs something to host bits on a server. Even personal laptops and phones have fixed, finite storage. Often this storage is exceeded, and you must offload something to the cloud, or perhaps forgo installing an app.

The network has costs

Cyberspace. A consensual hallucination experienced daily by billions of legitimate operators.
William Gibson, 1984, “Neuromancer”

The internet is a consensual hallucination that runs through physical cables and on servers, consuming electricity. All of this costs something in real terms. Like all infrastructure, the capital costs to deploy infrastructure tend to dwarf the costs of keeping it running, but the cost to keep the lights on is not zero. It is reflected through bandwidth, storage, and server costs.

Cryptocurrency is for software scarcity

Software has scarcities. When a distributed software system centralizes, it is typically around these scarcities. Consider how the web centralized around…

  • Networks: major geographic networking hubs like Houston.

  • Hardware: server farms, like AWS, with returns to scale.

  • Naming: DNS, usernames.

  • Trust: payments, SSL, moderation, reputation, identity services like Facebook Connect or Apple ID.

  • Attention: ad-driven search and social media.

Centralization offers a way to deal with scarcity in software. An authority accrues power or is granted power within a system, and uses this position to allocate resources. This approach has limits to scale. It can embody some complexity, but not much. It can deal with exception cases, and for the same reason, can fail by way of corruption, or abuse-of-power. Regardless, for a long time, centralization was the only available way to deal with scarcity in software.

Now, there is a second way to deal with scarcity in software: markets. Markets can be seen as an allocation mechanism that routes scarce supply to demand. This “function” is teleonomic. A market is an evolved system, not fully under our control, and capable of generating a wide range of emergent behaviors, good and bad. Yet markets do a remarkable amount of computation that is difficult to accomplish by other mechanisms. Markets embody a staggering amount of complexity.

In places where decentralization is desirable, the tradeoffs may be worth it. Perhaps software-programmable smart contracts may even allow us to garden markets toward fairer outcomes? It is unclear, but the intersection of software and markets seems important.

I suspect the most durable use-cases for blockchains will correspond with true areas of natural scarcity in software. Perhaps, if a cryptocurrency found a way to embody the real costs of one of these scarcities, it would have durable long-term value, since these areas of scarcity have real value.