Architekturnotiz · dezentrale Netzwerke
Den Heimserver zerlegen
Matrix bündelt Transport, Zustandsspeicher, Konfliktlösung, Rechteprüfung und Benachrichtigung im Heimserver. DaWN zerlegt genau diese fünf Aufgaben in einzeln austauschbare Schichten und lässt den Server im Datenpfad ganz weg. Wer etwas Vergleichbares baut, kann die Zerlegung übernehmen, ohne den Rest zu übernehmen — sie ist der wiederverwendbare Teil.
Wie dieses Dokument zu lesen ist
Jeder so markierte Begriff öffnet eine Erläuterung mit Begründung, verworfener Alternative und Quelle. Der Fliesstext bleibt dadurch lesbar, ohne dass eine Behauptung unerklärt stehen bleibt. Wo die Architekturdokumentation nichts festlegt, steht offen; wo eine Folgerung von uns stammt und dort nicht steht, eigene Schlussfolgerung. Alles Übrige ist belegt.
Stand: Architekturstand Juli 2026. Der Text beschreibt Festlegungen, nicht lauffähigen Code — Berechtigungsprüfung und Identitätsverifikation, die anonymisierenden Transporte und die Brücke zum Schwesterprojekt sind zum Redaktionsschluss nicht implementiert.
Die These: ein Prozess mit fünf Aufgaben, oder fünf Nähte
| Achse | Matrix | DaWN |
|---|---|---|
| Topologie | Föderiert: Client ↔ Heimserver ↔ Heimserver, signierte Transaktionen über HTTPS | Peer-to-peer, kein Server im Datenpfad |
| Identität | An die Server-Domain gebunden, Umzug ungelöst | did:webvh mit vorab festgelegten Folgeschlüsseln |
| Transport | HTTPS mit JSON zwischen Servern | QUIC direkt, optional Tor oder Mixnetz |
| Replikationseinheit | Der Raum als Ganzes; Teilbeitritte sind nachgerüstet | Ein Log pro Feld pro Objekt |
| Konfliktlösung | Zustandsauflösung über Machtstufen | CRDT-Verschmelzung mit Loro auf kausalem Graphen |
| Zugriffsrechte | Teil des replizierten Raumzustands | Ausserhalb: Biscuit-Capabilities |
| Verschlüsselung | Olm und Megolm: Curve25519, AES-256-CBC, HMAC-SHA-256 | Durchgängig Ed25519, X25519, XChaCha20-Poly1305, BLAKE3 |
| Anrufe | MatrixRTC mit LiveKit als Medienverteiler | WebRTC über zwei Relais in getrennten Netzen |
| Mobile Benachrichtigung | Push-Dienste über ein Gateway | Abgelehnt — gepufferte Zustellung |
Grundmuster
Die Zerlegung
Der Matrix-Heimserver ist deshalb so schwer zu ersetzen, weil er gleichzeitig fünf Dinge tut. Er transportiert Nachrichten zwischen Föderationspartnern, hält den Raumzustand, entscheidet bei Widersprüchen, welcher Zustand gilt, prüft Berechtigungen anhand von Machtstufen, und weckt schlafende Telefone. Jede dieser Aufgaben hat andere Anforderungen an Latenz, Zuverlässigkeit, Persistenz und Vertrauen — und weil sie in einem Prozess liegen, hängen ihre Entwurfsentscheidungen aneinander fest.
Die Gegenkonstruktion definiert für jede Aufgabe ein eigenes Interface mit eigener Austauschbarkeit. Die Zuordnung ist dabei keine Eins-zu-eins-Abbildung: Für das Wecken schlafender Geräte gibt es bewusst keine eigene Schicht (siehe unten), und die Wissensschicht hat kein Gegenstück auf der Matrix-Seite. Der praktische Nutzen zeigt sich beim Ausliefern: Dieselbe Anwendung läuft je nach Zusammenstellung als Entwicklungsaufbau ohne Kryptografie-Aufwand oder als anonymisierender Aufbau mit Mixnetz-Transport, ohne dass eine Zeile in den höheren Schichten anders ist. Vier solche Zusammenstellungen sind vordefiniert, von Easy-Peasy bis Paranoid.
Die Regel, die das trägt
Kein Typ einer Implementierung darf in der Signatur ihres Interfaces auftauchen. Die Knoten-Identität ist nicht der Adresstyp der Netzwerkbibliothek, sondern schlicht 32 Byte — der öffentliche Ed25519-Schlüssel. Fehler laufen über einen einzigen Fehlertyp, nicht über den der Bibliothek. Sobald ein Bibliothekstyp durchschlägt, ist die Austauschbarkeit auf dem Papier vorhanden und in der Praxis weg.
Warum das nicht warten kann: Anonymisierendes Routing lässt sich in einem dezentralen System nach dem Start nicht nachrüsten. Es gibt keinen Wartungsfenster-Moment, in dem alle Knoten gleichzeitig umschalten. Entweder die Naht sitzt vor dem ersten Release, oder das System bleibt für immer auf seinem ersten Transport.
Schicht 1
Übertragung
Der Standardtransport ist Iroh: QUIC mit Löcherstanzen durch NAT und einem Relais über HTTPS als Rückfallebene. Wird er gegen einen anonymisierenden Transport getauscht, ändert sich für die Schichten darüber nichts — ausser der Latenz. Und die ist der Grund, warum Live-Medien weiter unten getrennt behandelt werden: Der Sprung von direkt auf anonymisiert ist für Text belanglos und für ein Gespräch tödlich. Der Vorgängerbau lief auf einem anderen Unterbau; warum er nicht fortgeführt wurde, ist eigens begründet.
Zwischen Transport und Anwendung liegt eine eigene Schicht für Verkehrstarnung — sie macht den Datenstrom gegen Deep Packet Inspection unauffällig, statt ihn nur zu verschlüsseln. Zwei Verfahren stehen bereit: gleichförmige Zellen mit Blindfüllung und die Tarnung als gewöhnliche Webverbindung.
Latenzbudget der Transportvarianten
Fünf Wege hinein statt einem
Matrix findet Gegenstellen über DNS: erst eine Delegationsdatei auf der Server-Domain, dann Dienst-Einträge, sonst ein fester Port. Das ist elegant und hat genau einen Angriffspunkt — wer DNS und HTTPS kontrolliert, kontrolliert den Beitritt. Die Alternative ist Redundanz statt Eleganz: fünf gleichrangige Wege, keiner davon Pflicht, in dieser Reihenfolge versucht.
- 01 Zwischengespeicherte Adresse aus der letzten Interaktion — ein dawn://-Verweis, kein Netzwerkverkehr nötig.
- 02 Lokale Erkennung per mDNS und Bluetooth — funktioniert bei abgeschaltetem Internet.
- 03 Eine Datei auf beliebigen Websites, ausgeliefert von einem Plugin für gängige Redaktionssysteme.
- 04 Verschlüsselte DNS-Texteinträge — ohne Abhängigkeit von signierten Zonen.
- 05 Mitgelieferte Startliste als letzter Ausweg, aktiv erst nach Zeitgrenze.
Übertragbare Einsicht
Jede soziale oder wirtschaftliche Interaktion kann gleichzeitig eine Netzwerk-Entdeckung sein. Ein Bestellbestätigungslink, ein QR-Code auf einer Kursseite, ein Beitrag in sozialen Medien — jeder davon transportiert eine Knotenadresse mit. Das Netz wächst dann mit seiner Nutzung statt mit seiner Infrastruktur.
Schicht 2 · der eigentliche Unterschied
Replikation
Genau ein Ort, an dem etwas kanonisch wird
Die naheliegende Regel wäre: Ereignisse sind die einzige Schreibquelle, alles darüber — Volltextindex, Wissensgraph, Vektorsuche — ist abgeleitet und darf nur lesen. Genau so stand es in diesem Entwurf, und genau diese Regel ist im Juni 2026 wieder zurückgenommen worden: Die abgeleitete Schicht schreibt ebenfalls, und ein Zwang zum Neuaufbau nach einem Absturz besteht nicht, weil ihre Ablage selbst dauerhaft ist.
Was bleibt, ist die tragfähigere Fassung derselben Einsicht: Es gibt genau einen Ort, an dem ein Schreibvorgang kanonisch wird. Auch was eine abgeleitete Schicht erzeugt, wird dort als neues Ereignis abgelegt und nimmt denselben Weg wie jede andere Änderung. Verboten ist nicht das Schreiben — verboten ist ein zweiter Weg, auf dem etwas kanonisch werden kann. Für verschmelzende Datentypen ist dieser Unterschied existenziell: Zwei unabhängige Ursprünge erzeugen Zustände, die keine Verschmelzungsregel mehr auflösen kann.
Der unveränderliche Umschlag
Jedes Ereignis besteht aus einem Umschlag und einer Nutzlast. Der Umschlag trägt Typ, Autor, Signatur und Zeitstempel und ist über alle Protokollversionen hinweg formatstabil; die Nutzlast darf sich beliebig entwickeln. Daraus folgt eine Eigenschaft, die dezentrale Systeme dringend brauchen und selten haben: Ein alter Knoten kann ein Ereignis einer neueren Version prüfen und speichern, ohne es zu verstehen. Er legt die Nutzlast als undurchsichtigen Block ab. Weiterleiten darf er es nur, wenn der Absender einen positiven Vertrauenswert hat — und der Schutz endet an einem echten Protokollwechsel, bei dem Knoten, die ihn nicht mitgehen, aus dem aktiven Netz fallen.
| Typ | Warum keine Ausnahme möglich ist |
|---|---|
| Löschung | Kann ein alter Knoten eine Löschanweisung nicht ausführen, weil er ihr Format nicht kennt, ist die Löschung netzwerkweit wirkungslos. In der Architektur ist das ausdrücklich als Sicherheitsmerkmal eingestuft, nicht als Kompatibilitätsfrage. |
| Schlüsselwechsel eigene Schlussfolgerung | Wird eine Rotation nicht verstanden, prüft der Knoten künftige Signaturen gegen einen abgelaufenen Schlüssel und verwirft gültige Ereignisse. Anders als bei der Löschung ist diese Garantie in der Architektur nicht festgeschrieben — der Schlüsselwechsel ist dort ein registrierter Ereignistyp wie andere auch. Wir halten die Ausweitung für zwingend und nennen sie als das, was sie ist: ein eigener Vorschlag. |
Zeitstempel der Gegenstelle werden nicht als Ordnungskriterium verwendet. Sie stehen im Umschlag, weil sie den Beginn der fachlichen Gültigkeit markieren; die Ordnung ergibt sich kausal aus dem Ereignisgraphen. Ein Knoten mit falscher Uhr oder böser Absicht kann damit keine Reihenfolge erzwingen.
Verschmelzende Datentypen statt Zustandsauflösung
Matrix
Repliziert einen Raum als Ereignisgraph und löst Widersprüche über Machtstufen und Autorisierungsketten auf. Deterministisch — aber das komplexeste Stück der Spezifikation, und 2025 als Sicherheitslücke mit eigener Kennnummer erfasst, weil verzögerter Verkehr den Raumzustand zurückfallen lassen kann. Der Nachfolger ist spezifiziert.
DaWN
Braucht dafür keinen Schiedsrichter. Jedes Feld bekommt einen Datentyp, der zu seiner Semantik passt: zuletzt-geschrieben-gewinnt für Skalare, ein spezialisierter Textalgorithmus für gemeinsam bearbeitete Fliesstexte, eine reine Anfüge-Menge für Sammlungen. Die Verschmelzung ist mathematisch garantiert und braucht keinen Schiedsrichter. Warum nicht die dateiorientierte Lösung des Transport-Ökosystems, ist eigens begründet.
Der Ereignisgraph darunter liefert dann nur noch die kausale Ordnung — welches Ereignis welches gesehen hat. Das ist deutlich weniger Verantwortung als der Matrix-Raumgraph trägt, und entsprechend weniger kann daran schiefgehen.
Der Preis, offen benannt
Ein verschmelzender Datentyp hat kein Konzept von Autorität. „Zuletzt gewinnt“ heisst auch dann zuletzt gewinnt, wenn der Letzte gar nicht schreiben durfte. Deshalb muss die Rechteprüfung woanders sitzen — siehe den Abschnitt zu Berechtigungen.
Feldweise Logs
Das ist die Entscheidung, die im Betrieb den grössten Unterschied macht. Nicht ein Datensatz wird repliziert, sondern jedes Feld einzeln: Ein Artikel mit Titel, Fliesstext und Anhängen ist drei getrennte Logs mit je eigener Inhaltsadresse, zusammengehalten von einem Manifest.
Granularität der Replikation
Kosten dieser Wahl
Mehr Verwaltungsaufwand pro Log. Bei Objekten mit vielen winzigen Feldern kippt die Rechnung — eine Bündelung selten einzeln benötigter Felder in ein gemeinsames Log ist dann eine legitime Optimierung.
Abgleich unter schlechten Bedingungen
Ein Echtzeit-Broadcast-Protokoll ist für Mobilgeräte strukturell ungeeignet: Was während eines Verbindungsabbruchs gesendet wird, ist verloren, und es gibt keinen Nachhol-Mechanismus. Wenn über neunzig Prozent der Nutzer mobil sind, ist das kein Randfall, sondern ein Ausschlusskriterium — genau daran ist der Broadcast-Ansatz des Vorgängersystems gescheitert.
Vier Prioritätsstufen des Abgleichs
Schicht 3
Identität und Berechtigungen
In Matrix ist die Nutzeridentität an die Domain des Heimservers gebunden, und Machtstufen sind Teil des Raumzustands. Beides ist konsequent und hat einen Preis: Der Umzug einer Identität ist bis heute nicht gelöst, und ausgerechnet die sicherheitskritischste Information — wer was darf — ist demselben Auflösungsverfahren ausgesetzt wie jeder andere Zustand.
DaWN trennt beides heraus. Die Identität ist ein Schlüsselpaar mit einem hash-verketteten Änderungsprotokoll, in dem der jeweils nächste Schlüssel vorab festgelegt ist — wer den aktuellen Schlüssel stiehlt, kann die Identität trotzdem nicht übernehmen, weil die Rotation nur mit dem vorab festgelegten Nachfolger gültig ist. Gegen den Tag, an dem Quantenrechner klassische Verfahren brechen, steht ein hybrider Schlüsselaustausch daneben, und für seltene kritische Signaturen ein hash-basiertes Verfahren. Wer die Zeugen eines Schlüsselwechsels bestätigt, entscheidet eine überprüfbare Zufallsfunktion — niemand kann sie sich aussuchen. Diese Ziehung ist unbeeinflussbar, der Zufall, aus dem sie entsteht, jedoch nicht: Er stammt aus einem kuratierten Kreis von Betreibern, in der Startphase sogar aus einem einzelnen Gründungsserver. Die Architektur nennt die Konstruktion selbst unerprobt und verlangt ausdrücklich, das nicht zu beschönigen.
Für diesen Entwurf wurden zwei prominente Alternativen geprüft und verworfen: KERI als Identitätsschicht und RLN als Sybil-Schutz. Beide Verwerfungen sind begründet dokumentiert; sie sind für jeden interessant, der dieselben Bausteine gerade evaluiert.
Berechtigungen liegen ausserhalb des replizierten Zustands: ein signiertes, delegierbares, in seinem Umfang nur einschränkbares Dokument, das der Anfragende vorlegt und der Empfänger lokal prüft. Kein gemeinsamer Zustand, keine Auflösung, keine Abstimmung. Gewählt wurde Biscuit mit eingebetteter Datalog-Sprache, nachdem UCAN aus zwei Gründen ausgeschieden ist.
Die harte Stelle: der Entzug
Ein ausgestelltes Dokument ist gültig, bis es abläuft; es zurückzunehmen erfordert eine Sperrliste, die selbst wieder verteilt werden muss — womit ein Stück des Problems zurückkommt, das man gerade vermieden hat. Was die Architektur dazu festlegt und was sie offen lässt, ist ausdrücklich benannt: Der Widerruf kaskadiert automatisch auf abgeleitete Berechtigungen, die Verteilung der Sperrliste und die Prüfung gegen sie bleiben aber Sache des Empfängers. Zwei Einschränkungen schwächen ihn zusätzlich: Wer den Inhaltsschlüssel bereits zwischengespeichert hat, liest damit weiter, bis dessen Gültigkeit abläuft — und im selbstverwalteten Modus ist der Entzug einzelner Leser konstruktionsbedingt gar nicht vorgesehen.
Ein System, das offline funktionieren soll, kann nicht gleichzeitig sofortige globale Rechteänderung versprechen. Wer beides zusagt, hat einen der beiden Punkte nicht zu Ende gedacht.
Quer über alle Schichten gilt eine Präferenz für einen einzigen Kryptografie-Baukasten, gestaffelt nach drei Reichweiten und ausdrücklich als Vorzugsregel formuliert, nicht als Verbotskatalog. Sie ist der Grund, warum mehrere sonst naheliegende Bausteine ausgeschieden sind — die Verwerfung von UCAN und RLN geht in beiden Fällen unmittelbar darauf zurück. Fairerweise gehört dazu, dass das gewählte Identitätsverfahren für seine Verkettungs-Fingerabdrücke dieselbe Hashfunktion vorschreibt, die dem verworfenen Berechtigungsformat angelastet wird; die Architektur führt das als bewusst hingenommenen Kompromiss.
Danebenliegende Schicht
Live-Medien
Ereignistransport ist auf Zuverlässigkeit und Ordnung ausgelegt. Sprache und Video brauchen das Gegenteil: unzuverlässiges UDP, verworfene statt wiederholter Frames, unter 150 Millisekunden Ende zu Ende. Einen Live-Strom durch die Ereignisschicht zu zwingen bedeutet, gegen jede ihrer Eigenschaften zu arbeiten.
Die Medien laufen deshalb über einen eigenen Stapel mit eingebauter Verschlüsselung — während die Rufaushandlung über die Ereignisschicht läuft: Einladung, Antwort und Verbindungskandidaten sind kurzlebige Ereignisse, die nach Gesprächsende weggeräumt werden. Matrix macht das im Kern genauso, inzwischen mit einem neu zugeschnittenen Signalisierungsmodell. Die Idee ist es wert, übernommen zu werden: Man braucht keinen Signalisierungsserver, wenn man bereits einen zuverlässigen Ereigniskanal hat.
Zwei Relais, geteiltes Wissen
Ehrliche Bilanz
Was diese Bauweise kostet
Vier Punkte, an denen Matrix besser dasteht oder die Konstruktion Härten hat. Der letzte ist eine Lücke in der eigenen Dokumentation, keine gelöste Frage.
| Punkt | Woran es liegt | Was verfügbar ist |
|---|---|---|
| Benachrichtigungen offen | Matrix weckt ein schlafendes Telefon über ein Push-Gateway, weil der Heimserver immer läuft. Ohne Server gibt es diesen Weg nicht — und die Dienste selbst zu nutzen, lieferte Metadaten an genau die Stellen, die man umgehen wollte. | Die Architektur lehnt die Plattform-Push-Dienste ausdrücklich ab und beschreibt eine gepufferte Zustellung mit kreditbasierter Flusskontrolle — aber nur für Knoten im Browser, deren Tab einschläft, und die puffernde Komponente ist dort ein Server im Vermittlungspfad. Für eine native Anwendung auf einem schlafenden Telefon enthält sie keinen Weckmechanismus. Das ist die schwächste Stelle des Entwurfs und eine offene Frage, keine gelöste. |
| Vermittlungspunkte belegt | Sobald jemand über einen Browser ohne eigenen Knoten oder ein Website-Plugin teilnimmt, entsteht wieder eine Stelle, die sieht, wer wann was abruft. Was ein Server trotz Verschlüsselung sieht, ist auch für Matrix im Einzelnen dokumentiert. | Kein Implementierungsfehler, sondern strukturell — ein seit den Mix-Netzen von 1981 bekanntes Phänomen. Ehrlich benennen und begrenzen ist die einzige Antwort; wegdefinieren funktioniert nicht. |
| Reife belegt | Matrix hat eine stabile Spezifikation, mehrere unabhängige Implementierungen, ein durchdachtes Moderationsmodell und Jahre Betriebserfahrung mit grossen Räumen. | Eine geschichtete Peer-to-Peer-Architektur hat sauberere Nähte und weniger Belege. Bemerkenswert dabei: Matrix' eigenes Peer-to-Peer-Experiment setzt inzwischen auf denselben Transport wie DaWN. |
| Wachsende Metadaten offen | Verschmelzbare Datentypen tragen Historie mit sich, insbesondere bei gemeinsam bearbeitetem Text. Ohne Verdichtung wächst der Speicherbedarf über die Lebensdauer eines Dokuments hinaus. | In der Architekturdokumentation steht dazu nichts — weder eine Verdichtungsstrategie noch eine Schnappschuss-Regel. Das ist eine echte Lücke, keine bewusste Auslassung, und sie kollidiert mit der Zusage, dass jeder Knoten die Historie unabhängig prüfen kann. |
Zum Mitnehmen
Sechs Punkte für den eigenen Entwurf
Erst zerlegen, dann den Server weglassen
Die Aufteilung der Serveraufgaben ist der wiederverwendbare Teil. Welche Bibliothek darunter liegt, ist austauschbar — wenn das Interface es zulässt.
Kein Bibliothekstyp in einer Signatur
Undurchsichtige Identifikatoren und ein eigener Fehlertyp sind der Unterschied zwischen echter und behaupteter Austauschbarkeit.
Umschlag stabil, Nutzlast frei
Und die Löschung ist ein Pflichttyp, den jede Version verstehen muss — sonst läuft sie ins Leere. Für den Schlüsselwechsel würden wir dasselbe verlangen.
Granularität unterhalb des Objekts
Selektivität nachzurüsten ist teurer als sie einzuplanen. Feldweise Logs kosten Verwaltung und sparen Bandbreite.
Rechte aus dem replizierten Zustand heraus
Und den Entzug von Anfang an mitplanen — er ist die eigentliche Schwierigkeit, nicht die Erteilung.
Abgleich nach Korrektheit priorisieren
Löschanweisungen vor Inhalten, Identität vor allem. Das ist keine Optimierung, sondern die Bedingung dafür, dass das Ergebnis stimmt.