machinewitness

Materiał źródłowy

Co przechowujemy o domenie

Napisane dla adwokatów, radców prawnych i inspektorów ochrony danych. Każde pojęcie techniczne jest wyjaśnione tam, gdzie pojawia się po raz pierwszy.

Ta strona odpowiada w całości na jedno pytanie: jeżeli MachineWitness obserwuje domenę, co dokładnie trafia do archiwum? Nie streszczenie, lecz same pola. Prześledzimy jeden przykład, beispielfirma.example, od chwili połączenia naszego obserwatora aż do momentu, w którym sąd mógłby zweryfikować zapis po latach.

Zanim pobierzemy którykolwiek z poniższych plików, odczytujemy robots.txt danej domeny i stosujemy się do niego. Jeżeli nakazuje nam nie pobierać pliku, nie pobieramy go, a zapis to odnotowuje: obserwacja z tego dnia jest zapisywana jako disallowed_by_robots, z pochodzeniem policy: robots_respected, zamiast odpowiedzi. To inne stwierdzenie niż w przypadku serwera, który nie odpowiedział, i archiwum rozdziela oba przypadki. 10 sierpnia 2026 r. dotyczyło to około 14 000 spośród 128 347 domen w pierścieniu, w odniesieniu do trzech plików innych niż sam robots.txt. Moglibyśmy je mimo to pobrać (są publiczne), a tego nie robimy. Również sposób odczytu robots.txt jest datowany: do 8 września 2026 r. obaj świadkowie interpretowali go przy użyciu urllib.robotparser z Pythona, starszego niż RFC 9309; świadek 2 odczytuje go zgodnie z RFC 9309 (protego) od 9 września 2026 r., świadek 1 od 11 września 2026 r. Oba analizatory różnią się wyłącznie w przypadkach granicznych (znaki wieloznaczne, pierwszeństwo najdłuższego dopasowania); zapisany plik jest w obu wypadkach ten sam, różnić się może jedynie decyzja, czy w tych dniach pobrać pozostałe pliki.

Dwie uwagi warto poczynić przed szczegółami. Po pierwsze, pobieramy wyłącznie to, co każda przeglądarka może pobrać bez logowania: garść niewielkich plików polityki, które serwis publikuje z myślą o maszynach. Nie przeszukujemy treści stron, nie podążamy za odnośnikami w głąb aplikacji i nie zapisujemy niczego o osobach odwiedzających serwis. Po drugie, nic z tego nie jest tajne. Wartość tego archiwum nie polega na tym, co zawiera, bo każdy mógłby to dziś pobrać samodzielnie; polega na tym, że mieliśmy to w określonej dacie przeszłej i możemy udowodnić, że zapis nie został od tamtej pory zmieniony.

1. Co pobieramy z jednej domeny

Pięć żądań. Nic więcej, nigdy, w odniesieniu do domeny z naszego pierścienia szerokiego.

ZasóbCzym jest i dlaczego ma znaczenie prawne
/robots.txt Najstarszy czytelny dla maszyn plik instrukcji w sieci. Wskazuje wymienionym z nazwy robotom, które części serwisu mogą pobierać. Ponieważ przedsiębiorstwa AI publikują nazwy swoich robotów (GPTBot, ClaudeBot, Google-Extended i inne), to właśnie w tym pliku większość serwisów wyraża albo nie wyraża sprzeciwu wobec trenowania modeli AI.
/ai.txt Nowsza konwencja, właściwa dla AI, służąca temu samemu celowi. Nie jest jeszcze znormalizowana, i właśnie dlatego jej obecność lub brak w danej dacie może być później kwestionowana.
/.well-known/tdmrep.json Formalne, czytelne dla maszyn zastrzeżenie praw do eksploracji tekstów i danych (TDM Reservation Protocol, W3C). Zgodnie z art. 4 ust. 3 unijnej dyrektywy o prawie autorskim na jednolitym rynku cyfrowym zastrzeżenie uprawnionego jest skuteczne tylko wtedy, gdy nadaje się do odczytu maszynowego; Wyższy Sąd Krajowy w Hamburgu potwierdził w grudniu 2025 r., że same postanowienia sformułowane w języku naturalnym nie wystarczają. Ten plik jest najczystszym sposobem złożenia takiego zastrzeżenia.
/llms.txt Powstająca konwencja adresowana wprost do dużych modeli językowych.
/ (strona główna) Pobierana wyłącznie ze względu na nagłówki odpowiedzi i pierwsze kilobajty, nigdy w całości. Niektóre serwisy wyrażają swoje zastrzeżenie w nagłówku HTTP albo w znaczniku meta, a nie w pliku.

