Minimum viable decentralization
If we’re building a decentralized application, how much should we actually decentralize? Decentralization has an important relationship with the law. Historically, the winning strategy has been to decentralize the legally sensitive parts and then otherwise build a normal application.
When it comes to decentralization, a lot of well respected people have very different goals. I think a lot more people are unclear what their own goal actually is.
- Are we starting from scratch and building the new internet?
- If we’re building a dApp, is it ok for it to be browser based and depend on DNS?
You’ll get a lot of strongly worded answers to these questions, but many people will talk theoretically about censorship resistance and security without acknowledging that these goals are often fundamental tradeoffs against usability. We need to think about decentralization in the context of how differences in complexity, latency, and user education shape user adoption. This isn’t just a theory, this approach accurately models which decentralized protocols and applications of cryptography actually saw mainstream adoption in the past.
As I covered in my post “Resistant protocols: how decentralization evolves”, the history of file sharing shows a pattern of people moving en masse to new music platforms based on two criteria:
- Minimum viable decentralization — Is the technology clever enough that Holywood can’t just kill it immediately?
- User experience — Like any software, users flock to the product that gives them what they want
When you couldn’t centrally host mp3s, people used websites which linked to externally hosted mp3s. Napster took over because it provided a larger and more reliable library of music. Kazaa’s technology was decentralized in a way that let it operate for years after Napster was shutdown. BitTorrent won the war by outsourcing liability to search engines like The Pirate Bay.
Some of these shifts are because of decentralization, others are about user experience. I didn’t mention dozens of other file sharing applications though, including many technologies which people in the early 2000s thought were the biggest threats overall.
Freenet came out in 2000 while Napster was still alive. News reports talked about Freenet alongside Limewire, a very popular file sharing program, as a threat
“The soon to come ‘Freenet’ will offer completely anonymous and untraceable file trading.”
The creator of Freenet said it is designed to be totally anonymous and unstoppable, a platform for anarchy:
“Anarchy means without a ruler and that sums up the architecture of Freenet,” says Clarke. “It does not have any kind of centralized control. In fact, it is designed in such a way that it is impossible to control.”
Freenet is an ambitious project, trying to provide better anonymity than Tor and a more distributed file storage system than IPFS.
Freenet never took off during the file sharing revolution. The main users today seem to be privacy and decentralization enthusiasts. The combination of strong anonymity and distributed file storage mean it can be pretty slow, sometimes taking over a minute to respond to a request. The project started in 1999 and is still in development now almost 20 years later. While the goals of the project are respectable, it also makes the fundamental tradeoff between privacy, decentralization, and usability pretty clear.
iMule and anonymity forks
The I2P network approaches anonymity with a similar approach to Tor, but I2P is a closed network which means you can only connect to other I2P peers and you can’t use it to browse the regular internet. Unlike Tor, I2P is is also designed to work with file sharing applications like eMule and BitTorrent without slowing down transfers.
During the file sharing revolution, the RIAA tried everything it could to stop internet piracy, including suing normal users of applications like Kazaa. Suing users was part of a scare tactic campaign that intended to make the average person think twice about downloading out of fear. It didn’t stop the growth of file sharing, but it did instill fear in people at the time. Given that many people were a bit scared of being sued for piracy, you might assume that users would seek out file sharing applications that protect their anonymity.
Developers ran with this assumption by forking popular software like eMule and configuring the application to run on the I2P network. Plenty of I2P clients also exist for the BitTorrent ecosystem. Still, these applications didn’t see much adoption and while you can definitely download files using them, it is much slower since there are way fewer users on the I2P network.
If the public was scared of the RIAA’s campaign to fine the average Joe thousands of dollars per song, why didn’t people dive deeper down the decentralization and privacy rabbit hole? While people were intimidated by the lawsuits, maybe deep down people realized that the actual number of people being sued was so small that the probability of being sued was tiny. It’s possible a meaningful amount of people tried out I2P forks of popular file sharing applications and weren’t happy with the speeds. Realistically, a lot of internet pirates may not have known about the fear campaign nor the fact that alternative software could protect them.
Regardless of why iMule and I2P BitTorrent clients didn’t go mainstream, we can still learn from this piece of history. I2P was slower and using one of these clients required a bit more willingness to learn new technology. It seems like harder to use and slower experiences don’t spread unless the majority of users understand that they are at significant risk if they don’t embrace more complex software.
Darknet markets are the purest example of real mainstream crypto-anarchy. To buy drugs online, you have to
- Power up a Tor browser
- Go to a hidden .onion website
- Create an account
- Deposit bitcoin
- Optionally, encrypt your home address then sharing it with the market vendor
Tor, hidden services, Bitcoin, and strong cryptography with PGP. This is the hardcore vision the Cypherpunks were talking about back in the 90s!
Notice I said that encrypting your home address is optional. Basically, encrypting your delivery information is best practice since you don’t want to end up on a list if a market is raided, but marketplaces don’t enforce it and a lot of users apparently don’t do it.
Operators of Darknet markets stick to Tor hidden services, probably because they know that they would definitely be in jail quickly if they ran a drug marketplace on the normal internet where any government could just subpoena the server host. Every market uses cryptocurrencies because a government would quickly subpoena any centralized payment processor. Address encryption is optional though, probably for the same reason that file sharing users didn’t really care about anonymity. The possibility of your house actually being raided because you ordered a personal amount of marijuana online probably seems remote to a lot of people, so why bother with all of this complicated stuff?
Dread: DarknetMarket subreddit diaspora
Almost every popular darknet market has a corresponding forum on Tor which users can use to discuss topics about usage, best practices, trustworthy vendors, etc. Up until March of 2018 though, the goto place to discuss all of these topics was reddit. Subreddits like r/DarknetMarkets had hundreds of thousands of subscribers plus posts and comments streaming in by the minute. After a change in US law though, Reddit shutdown all of the darknet market subreddits along with other communities to do with prostitution, theft, and legally selling guns.
These communities didn’t die, they just followed the law of minimum viable decentralization and moved to an identical reddit clone hosted as a Tor hidden service called Dread (dreadditevelidot.onion).
The about page for the website even talks about cloning Reddit’s UI for the sake of usability. By moving to a hidden service, the operator of the website gains anonymity and users pay a little bit in terms of latency, a smaller user base, and website stability as the creator works out the kinks. Similar to how most casual users can’t be bothered to anonymize their file sharing or encrypt their delivery addresses, users wouldn’t have embraced a website like Dread before Reddit’s ban. The lack of a big user base is probably enough by itself, but the latency of using Tor and friction of learning something new would probably also hold back adoption.
KICS: Keep it Centralized, Stupid
“Keep it simple, stupid” is a crucial design principle for any product. For the decentralized world, one form of this is “keep it centralized, stupid.” Obviously something has to be decentralized, but choose wisely. Freenet, iMule, darknet markets, and Dread provide good examples.
Anonymity only really matters to users who are seriously at risk of being identified and realize that anonymity is crucial. Operators of hidden services get this and that is why Dread and almost all darknet markets are on Tor. A few use I2P, but for the most part the difference in anonymity isn’t worth the drop in users. On darknet markets, a lot of vendors understand that using PGP is important because they spend a lot of time worried about being raided and sent to jail. End users don’t understand this as much, so PGP usage varies for casual buyers. People using file sharing services to pirate music and movies probably aren’t actually concerned about being sued by the RIAA or MPAA, so providing anonymity will just seem slow and it might be better to just recommend a VPN.
If a centralized service like Reddit is popular for something that seems like it should be decentralized or anonymized, you’ll have a hard time attracting users until the law forces them to find a new home. When users are searching for a new home, every little bit of confusion makes a big difference and if you can limit the friction to just installing Tor and dealing with a bit of latency then you’re in a good place.
It is definitely possible that in 10 to 15 years we’ll have mastered decentralized technology such that usability and user education don’t introduce incredible amounts of friction. Looking at the last 20 years though, it seems like every little bit of decentralization needs to be carefully administered because the side effects are strong and can easily produce an unusable experience. If you’re trying to build a decentralized product and attract users in the next few years, figure out what your minimum viable decentralization is so that you have a hope of building a minimum viable product.
If you liked this post, follow me on twitter. I have several other posts about p2p and blockchain and I’ll be writing more.