TETHICS 2020 Presentation on Open Source Censorship
While open source is often regarded synonymous with free (as in freedom), this is not always the case. Some Mastodon clients have implemented censorship in the way of hard-coded domain blocking, by forwarding Gab users to a RickRoll video instead of allowing them to log in. While this is allowed in GPL, it is clearly against the spirit of free software, making applications employing such censorship methods Open Source but non-free software.
I presented a paper titled 'Hard-coded censorship in Open Source Mastodon clients — How Free is Open Source?' at TETHICS 2020 on the 21st of October. Below is a short summary on the research.
Mastodon is an open source version of Twitter
Mastodon is a micro blogging service (akin to Twitter) that openly federates messages similarly to email. Just like with email one user can have an address ending with @gmail.com and another @yahoo.com while sending messages to each other without trouble, on Mastodon different users can be on different service providers, and still follow and reply to each other without hindrance.
Mastodon, like Twitter, also has multiple apps for mobile and desktop, that make using the service more convenient. Many such clients have implemented domain blocking, not allowing users of Gab to log in using their application.
Is Domain blocking Censorship or not?
Domain blocking could be implemented in email clients, such as Microsoft Outlook or Apple Mail, to prevent users of competitor’s services from using the software. Microsoft could block Gmail users from using their application, even though they support the same technical standards. While it is normal for applications to not support all standards, and no programmers can be compelled to follow competitors’ standards, it is very different to specifically block services even though they use the same standard and there’s no technical reason for them to not work together.
While blocking access to your application is clearly not governmental censorship, and by law programmers have the right to dictate how their programs are being used, the act of preventing reading and writing of speech/expression is, by definition, censorship.
Not all censorship is bad or wrong, and private entities dictating what can be done with their property is very different from governmental censorship that is backed by fines or imprisonment. Soft censorship can be seen to include all kinds of means that aim to limit expression — whether they be monetary by way of funding or merely peer pressure. The chilling effect, a form of soft censorship, is a phenomenon where individuals limit their own speech in fear of possible negative social or professional consequences, most commonly due to imprecise policies that leave one guessing what is allowed and what is not.
Whether hard-coded domain blocking fits in the semantics of censorship or not, I think everyone can agree that (rightfully or not) domain blocking does limit the freedom of some users to use the service. What name we give this act is of no consequence.
Problems with censorship in open source
Open source licenses exist to ensure user freedoms to run, change and distribute programs (specifically their source code). The expectation is that with the code, users are able to run and tweak the program according to their wishes. The free in free software means freedom, not lack of monetary compensation, specifically freedom of end-users.
GPL allows for blocking behavior, such as DRM, as long as users are free to download the source code and remove any such blocking features they deem undesirable. Such features are, in my opinion, still anathema to the philosophy underlying free and open source software. Richard Stallman’s article Why programs must not limit the freedom to run them elaborates on this topic very well, though he argued mainly for the freedom of editing source code. Taking political discourse to software only creates chaos, as different groups struggle to develop their own software, which they prevent the “other side” from using. Hate speech should be opposed, but not through software development or limits on freedom of expression.
The freedom to edit source code gets more complicated when we look at the closed ecosystems of mobile phones. While it is technically possible for anyone to compile apps for mobile phones, with centralized app stores, the process is much more complicated than on traditional computers. This is why even open source software oftentimes packages an official version of their app and publishes it on the app stores of Apple and Google.
Distribution licenses
While domain blocking is ok under GPL, as long as people are allowed to change the code themselves, app distributors also sign away some rights under the development and distribution agreements of app platforms. For example, Google developer agreement and developer policies forbid product takedowns “from users who have previously purchased or downloaded” products. The developers still have an obligation to keep delivering products that have been previously downloaded. This could be grounds for appeal to people who have been blocked out of their accounts.
Google developer policies also forbid deceptive behavior and require apps to provide users with a basic degree of functionality and a respectful user experience. Some Mastodon clients, such as Tusky, implement domain blocking by humorously forwarding the user to Rick Aisley’s video of him never going to give you up. This could be interpreted to be deceptive, as the user is not informed that they are being intentionally blocked, and is arguably not respectful.
Any policy violations would need to be clarified by Google, so take the short analysis above with a grain of salt. By default, developers have the right to say how their apps are to be used, even though limiting user freedom is against the philosophy of open source.
Open source but not free
While open source licensing allows applications to implement functionalities that limit user freedom, the idea is that such limits can be circumvented by users by editing the open source code. The closed ecosystems of app stores make this more difficult, as normal users have no means to implement any changes, and even experienced developers need to go through additional hoops to distribute modified copies of the application. This was shown to be especially true, as there was a fork of Tusky that disabled domain blocking, but the fork was not allowed to be distributed on Google Play next to the official client.
While software implementing domain blocking is still open source, as long as such functionality can be removed from the source code, the distributed compiled applications are no longer free, as they limit the freedom of their users to use the program as they wish. This distinction between Free and Open Source software is very meaningful in the modern mobile world.
This could mean that open source licenses such as GPL require additional (optional) distribution licenses that allow developers to legally pledge that software is and remains not only Open Source (OS) but Free and Open Source (FOSS) when it comes to user freedom.
Full paper available per request on Researchgate or via email.