Każda odpowiedź podlega sztywnemu limitowi bajtów. Pliki te mają zwykle kilka kilobajtów; limit istnieje po to, by błędnie skonfigurowany serwer nie mógł skłonić nas do pobrania czegoś dużego.

Zmiana metody, obowiązująca od 3 sierpnia 2026 r.

Od tego dnia archiwum stosuje poniższe reguły. Są tu wypowiedziane, a nie pozostawione domyślne, ponieważ zmiana metody zmienia to, co zapis z danej daty pozwala udowodnić. Nic sprzed 3 sierpnia 2026 r. nie zostało zmienione; wcześniejsze dni zachowują metodę obowiązującą w chwili ich opieczętowania.

Dwa pierścienie. Reguły różnią się między niewielkim pierścieniem podstawowym a rozległym pierścieniem szerokim. Pierścień szeroki jest wyznaczony przez ogłoszone kryterium, a nie przez dobór: wszystkie domeny unijne z listy Tranco pierwszego miliona, w brzmieniu pobranym 2 sierpnia 2026 r. Pierścień podstawowy to znacznie węższy zbiór domen obserwowanych uważniej. Jest zestawiany ręcznie i nie publikujemy jeszcze jego kryteriów, należy go więc czytać jako dobór roboczy, a nie jako kurowany rejestr.

Zmiana metody, obowiązująca od 17 września 2026 r.

Od tego dnia zapis rośnie w trzech miejscach. Jak dotąd, nic wcześniejszego nie zostało zmienione: dni sprzed 17 września 2026 r. zachowują metodę obowiązującą w chwili ich opieczętowania. Pierwsze pobranie w nowym zakresie rozpoczęło się 17 września 2026 r. o 03:00 UTC.

Pierścień podstawowy ma teraz ogłoszone kryterium. Do 16 września 2026 r. był doborem roboczym 115 domen, zestawionym ręcznie. Od 17 września obejmuje 1133 domeny, złożone następująco: 1057 domen organizacji w UE, które publikują, ujętych w Wikidanych z działającą stroną, czy to gazet i serwisów informacyjnych, nadawców, wydawców książek, agencji prasowych i fotograficznych czy organizacji zbiorowego zarządzania, i których strona nosiła zarazem sygnał skierowany do robotów AI, który już wcześniej zaobserwowaliśmy: regułę dla nazwanego bota AI w pliku robots.txt albo nagłówek Content-Signal. Leżą w 26 państwach członkowskich. Dochodzą do nich: 43 kolejnych wydawców ujętych w Wikidanych, którzy byli w pierścieniu już wcześniej i nie noszą takiego sygnału; 14 domen zachowanych z wcześniejszego doboru z podanym powodem; 4 domeny, które noszą taki sygnał, lecz nie mają wpisu w Wikidanych; oraz 15 domen własnej firmy operatora, prowadzonych jako seria kontrolna, a nie ukrywanych. Dla każdej domeny podstawowej zapis podaje teraz organizację, jej kraj i jej identyfikator Wikidanych. Tam, gdzie Wikidane przypisują domenę więcej niż jednej organizacji, przyjęto najkrótszą etykietę, a wpis oznaczono jako nierozstrzygnięty (61 domen), do poprawienia w toku kuracji; samej domeny to nie dotyczy. Reguły pierścienia podstawowego z 3 sierpnia 2026 r., strona główna codziennie i bez limitu bajtów, obowiązują dla wszystkich od 17 września. Pierścień szeroki pozostaje bez zmian. Jedną domenę własnej firmy operatora, która nie rozwiązuje się już w DNS, wycofano z pierścienia tego samego dnia, a trzy inne dodano; manifest pierścienia z tej daty wymienia każdą domenę wraz z jej pierścieniem.

