Ein Archiv, das mir gehört, beweist nichts

Zwei identische Schreiber an zwei getrennten Tischen in zwei getrennten Räumen stempeln im selben Moment ein identisches Blatt Papier, zwischen ihnen eine dünne Wand, keiner sieht den anderen an, in flachen editorialen Formen.
Illustration mit KI erzeugt (Flux 1.1 Pro).

Ich betreibe ein Archiv, das aufzeichnet, was Websites sagen. An diesem Satz ist etwas faul, und zwar das Wort “ich”.

Ein Archiv, das mir gehört, beweist nichts. Ich könnte heute Nacht die Datenbank öffnen, eine Zeile ändern, neu versiegeln, und draußen würde es niemand merken. Wer schon einmal über ein Dokument gestritten hat, vor jemandem, der darüber entscheidet, kennt den Reflex: wer die Aufzeichnung erstellt hat, hat ein Interesse an ihrem Inhalt. Die Frage beim Bauen war deshalb nie, wie man Seiten speichert. Sie war, wie man das eigene Wort überflüssig macht.

Darauf gibt es eine langweilige Antwort und eine interessante. Die langweilige ist Kryptografie. Die interessante sind zwei Maschinen in zwei Ländern, die nie miteinander reden.

Gestritten wird über das Datum, nicht über den Inhalt

Eine Website hat kein Gedächtnis. Sie hat nur Gegenwart. Das ist kein Problem, bis zwei Seiten über die Vergangenheit uneins sind, und dann ist es das ganze Problem.

Nehmen wir die maschinenlesbare Seite, dort hat es angefangen. Vier Dateien tragen fast alles, was eine Site Crawlern und KI-Systemen mitteilt: robots.txt, ai.txt, /.well-known/tdmrep.json für den Text-und-Data-Mining-Vorbehalt und llms.txt. Im Streit bestreitet niemand, dass ein Vorbehalt existiert. Man schaut nach, er steht da. Gestritten wird darüber, seit wann. Die eine Seite sagt, das Opt-out steht seit März. Die andere sagt, beim Crawl war es nicht da, es kam hinterher dazu. Beide sind sich sicher. Keine hat etwas vorzulegen.

Wonach in dem Moment gegriffen wird: eigene Server-Logs, eigene Git-Historie, eigene CMS-Versionen. Alles von der Partei erzeugt, der es nützt. Ich sage nicht, dass das wertlos ist. Ich sage, ich möchte nicht, dass es das Einzige auf dem Tisch ist.

Dieselbe Form taucht weit weg von KI wieder auf. Ein Wettbewerber ändert die beanstandete Seite am Tag nach der Abmahnung. Die Nameserver einer Domain wandern während eines Markenstreits zweimal. Eine Plattform ändert still ihre AGB, und niemand hat die alte Fassung. Immer dieselbe Struktur: was zählt, stand an einem Dienstag öffentlich da, und wenn es darauf ankommt, ist der Dienstag weg.

Zwei Zeugen, und warum sie nicht übereinstimmen dürfen

Also: zwei Maschinen. Eine steht in Deutschland, eine in Frankreich. Verschiedene Anbieter, verschiedene Netze, verschiedene Gebäude, verschiedene Rechtsordnungen innerhalb der EU. Dieselbe Software, aufgesetzt vom selben Skript, denn identische Konfiguration ist hier eine Bedingung und keine Bequemlichkeit. Jede Nacht um 03:00 UTC wachen beide auf und holen dieselben Dinge von denselben Domains.

Sie stimmen sich nicht ab. Sie vergleichen nichts miteinander. Jede speichert, was sie gesehen hat, bildet über ihren eigenen Tag einen Merkle-Baum und versiegelt diesen Tag um 23:50 mit ihrer eigenen Wurzel.

Und jetzt der Teil, der die Leute überrascht, und mein liebster am ganzen System: die beiden Tageswurzeln stimmen nie überein. Kein einziges Mal. Sie sollen es auch nicht.

