How to destroy a decentralized network (on the example of Fedivers)

How to destroy a decentralized network (on the example of Fedivers)

It’s 2023 outside. The entire Internet is under the control of the GAFAM Empire. All? No, a few small enclaves have not succumbed to their oppression yet. And some of those who did not join began to join forces, consolidating into Fedivers.

In the course of debates on Twitter and Reddit, Fediverse began to attract more and more attention and gained notoriety. People began to seriously use it. This could not escape the attention of the Empire.

Capitalists versus competition

As Peter Thiel, one of the glorified investors of Facebook (the organization is banned in the Russian Federation), said, “Competition is for losers.” Yes, these hypocrites who claim that “the market decides” do not want to obey the market once they have entered it. They need a monopoly. From its inception, Facebook was determined to undermine any competition. The easiest way to achieve this is by buying companies that sooner or later can compete with you. Such a fate befell, for example, Instagram and WhatsApp – they were bought only because they offered an attractive product to users and took away Facebook’s turf.

But Fedivers cannot be bought, because it is an unofficial set of servers that exchange information using the ActivityPub protocol. Different software can even be used on these servers (the most famous example is Mastodon, but you could also come across Pleroma, Pixelfed, Peertube, WriteFreely, Lemmy and many other solutions).

A decentralized network cannot be purchased!

But there is another way: to devalue it. That’s exactly what Google did with XMPP.

How Google joined the XMPP federation

At the end of the 20th century, instant messaging services (instant messengers) became popular. One of the first successful examples was Aska (ICQ), which was soon followed by the MSN messenger. MSN was a ticker of its time: a world where teenagers could hang out for hours and days without adult supervision.

Since MSN was part of Microsoft, Google wanted to compete with it and in 2005 offered Google Talk, including it in the Gmail interface. Let me remind you that in those days there were no smartphones, and web programs were on the list. All applications had to be installed on a computer, and Gmail’s web interface was a breakthrough technology. At one point, MSN was even woven into Microsoft Windows and it was really difficult to remove it from that OS. But Google Chats in Gmail’s web interface was much closer to the user even compared to the app built into the operating system.

Meanwhile, while Google and Microsoft battled for hegemony, free software enthusiasts tried to build a decentralized messenger. As a result, XMPP appeared, which, like e-mail, worked according to the federal protocol. Many servers could exchange data using this protocol, and each user connected to a specific server through a client installed on it. The user could then communicate with any other user who connected to any server through any client. It is on this principle that the ActivityPub protocol and, accordingly, Fediverse currently work.

In 2006, Google talk became compatible with XMPP. Google took XMPP seriously. I remember, in 2008, I got a call at work. Someone on the other end said, “Hello, we’re from Google, and we’d like to offer you a job.” I made a few calls and it turns out I was found via the XMPP developer list. They were looking for sysadmins to support XMPP servers.

So Google seriously entered the federation. How cool was that? This meant that suddenly every single Gmail user was an XMPP user. It’s only good for XMPP, isn’t it? I was ecstatic.

How Google ruined XMPP

But, as they say, “it was smooth on paper.” First of all, despite active participation in the development of the XMPP standard, Google was also preparing a closed implementation, which no one was allowed to study. It turns out that they were not too careful with the protocol they were developing. Not everything was implemented. They forced the community to slow down XMPP development to accommodate the process. Nice features were not implemented or used in XMPP clients, as they were incompatible with Google Talk (avatars could not be established in XMPP for a very long time). The federation sometimes failed: it happened that the communication between Google servers and ordinary XMPP servers did not work for hours or days. The XMPP community has retrained as watchdogs and debuggers of Google’s servers, reporting irregularity and downtime (I’ve done this a few times myself; maybe that’s what prompted me to switch jobs).

Since the user audience of Google talk was much wider than the audience of “real XMPP users”, there was almost no opportunity left to “get the attention of Google talk users”. Newbies who discovered XMPP without being Google talk users themselves experienced such a painful experience, because their contact list consisted mostly of Google Talk users. At first glance, communication with them should be easy, but in fact the XMPP messenger was a shortened version of the Google talk functionality. A typical XMPP contact list consisted of mostly Google Talk users plus a few geeks.

In 2013, Google realized that most XMPP interactions were still occurring among Google Talk users. The Googlers did not try to respect the protocol, which they controlled 100%. Therefore, they blocked the oxygen project and announced that it would no longer be federal. After that, the long story of developing our own messenger began; the first option was Hangout (and then Allo, Duo. After that I didn’t follow).

It is expected that none of the Google users raised an eyebrow. In fact, they did not understand what had happened. In the worst case, some contacts have gone offline forever. That’s all. But from the point of view of the XMPP federation, the situation looked as if most of the users had suddenly disappeared somewhere. Even die-hard XMPP fanatics like your humble servant have had to create Google accounts to keep in touch with their friends. Let me remind you: for them, we simply ended up offline. It was our fault.