Oświadczenia operatorów. Dla każdego z 13 operatorów robotów (AI2, Amazon, Anthropic, Apple, Cohere, Common Crawl, Diffbot, DuckDuckGo, Google, Microsoft, Mistral, OpenAI, Perplexity) oświadczenia, które operator sam publikuje o swoich robotach, strona dokumentacji i opublikowane zakresy adresów IP (JSON), są pobierane codziennie, bez limitu bajtów, i haszowane, pieczętowane i kotwiczone jak każdy inny artefakt: 26 adresów. Nie sprawdzamy, czy jakikolwiek dostęp rzeczywiście nastąpił z tych zakresów; poświadczane jest wyłącznie to, co operator oświadczył w dniu T. Tam, gdzie istniało przekierowanie, zapisywany jest jego cel, aby pochodzenie odnosiło się do dokumentu, a nie do przekierowania. Pominięte, z podanym powodem: strony, które nie dostarczają nic klientowi bez przeglądarki (dokumentacja robotów Meta), bo pusta powłoka niczego nie dowodzi.

Oświadczenia dostawców. Tym samym mechanizmem opublikowane zasady użytkowania, warunki i zasady dotyczące robotów 12 z tych operatorów (AI2, Amazon, Anthropic, Apple, Cohere, Common Crawl, Diffbot, DuckDuckGo, Google, Meta, Microsoft, Mistral): 32 adresy, codziennie, bez limitu bajtów. Dwaj operatorzy, OpenAI i Perplexity, nie dostarczają tych stron klientowi, który nie jest przeglądarką; ich warunków nie ma zatem w zapisie i mówimy to tutaj, zamiast wypełniać lukę innymi środkami. Razem stanowią one odpowiednik plików zastrzeżeń: co serwis zastrzegł w dniu T i co operator tego samego dnia oświadczył o własnym postępowaniu. Niczego nie oceniamy: zapis przechowuje tekst, a nie osąd o nim.

2. Co zawiera jedna obserwacja

Obserwacja to jeden zapis jednego zasobu w jednej chwili. Oto pełna obserwacja dla naszej przykładowej domeny, w postaci, w jakiej archiwum ją przechowuje.

Sama treść

GET https://beispielfirma.example/robots.txt
→ HTTP 200, 412 bajtów

User-agent: *
Allow: /

User-agent: GPTBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Google-Extended
Disallow: /

Dokładne bajty wysłane przez serwer, przechowywane bez zmian i skompresowane. Nie nasze streszczenie ani rendering: bajty. W sporze pytanie nigdy nie brzmi „co zawiera plik", lecz „co zawierał 14 sierpnia 2027 r.".

Skrót

payload_sha256 = 9f2a41d7c8e05b3a…7d1e6084bb93c2f5
payload_size   = 412 bajtów

Skrót SHA-256 (hash) to krótki kod o stałej długości, obliczony z dokładnych bajtów pliku. Wystarczy zmienić jeden znak, a kod zmienia się całkowicie, i praktycznie niemożliwe jest skonstruowanie innego pliku o tym samym kodzie. Działa jak odcisk palca określonej wersji dokumentu. Jest zarazem sygnaturą: treść przechowywana jest pod własnym skrótem, nic więc nie da się podmienić bez tego, by etykieta przestała pasować.

Okoliczności doręczenia

observed_at   = 2027-08-14 03:00:11 UTC
observer_id   = witness-1
status_code   = 200
final_url     = https://www.beispielfirma.example/robots.txt   (po przekierowaniu)
http_version  = HTTP/1.1
headers       = content-type: text/plain; charset=UTF-8
                cache-control: max-age=600
                x-served-by: cache-fra-…
                (pełne nagłówki odpowiedzi, dosłownie)