Jeder Zeuge crawlt nach seinem eigenen Zeitplan und hat am Ende seine eigene Blattmenge. Wären die beiden Wurzeln je identisch, wäre das nicht beruhigend, sondern ein Warnzeichen, denn es hieße, die beiden Maschinen sind weniger getrennt, als ich behaupte. Die Übereinstimmung entsteht eine Ebene tiefer, bei der einzelnen Beobachtung: diese Domain, diese Datei, dieser Inhalts-Hash, von beiden festgehalten, Stunden auseinander. Zwei Parteien, die nie miteinander gesprochen haben und dasselbe über denselben Gegenstand sagen, sind etwas wert. Zwei Parteien, die eine bytegleiche Zusammenfassung produzieren, sind eine Prüfung wert.

Das dreht den üblichen Reflex um. Redundanz will Spiegelbilder. Ein Beweis will Unabhängigkeit, und Unabhängigkeit ist per Definition unordentlicher.

Um 03:00 UTC holen zwei unabhängige Zeugen, einer in Deutschland und einer in Frankreich, dieselben maschinenlesbaren Dateien und Seiten von denselben Domains. Jeder speichert getrennt, was er gesehen hat, und bildet seinen eigenen Merkle-Baum, dann versiegelt jeder um 23:50 seinen eigenen Tag mit seiner eigenen Wurzel. Jede Wurzel wird dreifach verankert. Die beiden Wurzeln unterscheiden sich konstruktionsbedingt, die Übereinstimmung zwischen den Zeugen wird stattdessen auf der Ebene einzelner Beobachtungen geprüft.

Das Siegel, und was meinen Zugriff verlässt

Eine Tageswurzel für sich ist nur eine Zahl, die ich aufgeschrieben habe. Interessant wird sie, wenn sie meine Hände verlässt, deshalb wird jede Wurzel in derselben Nacht dreifach verankert.

Ein Anker geht in OpenTimestamps und landet in der Bitcoin-Blockchain. Billig, öffentlich, in einer Verhandlung unangenehm zu erklären, still nicht umschreibbar.

Der zweite ist ein qualifizierter elektronischer Zeitstempel eines Vertrauensdiensteanbieters von der EU-Vertrauensliste. Das ist der, der Juristen interessiert, denn Artikel 41 Absatz 2 der eIDAS-Verordnung knüpft eine Vermutung daran: die Richtigkeit des angegebenen Datums und der angegebenen Uhrzeit sowie die Unversehrtheit der damit verbundenen Daten werden vermutet. Ich zitiere, ich lege nicht aus. Ob diese Vermutung gegen einen bestimmten Gegner etwas bringt, ist eine Frage für jemanden mit Zulassung, und die habe ich nicht.

Der dritte ist eine gewöhnliche öffentliche Spur, damit der Wert nachweislich an diesem Tag außerhalb meiner Maschinen existiert hat, lesbar ohne Spezialwerkzeug.

Das Prüfmaterial liegt absichtlich offen. Bis zum vergangenen August hatte ich Anker, die niemand mit Bordmitteln nachprüfen konnte, was die ganze Behauptung hohl machte. Heute kann ein Dritter die versiegelte Wurzel nehmen, den Zeitstempel-Token nehmen und beides mit openssl ts -verify gegen die veröffentlichte Kette prüfen. Eine Einzelheit, die man vorher wissen sollte: das Signaturzertifikat der Zeitstempelstelle läuft im Dezember 2027 ab, während der Beweis weiterträgt. Eine Prüfung nach diesem Datum braucht die Option -attime. Das ist eine Prüffrage, kein Ablaufdatum.

