Obraz powstaje na twoim laptopie, a numer wtopiony w jego piksele przychodzi z serwera Microsoftu. Xusheng Li rozłożył na części bibliotekę Watermarker.dll z Painta i aplikacji Zdjęcia, a potem opisał cały ten obieg. Zanim program cokolwiek narysuje, wysyła twój opis obrazu do moderacji. W odpowiedzi dostaje GUID, czyli niepowtarzalny numer przypisany do tego jednego polecenia. Numer ląduje w pikselach jako niewidzialny znak wodny. Dzieje się to również na komputerach Copilot+, gdzie sam rysunek powstaje na układzie NPU w laptopie.
Co Paint wysyła na serwer, zanim narysuje obraz
Paint ma funkcję dorysowującą obraz na podstawie opisu wpisanego przez użytkownika. Li prześledził, co dzieje się między wpisaniem tego opisu a pojawieniem się obrazka na ekranie. Program odzywa się najpierw do końcówki moderacji w chmurze Microsoftu. Ta odsyła poprawioną wersję opisu oraz pole watermarkId, w którym siedzi szesnastobajtowy GUID.
Ten numer trafia w dwa miejsca naraz. Paint wpisuje go w same piksele, a tę samą wartość zapisuje w podpisanym manifeście C2PA w metadanych pliku. Li stwierdza to wprost: identyfikator z serwera, wartość wtopiona w obraz i pole w manifeście to jedna i ta sama liczba dla danego generowania. Biblioteka dokłada do niej sumę kontrolną i rozsypuje całość po obrazie tak, żeby każdy bit powtórzył się przynajmniej trzy razy. W obrazie o boku 512 pikseli zmienia to ponad 193 tysiące punktów z 262 tysięcy. Zobaczyć tego nie sposób, bo zmiany dobierane są do treści konkretnego obrazu i chowają się w jego fakturze.
Znakowanie włącza się od rozmiaru 192 na 192 piksele. C2PA jest przy tym otwartym standardem opisywania pochodzenia pliku, tym samym, o którym pisaliśmy przy znaku wodnym w tekstach Claude’a. Inna firma, inne medium, ta sama logika oznaczania treści u samego źródła.
Na komputerze Copilot+ obraz powstaje lokalnie, a numer i tak przychodzi z sieci
Komputery Copilot+ sprzedaje się obietnicą AI działającej na urządzeniu. Przy generowaniu obrazu w Paincie tak właśnie jest. Model liczy na układzie NPU w laptopie, a obliczenia nie jadą do chmury. Sam opis obrazu wychodzi jednak na zewnątrz. Bez odpowiedzi z moderacji nie ma identyfikatora, a bez identyfikatora program nie zaczyna rysować.
Li sprawdził cztery funkcje w obu programach: Cocreator i Image Creator w Paincie oraz Image Creator i Restyle Image w Zdjęciach. Trzy z nich generują obraz lokalnie, a jedna w chmurze. Identyfikator z tej samej zdalnej moderacji dostają wszystkie.
Li zapisuje to jednym zdaniem. Funkcja wymaga konta Microsoft oraz połączenia z internetem, mimo że całe wnioskowanie odbywa się na urządzeniu. Lokalne generowanie dotyczy tu wyłącznie obliczeń. Opis i tak trafia na serwer, zanim padnie pierwszy piksel.
Do tego dochodzi szczegół, który łatwo przeoczyć w opisie protokołu. Przy kolejnym żądaniu Paint dokłada identyfikator poprzedniego, w polu lastPromptGenerationId. Kolejne podejścia do tego samego obrazka są więc jawnie spięte w ciąg. Kto poprawiał opis pięć razy, zanim dostał to, o co mu chodziło, zostawił po sobie pięć powiązanych ze sobą żądań.
Czego to badanie nie dowodzi, choć nagłówki mówią inaczej
The Register opisał sprawę 25 sierpnia pod nagłówkiem mówiącym, że znaki wodne Microsoftu są powiązane z identyfikatorami użytkowników. Zdanie w treści brzmi ostrożniej. Jeśli Microsoft kojarzy każde polecenie z osobą, która je wysłała, to mógłby teoretycznie rozpoznać użytkownika po znaku wodnym w obrazie. Odległość między tym nagłówkiem a tym zdaniem jest tutaj całym tematem.
Sam Li nie idzie tak daleko. Pisze, że serwer przypisuje obie wartości podczas moderacji, więc jest w stanie skojarzyć żądanie podpisu ze znakiem obecnym już w pikselach. To mówi o powiązaniu polecenia z obrazem, a nie osoby z obrazem.
Warto rozdzielić dwie rzeczy, bo w każdej dyskusji o tej sprawie się zlewają. Techniczne warunki powiązania są spełnione. Żądanie wychodzi z zalogowanego konta Microsoft, identyfikator dotyczy jednego polecenia, a kolejne polecenia są jawnie łączone w ciąg. Brakuje dowodu, że Microsoft to powiązanie przechowuje albo z niego korzysta. Li szukał firmowego wyjaśnienia dla serwerowego GUID-a i takiego wyjaśnienia nie znalazł, choć samą obecność metadanych C2PA Microsoft opisuje w dokumentacji. Microsoft nie odpowiedział Registerowi na prośbę o komentarz.
Pierwsza Misja AI · Kodożercy
Używasz AI codziennie, ale czy robisz to dobrze?
Kurs Pierwsza Misja AI pokaże Ci techniki promptowania, które naprawdę działają. Praktyczne ćwiczenia na żywym modelu, gamifikacja i certyfikat.
Sprawdź program kursu →