tls_version   = TLSv1.3
peer_cert     = subject:  *.beispielfirma.example
                issuer:   GlobalSign Atlas R3 DV TLS CA
                valid:    2027-06-01 → 2028-06-01
                sha256:   3b8c07f2ad91…e5240ac71f6b88
                (skrót certyfikatu serwera
                 oraz pięć powyższych pól)
peer_cert_chain = 3b8c07f2ad91…e5240ac71f6b88   (certyfikat serwera)
                6f1d0ba47c33…9a7e1c40db2f51   (pośredni)
                c04e83fa1d67…2b95e7708aa361   (pośredni)
                (łańcuch w takiej postaci, w jakiej doręczył go
                 serwer, w tej kolejności; każdy certyfikat w całości)
observer_addr = adres IP, z którego połączył się nasz obserwator
peer_addr     = adres IP, który odpowiedział

To, co prawnicy nazywają łańcuchem opieki nad dowodem: nie po prostu „ten plik istniał", lecz „ten serwer, okazując ten certyfikat TLS, doręczył te bajty temu obserwatorowi w tej chwili". Certyfikat TLS ma znaczenie, ponieważ wiąże doręczenie z podmiotem zdolnym uzyskać certyfikat dla tej domeny. Całość jest pieczętowana razem z treścią, żadnej części nie da się więc później podmienić.

Co dokładnie jest tu zapisywane, a co nie. Od 15 września 2026 r. przechowujemy pełny łańcuch certyfikatów w takiej postaci, w jakiej doręcza go serwer: certyfikat serwera oraz przesłane wraz z nim certyfikaty pośrednie, każdy w całości, ze skrótami zapisanymi w kolejności ich nadejścia. Nie jest to łańcuch odtworzony wobec naszego własnego magazynu zaufania: świadek zapisuje to, co zostało doręczone, a czy ten łańcuch jest prawidłowy, to pytanie biegłego, nie nasze. Obok nadal zapisujemy skrót SHA-256 certyfikatu serwera oraz pięć wskazanych wyżej pól.

Zmiana nie działa wstecz. Dla obserwacji sprzed 15 września 2026 r. istnieje wyłącznie skrót, nie certyfikat; gdy sam certyfikat jest potrzebny, zwykle można go uzyskać niezależnie z publicznych rejestrów przejrzystości certyfikatów (RFC 6962), tej samej infrastruktury kontrolnej, na której opierają się przeglądarki. Starsze zapisy zachowują stan, jaki miały wówczas, i nic nie jest uzupełniane po fakcie. To wypełnia zobowiązanie, które ta strona nosiła od 1 sierpnia 2026 r.

Znacznik zmiany

changed = true   (skrót różni się od poprzedniej obserwacji)

Ustawiany, gdy dzisiejszy skrót różni się od wczorajszego dla tego samego zasobu. To racja istnienia tego archiwum: pliki te zmieniają się po cichu, bez publicznej historii, a sama zmiana bywa okolicznością sporną.

3. Jak wygląda brak pliku

Zapis, że „nic tam nie było", też jest dowodem, i sporządza się go z taką samą starannością jak zapis treści. Jeżeli nasza przykładowa domena nie udostępnia żadnego ai.txt:

GET https://beispielfirma.example/ai.txt
→ HTTP 404, nie zapisano żadnej treści
   status, pełne nagłówki, skrót treści oraz
   szczegóły TLS zapisane jak wyżej

To rozróżnienie ma realną wagę. „Serwis nie opublikował do tej daty żadnego czytelnego dla maszyn zastrzeżenia wobec AI" bywa okolicznością rozstrzygającą w sporze o eksplorację tekstów i danych, a wykazać to może wyłącznie ktoś, kto sprawdził i zanotował, że niczego nie znalazł. Dwa dalsze przypadki są zapisywane równie wyraźnie: serwer, który odmawia naszemu obserwatorowi (HTTP 403), daje zapis odmowy, nie treści; a zasób, którego robots.txt serwisu każe nam nie pobierać, jest zapisywany jako celowo niepobrany. Stosujemy się do tego wskazania i odnotowujemy, że tak zrobiliśmy.