Ein Auszug enthält die gespeicherten Bytes einer Beobachtung zusammen mit ihrem Hash. Dieser Hash erscheint als Blatt im Merkle-Baum des Tages, aus dem die Tageswurzel entsteht. Dieselbe Wurzel steht im öffentlichen Wurzel-Log und ist in OpenTimestamps sowie in einem qualifizierten eIDAS-Zeitstempel verankert. Ein Dritter rechnet den Hash aus den Bytes nach, geht den Merkle-Pfad bis zur Wurzel, vergleicht sie mit der veröffentlichten Wurzel und prüft den Zeitstempel-Token mit gewöhnlichen Kommandozeilenwerkzeugen.

Was aufgezeichnet wird, und zu welchem Streit es gehört

Das Archiv zeichnet fünf Klassen von Dingen auf. Jede gibt es, weil ein bestimmter Streit immer wieder vorkommt. Hier hört das Abstrakte auf.

Die maschinenlesbaren Signale. robots.txt, ai.txt, der TDM-Vorbehalt, llms.txt, täglich geholt. Der Streit: ein KI-Anbieter sagt, der Vorbehalt war beim Crawl nicht da. Sie sagen, er war da. Aufgezeichnet auf beiden Seiten des fraglichen Datums, von zwei Maschinen, die einander nicht kennen, und in derselben Nacht versiegelt.

Eine Seite, heute, bevor sie sich ändert. Ein Anwalt sieht eine irreführende Angabe, eine fehlende Pflichtangabe, einen Preis, der gegen eine Vorschrift verstößt. Das Vorhersehbarste an dieser Lage ist, dass die Seite anders aussieht, sobald die Gegenseite antwortet. Üblich ist der Screenshot, also die eigene Aufzeichnung einer Partei von ihrem eigenen Bildschirm. Hier geht die URL in denselben Nachtlauf auf beiden Maschinen, und der Auszug für diesen Tag bringt die Bytes, die Antwort-Header, die TLS-Kette und die UTC-Zeit des Abrufs. Keine Pixel. Bytes. Wenn streitig ist, wie etwas aussah, ist das hier das falsche Werkzeug, und das steht auch so auf der Seite.

Benannte Seiten, täglich, solange es läuft. AGB, eine Preisliste, eine Pflichtinformation, eine Lizenzseite. Gestritten wird meist über die Fassung, die an einem bestimmten Tag galt, und die ehrliche Antwort braucht eine Reihe, keine Momentaufnahme.

Domain, DNS und Registry. Die RDAP-Antwort der Registry, die Antworten der autoritativen Nameserver und die Startseite. Das ist Domainstreit-Gebiet: wer hielt sie am Tag Y, wohin zeigte sie, was stand darauf. Bösgläubigkeit nach der UDRP wird über den Verlauf gezeigt, und diesen Verlauf stellt sich ein Beschwerdeführer heute selbst zusammen, aus dem, was er findet. Ein Markeninhaber kann auch Lookalike-Domains aufzeichnen lassen, bevor etwas passiert, denn nur so existiert der Verlauf in dem Moment, in dem sich herausstellt, dass man ihn braucht. Dasselbe Material beantwortet eine andere Frage für einen Cyber-Versicherer, der wissen will, wie Mail- und TLS-Konfiguration am Tag vor dem Vorfall aussahen und nicht nach dem Aufräumen.

Agenten-Endpunkte. Ein öffentlicher MCP-Endpunkt, täglich gefragt, welche Werkzeuge er erklärt, dazu die Agent Card daneben. Zwei entgegengesetzte Käufer, woran ich merke, dass der Streit echt ist. Der Betreiber, der belegen muss, dass sein Endpunkt das Werkzeug, das ein Agent angeblich benutzt hat, gar nicht erklärt hat. Und das Unternehmen, dessen Agenten an fremden Endpunkten hängen und das die stille Umdefinition eines Werkzeugs nach der Freigabe fürchtet. Einen Endpunkt zu fragen, was er kann, heißt ein POST zu schicken und nicht eine Datei zu holen, das ist eine andere Art von Crawl und brauchte einen eigenen Bau.