Artykuł 50 aktu o AI wymaga oznaczania, ale nie takiego oznaczania
Artykuł 50 aktu o AI wymaga, żeby treść wytworzona przez system sztucznej inteligencji niosła oznaczenie w formacie nadającym się do odczytu maszynowego. Przepis obowiązuje od 2 sierpnia 2026. Dostawcy systemów generatywnych obecnych na rynku wcześniej dostali na dostosowanie czas do 2 grudnia 2026, co wprowadziła lipcowa nowelizacja aktu. Mechanizm opisany przez Li działa już dziś, czyli przed upływem tego terminu.
Sam przepis zostawia dostawcy wybór drogi i wymienia metadane, cyfrowy znak wodny oraz rozwiązania kryptograficzne. Li po ten artykuł sięga i stawia przy nim zastrzeżenie: obowiązek dotyczy oznaczenia treści, a nie numeru przypisanego do konkretnego polecenia.
Dlaczego Microsoft wybrał akurat numer wystawiany przez serwer, nie wiadomo. Firma tego nie wytłumaczyła, a przypisywanie jej motywu byłoby zgadywaniem. Sprawdzalne jest co innego. Li nie znalazł w dokumentacji Microsoftu wyjaśnienia, że ten identyfikator pochodzi z moderacji jednego polecenia i ląduje również w pikselach.
Polski czytelnik ma tu dwa praktyczne wątki. Pierwszy jest banalny. Windows stoi na większości biurek w kraju, a Paint siedzi w nim od zawsze. Nikt nie traktuje go jak usługi sieciowej. Drugi dotyczy pracy. Grafika zrobiona służbowo niesie identyfikator wystawiony przy żądaniu z konkretnego konta. Jak daleko sięgają tego konsekwencje, zależy od rzeczy, której nie wiemy. Podobne pytanie o odpowiedzialność za dane zbierane przy okazji zwyczajnego używania sprzętu stawiał niedawno UODO przy inteligentnych okularach.
Co da się z tym zrobić dzisiaj, a czego nie da się nawet sprawdzić
Manifest C2PA jest jawny i da się go odczytać. Paint zapisuje obrazy w formatach zachowujących te metadane, a ich zawartość pokaże narzędzie do inspekcji manifestów C2PA. Zobaczysz tam podpisaną informację o pochodzeniu pliku.
Gorzej z samymi pikselami. Wpis Xushenga Li nie pokazuje użytkownikowi sposobu odczytania identyfikatora bezpośrednio z obrazu ani gotowego narzędzia, które by to robiło. Nie sprawdza też trwałości znaku, więc nie wiadomo, co się z nim dzieje po przeskalowaniu obrazu, przekodowaniu czy zrobieniu zrzutu ekranu. Kto twierdzi, że znak przetrwa wszystko albo że pozbywa się go jednym zrzutem, mówi więcej, niż ktokolwiek sprawdził.
Pewność daje jedna rzecz i jest ona nudna. Obraz, który nie ma nieść identyfikatora z serwera, nie powinien powstać w Paincie ani w Zdjęciach. Badane funkcje nie działają w pełni offline, bo wymagają konta Microsoft i połączenia z siecią. Badanie Li nie rozstrzyga, czy Windows oferuje jakikolwiek wariant generowania obrazu działający całkowicie bez sieci.
Podsumowanie
Mechanizm jest udokumentowany dobrze i szczegółowo. Paint oraz aplikacja Zdjęcia wysyłają opis obrazu na serwer moderacji i dostają stamtąd niepowtarzalny numer przypisany do tego polecenia. Numer wtapiają w piksele jako niewidzialny znak wodny. Na komputerach Copilot+ dzieje się to mimo tego, że sam obraz powstaje na układzie w laptopie. Funkcja i tak wymaga konta Microsoft oraz internetu. Wszystko powyżej daje się sprawdzić w kodzie. Powiązania między numerem a osobą nikt dotąd nie wykazał, choć nagłówki potrafią sugerować inaczej. Warto trzymać te dwie warstwy osobno, bo pierwsza jest ustaleniem, a druga hipotezą, którą wyjaśnić może wyłącznie sam Microsoft.
Newsletter · DevstockAcademy & Kodożercy
Bądź na bieżąco ze światem IT, AI i automatyzacji
Co wtorek: newsy z branży, praktyczne tipy i narzędzia które warto znać. Zero spamu.




