"Socialist" versus "agorist" decentralized protocols
Two very different sorts of decentralized protocols
Recently, something that has been bothering me is a distinction that seems to exist between two kinds of protocols in the wider crypto/web3/decentralized web/post-web world.
One sort might be called socialist protocols. In these protocols, the primary interaction presented is between the user and the protocol as a whole. The protocol runs on many individuals, but to a user, protocol incentives subsume these different individuals into a coordinated whole that presents itself merely as The Protocol.
The prototypical example of a socialist protocol is a cryptocurrency blockchain. When Alice uses Bitcoin, she does not need to understand exactly which miner produced the block that included her transaction, and which full nodes replicated that block around the world. She simply placed the transaction on the Bitcoin blockchain, and that's all that anyone really cares about. Alice did pay a transaction fee, but she does not really care or even know exactly whose labor she hired. "Crypto magic" takes care of the rest.
The other sort are agorist protocols. Here, the protocol facilitates users to directly interact with other users to achieve their goals. Instead of presenting a unified interface, different users of the protocol still retain their individuality, and each user is responsible for choosing other users to associate with. Where the "crypto" comes in is not to magically incentivize a uniform experience, but to ensure that the users can find each other and interact securely without interference by attackers.
The Tor-based "dark web", consisting of anonymous onion services hosted by Tor users, is a classic example of an agorist protocol. Alice does not go to "Tor" to visit her favorite marketplace; she visits a website hosted by a particular person at a particular .onion URL. Tor's anonymity gives to her the freedom to choose which websites to visit, and the website owners what content to host, enabling more mutually beneficial interactions that wouldn't exist without its protection. But there's no magic cryptoeconomic system that guarantees that Tor onion services as a whole present any sort of uniform user experience.
For many problems, whether to use a socialist or agorist protocol is uninterestingly obvious. Broadcast protocols like blockchains are inherently "socialist"; the entire purpose of a protocol like Bitcoin is to get every node to agree on the same state, so any differences in node selection is not supposed to matter. User-to-user comms are inherently "agorist"; Alice wants to chat with Bob, not some universal Form of Bobness that some incentive system bribes arbitrary non-Bob's to participate in.
But there's also some sorts of of problems where both agorist and socialist protocols are valid solutions. Let's look at three problems in particular, all of which are fundamental to the overall "crypto" stack: anonymous communication, DeFi, and file hosting:
Anonymous communication
There's a family of protocols for routing arbitrary traffic over the Internet in a way that obscures its origin and destination, even to the infrastructure helping the routing along. This includes traditional centralized proxies and VPNs (like Geph or Mullvad), onion routers (Tor, I2P) which add multiple hops and nested encryption, as well as mix networks (Nym, Earendil) which defend against global eavesdroppers by disrupting timing metadata.
These systems are highly diverse as to their position the socialist-agorist axis. We can make a plot like this:
I put centralized VPNs on the "agorist" side of the axis, since users can pretty easily pick between different providers to find the one offering the best service. But of course, that service itself doesn't provide much anonymity.
Onion routers and mix networks are pretty much all different from each other. For example:
- Nym is placed on the socialist side of the spectrum — users perceive interaction only with the Nym protocol, not with individuals. Nym client software chooses paths through the network by randomly sampling mix nodes according to a fixed algorithm (this is inherent to stratified mixes, the family of protocols Nym belongs to). On the incentive front, Nym users also pay nodes in an indirect tax-and-subsidy scheme where users pay into a central smart contract, which then pays nodes who present "proof of mixing".
- I consider Tor slightly less socialist. Unlike Nym, Tor has no centralized incentive game (though that's really because it does not attempt cryptoeconomic incentivization). Tor participants, especially Tor relay providers, also have a bit more visibility and freedom as to which other participants they associate with. Relays can define their own proxying policies (by configuring ExitPolicy). Users in censored countries may choose to connect to "normal" Tor relays through bridges or pluggable transports, or even configure their client to only use particular entry and exit relays. Nevertheless, these options are on the margins, and the overall interface is still that users connect to "the Tor network" and access websites and onion services through "Tor", not specific relays that the user is aware of.
- Earendil is much more agorist than either Tor or Nym. There is no built-in bootstrapping process; nodes must manually find and peer other nodes to enter the Earendil network (important for censorship resistance). They then individually negotiate prices with these peers. Users are therefore quite aware of which users they are trading with in order to communicate anonymously. Nevertheless, Earendil still has a "socialist" element in that most of these "negotiations" are automated, and once users find satisfactory peers and prices, the user experience is still about accessing "Earendil", not using particular peers.
An interesting observation is that, at least in this case, the agorist/socialist distinction seems to align with the confederal/P2P distinction. Socialist communication networks conscript users into a collective P2P Network that together provides some sort of service, while agorist communication networks, like Earendil (or actually the Internet, though it doesn't provide anonymity) are simply emergent phenomena of a free market for trading data for payments from node to node. Division of labor there is then typically done by end users intentionally and "manually" appointing their own routing infrastructure, rather than by the protocol orchestrating the nodes according to some master plan.
DeFi and trading
We can also speak of an agorist/socialist distinction among DeFi protocols, though here it makes much less sense to talk about confederal/P2P networks, since DeFi protocols are typically not computer networks or protocols in the usual sense of the word.
Most DeFi protocols are highly socialist. For example, users using an AMM like Uniswap do not buy or sell tokens to other users, but to the smart contract representing the protocol, with even the role of liquidity provision, which traditionally is a transaction between a market maker and a trader, intermediated by "liquidity providers" interacting with the "the protocol". A similar structure is found elsewhere — lending protocols like Compound, liquid staking protocols like Lido, etc...
An interesting exception is what can broadly be called order-book DeFi contracts, where there is indeed a notion of a user-to-user trade, and the smart contract acts more as a broker and settlement system than as the counterparty of every transaction. This includes, of course, order-book DEXes like 0x, but more broadly could include systems like MakerDAO, where individual orders ("vaults") are created and taken by individuals. Nevertheless, these systems are still rather socialist, as the main point of interaction for a user is the unified system, not other users, and users typically do not monitor who the identity of their counterparty is.
Finally, there's a smattering of truly agorist DeFi protocols, where the only role of the protocol is to broker trades, but the trades themselves are entirely "manual" and outside the control of any smart contract. The best-known example is probably Bisq, which is basically a mostly-decentralized, Tor-based equivalent of the late LocalBitcoins. In Bisq, a decentralized P2P network broadcasts trade offers, keeps track of reputation, and managing escrow accounts, but the actual trade is done by users contacting each other and negotiating terms.
File storage and sharing
Trust-minimizing outsourced file storage and sharing is an important building block for decentralized apps, basically filling the same slot as "cloud storage" does in Web2.
Here, there's a truly wide spectrum of solutions from socialist to agorist:
- Arweave and similar: highly socialist. The entire premise is that the entire network as whole acts as a resilient file store. Users do not contact or contract with specific nodes for storage. The actual guarantees provided vary drastically, from permanent storage (Arweave) to rented storage (Filecoin) to best-effort storage (Freenet).
- IPFS: socialist for retrieving files, closer to agorist for hosting files. Files must be "pinned" by certain nodes actively hosting them to stay available, and there's a developed market for users to outsource this service to businesses. Users do need to think about who hosts the files they produce. But users retrieving files simply interacts with the protocol as a whole, which takes care of finding who's pinning the files and contacting them to retrieve them.
- BitTorrent: close to agorist. Users do not directly contact other users to download files, but nevertheless they must coordinate among themselves to use the same trackers and seed the right .torrent files. Users voluntarily choose which other users to trade with by choice of tracker, upload policy, etc. Incentives, broadly defined, are the responsibility of user-calculated reputation systems that shunning leeches that they are directly harmed by.
- Self-hosting: purely agorist. This involves everything from setting up a simple SFTP server over Tor onion services to setting up a massive Tahoe-LAFS cluster and contracting out the nodes to one's dark web buddies. Every exchange of value is fully visible to the counterparties and voluntarily set up.
We can draw a picture something like this:
An interesting gap seems to be high-resilience, highly agorist storage systems. One can imagine a protocol where the file host can outsource file storage to whomever they choose, but on top of that,
- use erasure coding to spread the files over many, many chunks, in such a way that as long as some file hosts are honest, the file can be recovered
- pay "file rent" using micropayment channels, similar to Earendil bandwidth, in exchange for interactive data availability proofs (which are easier to do right than the noninteractive ones systems like Arweave demand)
- have some way of generating a stable URL to point to a particular file in a particular swarm of file servers
This gives a user experience about as good as a typical cloud storage system, except for the overhead of finding and negotiating with many file hosts, which can likely be automated.
Right now, it's somewhat possible to build something like this by stringing together Tahoe-LAFS, some sort of Bisq-like marketplace, and using something like Tor or Nym for anonymous data transfer and coordination. But that seems extremely clunky, and I'd love to see a project that explores this area of the quadrant properly.
Mel as a pro-agorist socialist project
To conclude this post, I'd like to observe that Mel is somewhat of a strange project: it's a blockchain, thus quite socialist (you never need to contract with specific Mel nodes!). Yet the "off-chain composability" vision of Mel mostly empowers the agorist half of decentralized protocol design — user-to-user value settlement, confederal protocols, etc.
So in a sense, Mel is a minimal socialist layer for an agorist world, an architecture that I do believe will be much more powerful than the current patchwork of socialist and agorist ecosystems. There's probably a deeper philosophical discussion to be had about the proper role of socialist and agorist protocols — or communitarian versus contractarian approaches to user interaction in general — within the wider sphere of the "post-web" vision, but that'll have to be left for a future post...