There's a lot of talk right now about the role of technology companies in our lives, and the huge power that some of them hold. Shadow-banning, censorship, questionable algorithms, surveillance, data mining and arbitrary moderation are all commonplace on large platforms, and many of us are thinking about what we can do to improve the situation.
One exciting avenue that I want to explore with this new series is decentralization, which put simply, broadly means giving the platforms back to the users. You've heard of Bit Torrent and Bitcoin, but there are so many more intriguing projects out there in different areas which could enable us to take back control, and I plan to cover many of them.
So the question you might be asking is "Why should we decentralize?", and this intro video will go over some of the positives and negatives of such systems.
- Youtube link
- Archive.org mirror
CENTRALIZED VS DECENTRALIZED
Centralized systems are the norm today. It just means a single company or entity owns a platform, and the users have to connect to that companies servers in order to use it. This means that fundamentally 'your' account isn't yours at all. It's their property, and you are basically granted access in return for giving them your data.
By contrast, decentralized systems are not owned by any single entity, and in general the data is both created and distributed by the users themselves. This distinction means the users have full control over their own data and identity on such platforms. Not all of them have the same architecture, but I can go into that more in another video.
To help illustrate this further here's how decentralized systems stack up against some of those common problems with our current centralized platforms.
In centralized systems, the owners of the platforms can act as gatekeepers, arbitrarily granting or denying access.
On the other hand, as long as a user follows the rules for a particular decentralized protocol, anyone, anywhere can access those systems.
Overzealous employees and moderators can censor and shadow-ban users at will, and there's very little that can be done about it.
In comparison, most decentralized systems are censorship resistant, and there's no authority that can censor users, or delete their accounts.
3. DATA MINING
Many centralized services collect and sell your data in various ways.
Almost all decentralized services use public key cryptography, so you have more control over who can and can't see your data.
4. SOURCE CODE
Most major centralized platforms today are closed source, so you don't know how they work, and what they're doing behind the scenes. Algorithms could be warping what you see in order to manipulate you.
Alternatively, nearly all decentralized projects are free and open source software, so anyone can view exactly how the protocols, and software works.
5. KEY OWNERSHIP
If you use a centralized service, they usually control the keys to your data, and can access everything you do on their platforms. Your private messages are not private at all to them.
One important feature of decentralized systems is public key cryptography. You alone own your keys, meaning only you and your recipients can view private messages.
6. DATA CENTRALIZATION
If a company gathers and centralizes large amounts of data on its users, it's more likely that a massive data breach could occur.
Even if a single user's computer is compromised, the decentralized nature of these systems means the data breach is limited to only that user.
If the company that runs the centralized service goes out of business, or the servers go offline for whatever reason, everyone loses access.
Alternatively, since the users often act as nodes, distributing data amongst themselves, there's almost no way to shut decentralized systems down. As long as a handful of nodes exist in the world, the network continues.
CHALLENGES OF DECENTRALIZATION
Creating peer to peer systems that run smoothly is very difficult for a variety of reasons, and often centralized systems are way easier to implement. But, as I've explained, the price for this convenience is loss of control, and all the myriad of downsides that come with that. Decentralized systems are a different beast entirely, meaning a shift in mindset is required before using them.
The first point is about personal responsibility. Obviously this is a good thing, but it's something which requires the correct level of respect. All of these systems give the user full control over their keys, so you and only you can access your data on the networks. This means if you accidentally lose them, your account will be inaccessible forever. There's no recover password feature, and you alone are responsible for protecting and backing up your keys.
Scaling can be an issue too. Take BitMessage's flood protocol for example. Since every user needs to download all messages on the network in order to maintain anonymity, this could become a problem when the number of users scales up.
Moderation is also an extremely difficult challenge to overcome. Bad actors could post illegal material or spam the system, and since no central authority is in control, it's impossible to just delete the data, and ban the user.
Different projects try to solve this in various ways, some by aligning incentives and making it expensive to act maliciously, or by combining self-policing systems, like webs of trust, user controlled moderation and voting models, as well as client-side blocking to basically ostracise certain users, and limit them from propagating data in the network.
On top of all that, it's worth taking into account that since you're not connecting to a centralized service, the internal workings and connections between nodes that would have been hidden, can now be seen by anyone watching the network, so even though the content of what you're doing is encrypted and hidden, some of the metadata would still be available. Some projects get around this by implementing their own onion routing protocols which hide some routing information from nodes, but they are currently the exception.
Hopefully this gives you a sense of why these kind of systems are very important and will likely be instrumental in the evolution of the internet. The next videos in this series will be looking at lots of really interesting projects built in this way.
What do you think I should cover? Especially let me know if you're working on a P2P project that not many people know about. Please share this video so we can get the word out about this alternate way of doing things.
A WORD FROM NODE
If you found this video useful, please consider contributing to the NODE patreon campaign. It really helps me out, and allows me to concentrate more time on series like this, as well as all the other hardware and software projects I bring to you. Alright, as always, I appreciate you watching, and I'll see you in the next video.