Decentralized versus distributed services
In this article, I will talk about two approaches to creating services that do not depend on a single central node, and compare their prospects. It is not my goal yet to create a detailed classification of approaches with examples, although I hope to do so in the future.
By services I mean both familiar web applications, to access which you need to go to a website, and distributed networks that provide services through client applications installed on a computer or smartphone. Recently, the difference between these concepts has been erased, and for our study it does not matter.
Classification
Centralized services
In a centralized service, there is one highest decision-making authority . It doesn't matter how many physical servers it has. Nowadays, any busy service uses many servers in different parts of the world (CDN - Content Delivery Network) to deliver content to the user faster. However, decisions on the possibility of posting information and limiting access to it are made by the owners of the service.
Examples of such services are familiar to everyone. I will list several services indicating the service they provide so that the reader can understand the further classification:
- Blogger, Medium - text blogs.
- YouTube, Vimeo, Dailymotion - video posting.
- SoundCloud - audio hosting.
- Dropbox, Google Disk, iCloud - hosting arbitrary files.
- GitHub Gist, Google Docs - hosting and editing text documents.
The names of some of these services can evoke many unpleasant associations. Centralized services are often found to engage in censorship, leakage of unencrypted data due to access rights violations, and transfer of data to law enforcement agencies.
Decentralized services
In a decentralized service, there are many decision-making authorities. The user can choose the service provider whom he considers better. The most famous examples:
- MediaWiki [1] is the engine that powers Wikipedia. If you are not satisfied with its policy, you can set up your own server or use many ready-made wiki site hosting services.
- RSS allows users to create news feeds from a variety of sources that are not related to each other.
One type of decentralized services is federated services. In them, many independent servers are combined into one network, and the user of any server has access to information located throughout the entire network. This allows for network effects , which are very important for the development of technology. It lies in the fact that the usefulness of a network depends exponentially on the number of users. An example is telephony, which is more valuable to the subscriber the more subscribers he can contact. By the way, telephony can also be an example of a federated network, if you delve into the technical details of its implementation.
It is probably due to the network effect that in recent years federated architecture has become very popular among programmers creating analogues of centralized services. Here are some examples of such systems:
- Matrix [2] is a messenger (its own protocol of the same name).
- PeerTube [3] — video hosting (ActivityPub protocol).
- Mastodon [4] is a microblog, an analogue of Twitter (ActivityPub protocol).
- Diaspora [5] is a social network (its own protocol of the same name).
Despite all the advantages of a federated architecture, censorship is still possible in it, both at the level of individual users (deletion of a user account by the server owner) and at the federation level (blocking one server by another). The first forces you to choose a server with suitable rules instead of a more technically reliable and advanced one. The second greatly reduces the network effect.
Distributed Services
In a distributed service, there is no decision-making authority. We can also say that such an authority is the entire network, which makes decisions automatically due to its architecture. Thanks to this, the rules are universal and do not depend on the human factor and the content of stored or transmitted information. Often, information on a network is encrypted, and individual network participants do not know what information they are storing or transmitting. Examples of distributed networks:
- Bitcoin [6] and other cryptocurrencies are based on blockchain technology. Network participants receive payment for confirming financial (and other) transactions, which are forever stored in the history of the network.
- IPFS [7] is a global information storage. It works as a temporary cache, but it is also possible to use special services (paid or volunteer) that guarantee the safety of information.
- Tor [8] is an anonymous network for bypassing blocking through exit nodes and accessing hidden services within the network. In both cases, no network node, except the end node, knows what information is transmitted through the network. Even the end node does not know who the information is transmitted to.
Developing distributed services for the most basic services is much more difficult than developing decentralized ones, because their operation is not guaranteed by one or many instances. They must reconcile the conflicting interests of many network participants. For this reason, they are not as common as federated services.
To implement more complex functions in distributed networks, a multilayer architecture is used . The base layer ensures uninterrupted storage and transmission of information, and the layers working on top of it already provide business logic. This is how, for example, the Lightning Network [9] works on top of Bitcoin. This is how the Internet works (see the OSI model [10] and the TCP/IP stack [11] ).
Problems and prospects
Let's look at what motivation drives the participants in decentralized and distributed networks, which ensures their work.
The main motivation is independence from centralized private services, which can impose arbitrary rules, including censoring information, displaying advertising or demanding payment. However, in a decentralized network, users are still dependent on the will of the provider they choose. This is called vendor lock-in. Users invest resources in promoting their content on their chosen platform, with their links leading to that platform.
There can be many reasons for censorship in decentralized services. Of course, no one wants to give a platform to offensive content. This applies to both volunteer services, which exist solely due to the goodwill of their owner or donors, and paid services, which depend on the opinions of clients.
Unfortunately, this neutralizes the network effect and does not allow it to compete with large corporations. In trying to solve the real and annoying problem of offensive content, technology creators and service owners are forgetting about the most important principle, which, among other things, contributed to the explosive growth in the popularity of the Internet. We will formulate it further.
The principle of technology neutrality
The principle goes like this: information technologies should be neutral in relation to the content of information.
A well-known special case of this is the principle of network neutrality . It lies in the fact that network providers do not favor one traffic over another. As a libertarian, I do not endorse such a principle as a law, but I fully support it as part of the contract between the client and the service provider. In recent years, he has been frequently written about in the media around the world. From these publications you can understand how important he is for the development of the Internet and for society.
As can be understood from the previous technical description, distributed systems allow this principle to be implemented much better than decentralized ones. Caleb James DeLisle, lead developer of cjdns technology, said it well:
At the heart of cjdns is the belief that social problems such as unjustified domain seizures and mass eavesdropping are the result of outdated protocols that put too much power in the hands of a few people.
I believe that the future lies with distributed services. Only they provide sufficient guarantees of information security so that users are willing to trust them with their information.
Does this mean that users are required to see offensive content? Of course not. The already mentioned multi-layered architecture allows the existence of rating services and agencies that the user can use in order not to see unwanted information or so that potentially unreliable information is flagged in a special way.