Plattform-AGB. Nach der P2B-Verordnung muss eine Plattform gewerblichen Nutzern Änderungen ihrer Bedingungen vorher ankündigen. Wer belegen will, dass eine Klausel ohne diese Ankündigung auftauchte, braucht eine tägliche Aufzeichnung von außen, von einer Seite, die niemand aufzuheben dachte.

Maschinenlesbare Signaldateien gehören zu Streit über KI-Training und Text-und-Data-Mining-Vorbehalte. Eine an einem bestimmten Tag erfasste Seite gehört zu Wettbewerbs- und Werbestreitigkeiten, bei denen die Seite nach der Abmahnung geändert wird. Täglich aufgezeichnete benannte Seiten gehören zu Streit darüber, welche Fassung von AGB oder Preisen an einem Tag galt. Registry-, DNS- und Startseiten-Aufzeichnungen gehören zu Domain- und Markenstreitigkeiten und zu Versicherungsfragen über die Konfiguration. Erklärungen von Agenten-Endpunkten gehören zu Haftungsfragen bei autonomen Systemen. Plattform-AGB gehören zur Pflicht, Änderungen gegenüber gewerblichen Nutzern vorher anzukündigen.

Zwei davon laufen heute. Einiges andere wird erst gebaut, wenn es wirklich jemand bestellt, und das sage ich lieber hier, als eine Preisliste ein Lager andeuten zu lassen. Das Aufzeichnen ist der Teil, den man nicht nachträglich herstellen kann, deshalb läuft er zuerst und alles andere hängt sich daran.

Aufgenommen werden und die Daten abfragen sind zwei verschiedene Dinge

Das ist die Unterscheidung, die am häufigsten durcheinandergeht, deshalb steht sie hier für sich.

Aufgenommen sein heißt: eine Domain wird jede Nacht geholt, und was sie gesagt hat, geht in das Siegel dieser Nacht ein. Das ist ein Dauerzustand. Es entsteht nichts zu lesen. Kein Dokument, kein Bericht, und an einem normalen Tag gibt es nichts anzusehen. Der ganze Zweck ist, dass das Material später existiert, ob es nun je jemand verlangt oder nicht.

Die Daten abfragen ist die Gegenbewegung. Etwas ist schiefgegangen, ein Datum ist streitig, und jemand braucht ein Dokument: die gespeicherten Bytes für eine bestimmte Domain und einen bestimmten Zeitraum, mit den Hashes, dem Merkle-Pfad, den Tageswurzeln, den Ankern und der Anleitung, das alles ohne mich nachzuprüfen. Das ist ein Auszug, er entsteht je Fall, und er kostet jedes Mal getrennt, auch beim zweiten Mal in derselben Sache Jahre später.

Zwei Folgen aus dieser Trennung, beide überraschen:

Links tritt eine Domain in die nächtliche Aufzeichnung ein, entweder weil jemand sie beantragt hat oder weil sie ohnehin im breiten Ring liegt. Jede Nacht holen beide Zeugen sie und versiegeln den Tag, wobei nichts Lesbares entsteht. Jahre später entsteht ein Streit über ein bestimmtes Datum, und erst dann wird ein Auszug für diese Domain und diesen Zeitraum erzeugt, der die Bytes, die Hashes, die Wurzeln, die Anker und die Prüfanleitung enthält. Jeder kann einen Auszug bestellen, auch die Gegenseite, zum selben Preis.

Die Lügen durch Weglassen, die sich ein Archiv nicht leisten darf

Hier könnte ein Archiv schummeln, ohne je einen falschen Satz zu schreiben.

Nicht jede Domain wird gleich aufgezeichnet. Rund 128.000 EU-Domains liegen im breiten Ring: ihre Signaldateien werden täglich geholt, die Startseite aber nur wöchentlich und in der Größe gekappt. Ein deutlich kleinerer Kernring bekommt alles, täglich, vollständig. Das ist die ehrliche Form eines Systems, das aus einer einzigen Tasche bezahlt wird. Der breite Ring ist genau deshalb billig, weil er weniger tut.

