Gedecentraliseerd kletsen

Bla bla bla bladiebla

Het is weer hoog tijd voor een potje bloggen, het is bovendien hoog tijd voor Een Mening Over Iets. En waarover dan beter een mening gegeven dan over iets dat ik ongeveer elke dag gebruik? Tijd om het eens over instant messaging en andere vormen van chat te hebben.

Laten we eens met mijn chatgeschiedenis beginnen.

Internet Relay Chat

Die begint bij IRC. Dat werd, volgens Wikipedia in ieder geval, eind jaren negentig op de wereld losgelaten en was, na een paar vage CGI-gebaseerde web-chats, mijn kennismaking met Kletsen Op Internet.

IRC is een vrij simpel en open protocol, en in de loop der jaren zijn er bakkenvol servers, clients en botjes uitgebracht die ermee overweg kunnen.

Toch mist IRC wel wat dingen die je tegenwoordig verwacht: afbeeldingen, replies en threads, bijvoorbeeld. Het protocol biedt ook niet veel mogelijkheden voor beveiliging en eigenaarschap, en takeovers van kanalen waren, vooral vroeger, schering en inslag. Chatgeschiedenis wordt niet bewaard, dus vanaf het moment dat je inlogt, kom je droog in een gesprek terecht, zonder inzicht in wat er misschien een seconde geleden gezegd is. Om sommige minpunten valt nog wel een beetje heen te werken, maar intussen begint IRC aardig zijn leeftijd te tonen, en initiatieven om het platform te upgraden gaan ook niet echt hard.

Instant messengers

De eerste Instant Messenger waarvan ik me iets herinner, was ICQ. Voor een IRC-gebruiker was het best magisch om te zien dat je een bericht aan iemand kon tikken die niet online was, en dat diegene dat bericht te zien kreeg zodra ze weer eens verbonden met dat grote boze internet. Wow. Verder deed het eigenlijk weinig dat IRC niet ook al kon, behalve "Uh-oh!" zeggen als er een bericht binnenkwam.

Andere messengers die in die tijd lekker opkwamen waren AIM (ik werkte toen voor CompuServe, een tak van AOL, dus in mijn bubbeltje werd dat redelijk veel gebruikt), Yahoo! Messenger, en natuurlijk MSN. Veel van die messengers waren niet of beroerd op de Mac te gebruiken (ik was toen nog Apple fanboy, dus dat was wel een dingetje), maar gelukkig waren de meeste messengers redelijk ondersteund door third-party applicaties zoals Adium. Desondanks bleven het allemaal aparte silo's, waartussen onderling niet gecommuniceerd kon worden.

Na de opkomst van de netwerken als WhatsApp, Facebook Messenger, Telegram en nog zo een paar aan de vooral mobiele kant, en platforms als Slack en Discord die zich meer op de respectievelijk zakelijke en gamers-markt storten, zijn er nu heel veel losse tuinen, met over het algemeen hoge muren ertussen.

En elk van die tuinen is een centraal geregeerde zwarte doos, vol gebruikers die enorme hoeveelheden data, metadata en aandacht genereren.

Centraal versus decentraal

Nog even terugkomend op IRC: dat kent, in tegenstelling tot de meeste instant messengers, verschillende netwerken, die onderling in principe niet gekoppeld zijn, maar die elk wel uit meerdere servers kunnen bestaan. Zo waren er IRCNet, EFNet en zo nog een paar, en gebruikers op één van de IRCNet-servers kunnen met alle andere gebruikers op IRCNet-servers praten, maar niet met die op EFNet.

Door dat meervoud aan servers lijkt IRC misschien redelijk decentraal, maar de dramatische manier waarop opensource-netwerk Freenode eerder dit jaar uit elkaar spatte, toont aan dat het wel degelijk een centraal bestuurd apparaat is, en dat de gebruikers nog steeds niets in de melk te brokkelen hebben. Niet iedereen kan maar even een IRC-server optuigen en in een bestaand netwerk laten opnemen.

Dat geldt ook voor alle "WhatsApp-alternatieven" die in de afgelopen jaren opgedoken zijn, zelfs publiekslieveling (althans, in bepaalde kringen van publiek) Signal. Hoe opensource Signal ook zegt te zijn, het is, aan de serverkant, een zwarte doos waar een gewone gebruiker geen inzicht in of invloed op heeft.

Dat is anders bij gedecentraliseerde en volledig open protocollen als XMPP en Matrix.

XMPP zie je vooral als onderliggende technologie terug bij online games en onder eerdergenoemde silo's van Google en Facebook. Matrix is een op zichzelf staand protocol dat intussen is opgepikt door een paar grote semi-overheids partijen in het buitenland. XMPP heeft een open architectuur die iedereen middels extensies voor zichzelf kan uitbreiden (en ook uit moet breiden, de basis is wat spartaanser), Matrix is wel open, maar het protocol en de ontwikkelrichting ervan wordt door een centraal orgaan bepaald, waardoor het qua functionaliteit veel minder gefragmenteerd is dan XMPP. Wat ze met elkaar gemeen hebben, en wat het belangrijkste onderscheid is met andere protocollen, is dat ze decentraal en federerend zijn.