Although XMPP survived to this day and remains a very active community, the messenger never recovered from the blow. Exaggerated expectations from “we were taken to Google” turned into a cruel disappointment and a quiet slide into oblivion. XMPP has become niche. So niche that when everyone jumped into group chats (Slack, Discord), the free software community simply reinvented such a protocol (called Matrix) to be able to compete — while XMPP already had the ability to create group chats. (Disclaimer: I’ve never studied the Matrix protocol, so I have no idea how it compares to XMPP from a technical perspective. I just think it solves the same problems as XMPP and competes in the same space).

Would the fate of XMPP have been different if the alliance with Google had not happened, or if the merger with Google had not been considered? Now you can’t tell. But I am convinced that the community would grow more slowly and perhaps grow healthier. It would be bigger and more significant than it is today. It was de facto the main platform for decentralized communication. I am sure of one thing: without the alliance with Google, XMPP would feel no worse than it does now.

This was not the first case: remember Microsoft Playbook

What Google created with XMPP has happened before. In fact, in 1998, programmer Vinod Vallopllil of Microsoft wrote an open article “Blunting OSS attacks” (sample translation: “How to curb the appetites of open source”), in which he proposed to “de-commoditize (remove from public access) protocols and applications […]. By building on these protocols and developing new ones, we will be able to prevent free software projects from entering the market.” Microsoft put this into practice with Windows 2000, which supported the Kerberos security protocol. But then this protocol was expanded. The specifications of such extensions were freely downloadable, but one had to accept a license that prohibited the implementation of these extensions. You should have clicked “OK” — and you lost the ability to work with any offensive version of Kerberos. This was done with the sole purpose of killing any competing network project, such as Samba.

This story is brought up by Glyn Moody in his book Rebel Code to demonstrate that the eradication of open source and decentralized projects was indeed deliberate. This never happens by accident and is never just bad luck.

Microsoft used a similar tactic to ensure its dominance in the office software market: Microsoft Office began using proprietary formats (a file format can be considered a protocol for data exchange). When alternative solutions (OpenOffice and LibreOffice) learned how to open doc/xls/ppt files well, Microsoft released a new format it called “open and standardized”. This format is purposefully made very complex (a 20,000-page set of specifications!), and most importantly wrong. Yes, some bugs were purposefully introduced into the specification, so a program that fully implemented the OOXML format would work differently than Microsoft Office.

These bugs, plus lobbying at the top, in particular, led the city of Munich to abandon the idea of ​​completely switching to Linux. So this is a really effective strategy. That is why docx, xlsx and pptx are still the norm today. I am talking about this from my own experience, because the Munich authorities paid me to work on bringing OOXML rendering in LibreOffice closer to Microsoft standards, which was against the specification.

UPDATE:

Meta and Fediverse

Those who do not teach the lessons of history are doomed to repeat them. Exactly the same story happened between Meta (an organization banned in Russia) and Fediverse.

There were rumors that Meta would become “Fediverse compatible”. You can create an account on Mastoson and follow your friends’ Instagram feeds from it (the organization is prohibited in Russia).

I don’t know if there’s any truth to these rumors, or if it’s even possible for Meta to consider such an option. But there’s one thing I’ve learned from my experience working with XMPP and OOXML: if Meta joins Fediverse, only Meta will benefit. In fact, the reaction suggests that this victory is already brewing, with the Fediverse debating whether or not to block the Meta. If blocking occurs, then we will have a depressingly fragmented two-level Fediverse, unattractive to newcomers.

UPDATE: This rumor has been confirmed by at least one Mastodon admin under the nickname kev who works at fosstodon.org. He was approached with an invitation to participate in a secret Meta meeting. He reacted in the best way possible: he politely declined and, most importantly, published this letter with the addressees and the addressee. Thank you kev!

I know, we all dream of one day dragging all our relatives and friends to Fedivers, in order to completely get rid of the need to communicate in proprietary networks. But Fedivers isn’t after market dominance or profits. Freedom-loving people join Fediverse. If people are not ready for freedom or do not seek it, that is normal. They have the right to remain on proprietary platforms. There is no need to drag anyone to Fediverse by force. You should not try to maximize the audience, no matter what it costs. We must be honest and not doubt that people join Fediverse precisely because they share certain values ​​of this network.

Competing with Meta on the mindless “growth at any cost” ideology, we are sure to lose. They are the aces of this game. They are the ones who are trying to drag everyone into their field, to attract people to the competition, and at the same time they themselves will sell barrels to the competing parties.

Fediverse can only win by holding its ground and talking about freedom, morality, ethics and values. Conducting open, non-commercial negotiations in which no one is spying on anyone. Recognizing that there is no goal to win. Do not “support”. The goal is to remain functional. Yes, to serve as an island of freedom for people bound by one chain. A commercial company will never be able to offer you this.

Related posts