Daraus wird eine Falle. Man stelle sich einen Auszug vor, bestellt für einen echten Streit, der eine Seite liefert, die sechs Tage vor dem entscheidenden Datum erfasst wurde, oder eine an einer Größengrenze abgeschnittene Datei, und der keines von beidem erwähnt. Er sähe vollständig aus. Er läse sich verbindlich. Es wäre das Schlimmste, was dieses Archiv tun kann, schlimmer als eine offene Lücke, denn mit einer Lücke kann man arbeiten, mit einer verschwiegenen nicht.

Seit dieser Woche sagt deshalb jeder Auszug auf seiner ersten Seite, vor jedem Prüfschritt: in welchem Ring die Domain lag, welche Kadenz galt, ob eine Kappe griff, wie viele Bytes gespeichert wurden und wie viele der Server geliefert hat. Dazu zwei Regeln, die mich eine Überarbeitung gekostet haben:

Dieselbe Disziplin gilt für die eigene Geschichte des Systems. Der zweite Zeuge läuft erst seit dem 4. August 2026. Alles vom 22. Juli bis zum 3. August ist dauerhaft nur einfach bezeugt, und das öffentliche Log weist es Tag für Tag aus. Doppelte Bezeugung lässt sich nicht nachrüsten, weil sie eine Eigenschaft der Vergangenheit ist und nicht der Software. Ein Tag, der 3. August, wurde mitten im Siegeln vom OOM-Killer des Kernels abgeräumt und erst zwei Tage später versiegelt. Dieser Tag trägt dauerhaft ein Kennzeichen, das genau das sagt. Ich hätte ihn still neu versiegeln können. Genau deshalb habe ich es nicht getan.

Was es bewusst nicht tut

Es benachrichtigt niemanden, wenn sich eine Seite ändert. Auch dann nicht, wenn Kunden danach fragen, und sie fragen. In dem Moment, in dem ich einer Seite sage, dass sich etwas bewegt hat, habe ich eine Seite gewählt.

Es bewertet, benotet und vergleicht niemanden. Es gibt keine öffentliche Volltextsuche über das gesammelte Material, was keine Produktentscheidung ist, sondern aus meiner eigenen Interessenabwägung folgt: im öffentlichen Interesse aufzuzeichnen ist das eine, das Rohmaterial erneut zu veröffentlichen etwas anderes.

Und es sagt niemandem, was das alles für ihn bedeutet. Ich schreibe Software, die festhält, was eine Maschine zu einem Zeitpunkt gesehen hat, und die jeden nachrechnen lässt. Ob das vor einem Gericht, einer Behörde oder einem Gegner trägt, ist eine Frage für einen Anwalt, und ich bin froh darüber, denn das ist ein anderer Beruf mit einer anderen Prüfung.

Prämie und Schadensfall

Die kaufmännische Logik habe ich länger gebraucht zu akzeptieren, als ich zugeben möchte. Die Aufzeichnung ist die Prämie. Der Auszug, Jahre später, wenn jemand behauptet, Ihre Seite habe etwas gesagt, was sie nicht gesagt hat, ist der Schadensfall.

Die meisten, die zahlen, werden nie etwas bestellen. Das ist kein Fehler im Modell, das ist das Modell.

Womit wir wieder beim ersten Absatz sind. Ich habe zwei Maschinen in zwei Ländern gebaut, damit meine eigene Ehrlichkeit aufhört, tragend zu sein. Das richtige Maß an Vertrauen in mich ist an dieser Stelle: keines. Das ist die Funktion, nicht der Mangel.

Wer wissen will, ob eine Domain bereits aufgezeichnet wird, bekommt das über die Abdeckungsprüfung auf machinewitness.eu kostenlos beantwortet, und das tägliche Wurzel-Log ist öffentlich. Wer zu den Menschen gehört, die erst die Prüfanleitung lesen und dann glauben: gut. Für die ist das gebaut.

← Alle Artikel