4. Jak zapis jest pieczętowany

Archiwum prowadzone przez zainteresowaną stronę samo w sobie niewiele dowodzi: co do zasady moglibyśmy przepisać własną bazę danych. Na ten zarzut odpowiadają cztery kroki, każdy niezależny od pozostałych.

Krok 1 · tego samego dnia

Wszystkie obserwacje dnia zostają związane w jedną wartość

Wszystkie skróty zapisane tego dnia są łączone parami, poziom po poziomie, aż pozostanie jeden korzeń dzienny, zależny od każdego zapisu poniżej. Zmieńcie potem choćby jedną obserwację, a korzeń przestanie się zgadzać. To ta sama konstrukcja, z której korzystają publiczne rejestry używane przez przeglądarki do kontroli certyfikatów TLS (RFC 6962).

Krok 2 · złożony tego samego dnia

Ta wartość zostaje złożona poza naszym zasięgiem

Korzeń dzienny jest tego samego dnia przesyłany do OpenTimestamps, które agreguje go w kierunku łańcucha bloków Bitcoin, oraz odrębnie do niezależnego urzędu znacznika czasu zgodnego z RFC 3161, który natychmiast zwraca podpisany token. Od 31 lipca 2026 r. uzyskiwany jest dodatkowo kwalifikowany elektroniczny znacznik czasu w rozumieniu eIDAS. Żadnego z nich nie możemy przepisać. To właśnie podnosi pieczęć z wewnętrznego twierdzenia do zewnętrznego dowodu: wykazuje, że zapis istniał najpóźniej tego dnia.

Stan zakotwiczenia w Bitcoin: ukończone 7 sierpnia 2026 r. Oba urzędy znacznika czasu zwracają swój dowód natychmiast, a te tokeny są przechowywane tutaj. OpenTimestamps działa w dwóch etapach: korzeń jest przesyłany od razu, ale otrzymane poświadczenie staje się samodzielne dopiero po wprowadzeniu do niego potwierdzenia z Bitcoina. Do 7 sierpnia 2026 r. nie wykonaliśmy tego drugiego kroku, a wcześniejsza wersja tego akapitu to stwierdzała. Obecnie został on wykonany dla każdego opieczętowanego dnia u obu świadków, a od tego czasu zajmuje się tym codzienne zadanie, dzięki czemu przechowywane tu poświadczenia odsyłają do nagłówków bloków Bitcoina, a nie do serwerów kalendarzowych. Krok ten zmienił poświadczenia, ale nie to, co poświadczają: skrót, którego każde poświadczenie dotyczy, został odnotowany przed i po i jest dla każdego dnia niezmieniony. Ścieżka Bitcoina nie zależy już od dostępności tych serwerów kalendarzowych. Zakotwiczenia RFC 3161 i kwalifikowane eIDAS pozostały nietknięte i bronią się same.

Krok 3 · tego samego dnia

Korzeń zostaje opublikowany

Każdy korzeń dzienny pojawia się w naszym publicznym rejestrze korzeni, pod stabilnymi adresami i w postaci czytelnej dla maszyn. Każdy może zachować własną kopię w dniu publikacji; kilka systemów zewnętrznych pobiera ją automatycznie.

Krok 4 · działa od 2026-08-04

Drugi, niezależny świadek obserwuje te same cele

Odrębny system, na innej infrastrukturze w innym kraju i z innym kluczem operatora, zapisuje niezależnie i publikuje własny korzeń dzienny. Żadna z maszyn nie dysponuje poświadczeniami dostępu do drugiej i żadna nie może zapisywać w bazie tej drugiej. Dwie relacje prowadzone niezależnie trudniej zakwestionować niż jednego świadka powtarzającego samego siebie.