Je kunt dat nog het beste vergelijken met e-mail, waar ik vanaf mijn server mail kan versturen naar iemand die een Gmail-adres heeft, of een mail op een eigen domein. Het is allemaal hetzelfde protocol (SMTP), het praat allemaal met elkaar, en niemand is - los van een soort de facto ontstaan duopolie tussen Google en Microsoft - "de baas" van e-mail.

Volgens datzelfde principe kan ik zelf een Matrix-server draaien (en dat doe ik dan ook), waarbij ik zelf bepaal wie daar allemaal een account op mogen hebben en wat de regels zijn, maar wel kan kletsen met mensen die bijvoorbeeld een account op matrix.org hebben, of een andere aanbieder, of die net als ik zelf een server draaien op hun eigen domein. Niemand kan dat afpakken, en dat is een grote geruststelling. Als één van de servers een probleem heeft, draait het netwerk gewoon door. Een chatkanaal dat ik op mijn homeserver start, blijft voor aanwezigen van een andere server ook gewoon bestaan als mijn homeserver even een luchtje aan het scheppen is, en zodra aan mijn kant alles weer verbonden is, wordt de hele gesprekshistorie vanzelf aangevuld, en hoef ik dus niets te missen.

Bruggetje

Het wordt nog mooier: er zijn bruggen te slaan tussen Matrix, XMPP en andere protocollen. Ik kan binnen mijn Matrix-client niet alleen met andere Matrix-gebruikers praten, maar middels zogenaamde bridges ook met gebruikers van IRC, XMPP, Telegram, Discord en andere platforms. Daarbij is het bij de niet-open protocollen uiteraard altijd de vraag hoe transparant zoiets werkt en wat het andere protocol ondersteunt, en in geval van de niet-open protocollen is het de vraag of het blijft werken, want dat is niet altijd in hun belang en soms afhankelijk van reverse engineering.

In ieder geval kan ik nu nog steeds rondhangen in het anderhalve IRC-kanaal waar ik wil rondhangen zonder dat ik een aparte IRC-client in de lucht hoef te houden.

Ook voor een groeiend aantal opensource-projecten is het een prima manier om een grotere groep gebruikers te bereiken, ongeacht of die op Matrix, IRC, Telegram of Discord zitten. Voor sommige van die projecten is het een kwestie van "erbij", maar voor andere vormt het de hoofdmoot, of gaat het dat vormen, bijvoorbeeld voor OpenSUSE, KDE, Mozilla, GNOME en Ansible - om er maar even een paar te noemen.

Federeren of niet

Tegelijk is het ook, voor situaties waar dat logischer is, mogelijk om een server niet te laten federeren met de rest van de wereld, zoals het Duitse gezondheidsconsortium gematik het gaat opzetten.

Ook kun je bij het aanmaken van een chatkanaal aangeven, dat dat kanaal alleen toegankelijk is voor de gebruikers van de homeserver waarop het kanaal is aangemaakt. Daarmee kun je dus een federerende homeserver hebben die toch een paar (of de meeste) kanalen binnenshuis houdt, maar andere kanalen toegankelijk maakt voor derden; iets waar bijvoorbeeld Slack ook mee adverteert.

Dat maakt Matrix in mijn ogen een veelzijdiger en betrouwbaarder platform dan de meeste anderen.

OK, hoe dan?

Uiteraard zit iedereen nu op het puntje van de stoel, trillend van anticipatie en met maar één brandende vraag op de lippen: hoe treedt je toe tot dit Utopia?

Dat kan op twee manieren. Je kunt, net als ik, een eigen homeserver gaan draaien. Tenzij dat binnen je technische comfort zone valt en je genoeg server over hebt (de Synapse-server die momenteel nog de standaard is, vreet redelijk wat resources) zou ik daar niet aan beginnen.

Optie twee is het opzoeken van een bestaande publieke homeserver en daar een account op aanmaken, of, als je geen zin hebt om een willekeurige pipo op het internet te vertrouwen, de Matrix-makers zelf te steunen en een betaalde account op EMS te nemen. Mocht de homeserver niet bevallen, dan kun je altijd nog naar een andere overstappen, hoewel je daarmee natuurlijk wél je unieke adres kwijtraakt, net als bij email.

Voor de gemiddelde gewone gebruiker is optie twee makkelijker.

Daarna is het een kwestie van het vinden van interessante / gezellige / nuttige kanalen. Ook daarvoor zijn lijstjes, en de Matrix-gebruikende open-sourceprojecten hebben ook zo hun kanalen. Dit is ook een veelzijdige (Engelstalige) groep mensen waar meestal wel wat te bespreken valt.

Er zijn voor alle gangbare platforms wel clients - voor Android, iOS en web is er Element, maar er zijn nog genoeg andere, net zoals er diverse email-programma's zijn.

Hoe dan ook, ga op ontdekking uit, voeg me gerust toe en laat me weten hoe je Matrix-avontuur gaat!

Je gebruikt een browser die Google's FLOC gebruikt en daarmee op je spioneert. Lees hier meer over waarom dat een slecht idee is.