Dwa ograniczenia, powiedziane wprost. Po pierwsze, zaczęło się to 4 sierpnia 2026 r.: każdy dzień opieczętowany od 22 lipca do 3 sierpnia 2026 r. opiera się wyłącznie na pierwszym świadku, a rejestr publiczny pokazuje tę lukę, zamiast ją ukrywać. Po drugie, oba korzenie dzienne nigdy nie są identyczne, z samej konstrukcji: każdy świadek prowadzi skanowanie według własnego harmonogramu, zbiór obserwacji stojących za każdym korzeniem jest więc inny. Porównania dokonuje się zatem obserwacja po obserwacji, a nie przez sprawdzenie, czy dwa korzenie się zgadzają; identyczne korzenie wskazywałyby raczej, że oba systemy nie są niezależne.

5. Co zawiera wyciąg dowodowy

Archiwum celowo nie jest do przeglądania. Tym, co wydajemy na wniosek, dla określonej domeny i określonego okresu, jest wyciąg dowodowy: pakiet zawierający

Sens ostatniego punktu warto powiedzieć wprost: wyciąg jest pomyślany tak, aby zweryfikować go mógł biegły strony przeciwnej. Zapis, który może sprawdzić tylko jedna strona, nie jest dowodem.

Jak go zamówić, na jakich warunkach jest wydawany i ile kosztuje, przedstawia strona wyciąg dowodowy. Czy archiwum w ogóle obserwuje daną domenę, można sprawdzić wcześniej i bezpłatnie za pomocą sprawdzenia zasięgu.

6. Jeżeli ktoś zażąda usunięcia

Większość tego, co przechowujemy, nie zawiera danych osobowych: to techniczne pliki polityki publikowane przez organizacje. Jeżeli uzasadniony wniosek o usunięcie na podstawie art. 17 RODO rzeczywiście dotyczy zarchiwizowanej treści, wykonujemy to, co nazywamy znacznikiem usunięcia: przechowywana treść zostaje skasowana i zastąpiona znacznikiem. Usunięte znaczy usunięte, i żadna kopia zapasowa tego nie przywraca.

Pozostaje skrót, pieczęć i dowody. Konsekwencję warto zrozumieć dokładnie: odtąd nikt nie może ustalić, co zawierał plik, ale nadal da się udowodnić, że plik o dokładnie tym skrócie znajdował się pod tym adresem w tej dacie i że otaczające zapisy z tego dnia pozostały nienaruszone. Zachowanie skrótu opiera się na art. 17 ust. 3 lit. e RODO, ponieważ jego usunięcie przerwałoby łańcuch dowodowy wszystkich pozostałych obserwacji opieczętowanych tego dnia, w tym należących do niezwiązanych osób trzecich.

Na wniosek wyłączamy również domenę z wszelkiej przyszłej obserwacji, z usunięciem lub bez. Oba działania są bezpłatne i żadne nie wymaga uzasadnienia. Przy wyłączeniu prosimy jednak o wykazanie, że mają Państwo kontrolę nad domeną: rekord DNS TXT albo plik pod wskazaną przez nas ścieżką, zależnie od tego, co wygodniejsze. Nie dlatego, że wniosek wymaga uzasadnienia, lecz dlatego, że wyłączenie zażądane przez kogoś innego usunęłoby domenę z rejestru bez wiedzy jej operatora. Usunięcie na podstawie art. 17 RODO nie obejmuje tego kroku: tam prosimy o identyfikację wyłącznie w razie rzeczywistej wątpliwości. Zob. Prywatność oraz Robot i kontakt.

7. Czego ten zapis nie dowodzi

Precyzyjne wskazanie granic należy do rzetelności świadka.

Jesteśmy czarną skrzynką, nie śledczym. Co zapis oznacza, rozstrzygać będą inni.

Powyższy przykład jest skonstruowany na potrzeby ilustracji. Wyciąg oparty na rzeczywistej domenie, weryfikowalny wobec publicznego rejestru korzeni, zostanie dodany, gdy ta domena zgromadzi znaczącą historię obserwacji.