Väčšina ľudí si myslí, že EU aplikácie na kontrolu veku sú o identifikácii používateľov. Marketingový argument znie: zero-knowledge dôkazy veku. Dokážete, že máte viac ako 18 rokov, bez toho aby stránka poznala vaše meno, presný dátum narodenia alebo čokoľvek, čo by prepojilo jeden dôkaz s druhým.
Skôr než pôjdeme ďalej, oplatí sa pomenovať tri odlišné problémy, o ktorých tento príspevok hovorí. Ľahko sa pomiešajú, ale sú zásadne rôzne. Prvý: záchranná cesta v DSA — platformy v skutočnosti nepotrebujú súkromie-zachovávajúcu peňaženku; pravidlá im umožňujú použiť namiesto nej bežného KYC poskytovateľa. Druhý: uzamknutie na atestáciu — Google a Apple rozhodujú, aký softvér beží na telefónoch použiteľných v tomto systéme. Tretí: samotný systém je slabší, ako sa prezentuje — kryptografia, ktorú referenčná aplikácia skutočne dodáva, nie je kryptografia z marketingu; nespojiteľnosť závisí od správania peňaženky, nie od matematiky; a existuje celá trieda relay útokov, ktoré protokol nedokáže zastaviť. Keď komentátori mávajú rukou nad „hackmi“, väčšinou myslia chyby v makete.
Stojí za to sa aj opýtať, kedy sa táto aplikácia začala opisovať ako „len referenčná implementácia“ alebo „white-label demo“. README rozpráva príbeh. 12. mája 2025 sa objavil disclaimer rámujúci projekt ako „súbor nástrojov na overovanie veku“, na ktorom majú členské štáty stavať. 31. júla 2025 pribudlo ďalšie zmäkčenie — formulácia explicitne nazývajúca aplikáciu white-label referenciou pre krajiny na prispôsobenie — a v tom istom editovaní bol potichu odstránený starší, priamejší disclaimer. V každom prípade bola vždy prezentovaná ako súbor nástrojov na prispôsobenie — posudzovať aplikáciu samotnú teda nedáva veľký zmysel; záleží na implementácii každej krajiny. Nebude žiadna jednotná EU aplikácia, bez ohľadu na to, čo hovoria EÚ prominenti.
Záchranná cesta v DSA, o ktorej nikto nehovorí
Veľké platformy musia overovať vek pri určitom obsahu. Môžu použiť fancy EU peňaženku s jej funkciami na ochranu súkromia. Môžu tiež jednoducho zapojiť normálneho KYC poskytovateľa, ktorý naskenuje váš celý pas, vykoná kontroly živosti a vidí všetko. Ktorú cestu si myslíte, že väčšina spoločností skutočne zvolí, keď „súkromie zachovávajúca“ možnosť vyžaduje integráciu so systémami, ktoré v 27 krajinách takmer neexistujú?
Je to marketingový trik. Silno propagujú aspekt súkromia, zatiaľ čo pravidlá ticho povoľujú alternatívu, ktorá nerešpektuje súkromie. (Myslím si, že hlavne vedia, že aplikácie nebudú pripravené do konca roka, ale od 2027 už platformy musia overovať vek).
KYC spoločnosti sa vyhýbajú skutočným elektronickým dokladom totožnosti roky. Mám už roky slovenský eID čip. Má kryptografické kľúče a môže preukázať, kto som (a koľko mám rokov) oveľa spoľahlivejšie ako fotografia môjho vodičského preukazu plus videohovor. Napriek tomu takmer každý KYC poskytovateľ stále robí bitmapu a zisťuje, či som živý človek (cez videohovor alebo AI).
Dôvod je jednoduchý. Integrácia s 27 rôznymi národnými eID systémami – a potom rozšírenie na zvyšok sveta – je nočná mora. Udržiavanie databázy toho, ako vyzerá fyzický doklad každej krajiny, je lacnejšie a funguje všade. Kryptografická cesta nie. Teoreticky by mohla (koniec koncov, je to matematika), ale v praxi nefunguje. Čo nie je až tak zlá vec – identita je stále do istej miery decentralizovaná.
Takže EU riešenie bude fungovať, ak sa platformy rozhodnú urobiť všetku tú integračnú prácu. Momentálne má oficiálny zoznam nula produkčných aplikácií. Referenčná implementácia je stále napoly upečená. Niektoré krajiny majú národné aplikácie pre digitálne doklady totožnosti alebo lokálne pilotné projekty, ktoré sa snažia pretlačiť do podoby EUDI. Prebiehajú bety a testy. Veriť, že sa to do konca roku 2026 premení na čistú interoperabilitu naprieč všetkými krajinami EÚ, je zbožné prianie (zo strany EÚ; moje prianie je, aby úplne zlyhali).
Ako overovanie skutočne funguje
Pozrime sa na to, ako overovanie skutočne funguje v referenčnej implementácii.
Hlavná cesta s vysokou istotou v referenčnej aplikácii používa NFC pas. Najprv naskenujete MRZ kód (zóna čitateľná strojom vytlačená na spodnej časti stránky s fotkou v pase). MRZ poskytuje kľúče potrebné na čítanie a dešifrovanie údajov na NFC čipe. Tento čip obsahuje podpísané údaje vrátane JPEG fotografie držiteľa. Atestovaná aplikácia potom nasníma živú fotografiu osoby stojaceho pred ňou a spustí lokálny AI model na porovnanie živej tváre s JPEG z čipu. Toto porovnanie fotografií je tu na zastavenie zneužívania – napríklad dieťa skenujúce pas svojho rodiča, aby získalo prihlasovací doklad pre seba. Aplikácia je open-source, takže môžete preskúmať každý riadok, ale zmena čo i len jedného bitu by porušila hardvérovú atestáciu, keď je atestácia skutočne vynucovaná národnými nasadeniami. V aktuálnom referenčnom kóde nie je overenie atestácie zapojené na strane servera — je to prísľub, ktorý by museli pridať národné nasadenia. Binárny súbor musí presne zodpovedať tomu, čo podpísal Google alebo Apple. Žiadny GrapheneOS, žiadne vlastné linuxové telefóny.
Atestácia to uzamkne. Je to vtipné – je to tá istá EÚ, ktorá nenávidí tieto americké korporácie a chce pre všetko európske alternatívy. Napriek tomu nikto nedokáže vyrobiť telefón, ktorý by bol použiteľný na overovanie veku bez požehnania od Googlu (alebo teoreticky Apple, ale Apple vôbec necertifikuje zariadenia tretích strán pre iOS). Kúpili ste si pekný Huawei telefón, s ktorým ste spokojní? Smola. Kúpili ste si Android prívetivý k EÚ / vyrobený v EÚ alebo dokonca non-Android telefón? Smola. Používate Daylight Computer , ktorý nenarúša váš cirkadiánny rytmus a je použiteľný vonku? Späť do kancelárie s junk osvetlením a zaobstarajte si správne zariadenie!
OK, späť k referenčnej aplikácii. Existuje jednoduchšia cesta, ktorá využíva len sken MRZ. Môžete doslova odfotografovať niekoho doklad totožnosti a systém s tým môže pracovať. Nie je potrebné čítanie NFC ani porovnanie fotografií. Táto cesta existuje v referenčnej implementácii, ale skutočné národné aplikácie ju nemusia podporovať a referenčná aplikácia odporúča cestu s vysokou istotou (teda kryptografickými certifikátmi). Krajiny môžu a pravdepodobne budú vynucovať silnejšiu cestu založenú na čipe (pas, eID alebo národný preukaz totožnosti s čipom). Je to predsalen trójsky kôň pre digitálne ID, no nie?
(Poznámka na okraj: Aj keby krajiny podporovali cestu MRZ kódu, overovali by údaje dokumentov oproti internej databáze občanov a ich dokumentov – čo referenčná aplikácia nerobí, pretože nemá prístup k tejto databáze; je to referenčná aplikácia, ktorá ukazuje krajinám, ako použiť knižnice na vytvorenie dôkazov veku, nie na skutočné overovanie.)
Propagovaná kryptografia a skutočná kryptografia nie sú to isté
Verejný príbeh je postavený na zero-knowledge dôkazoch. Referenčná Android aplikácia ich v spustiteľnom toku v skutočnosti nepoužíva. Používa starší štandard ISO (ISO 18013-5 mdoc s ES256), kde je každý atribút vopred podpísaný a peňaženka odhalí len tie, o ktoré je požiadaná — zvyšok skryje pomocou záväzkov so soľou. ZK knižnica je síce stiahnutá, ale nič v prezentačnej ceste ju nikdy nevolá. Takže keď ľudia citujú „ZK dôkazy veku“ ako inováciu, citujú niečo, čo je v repozitári, ale nie je zapnuté. Či to národné aplikácie nakoniec zapnú, je otvorená otázka. Dnešná referencia používa prosté podpisy.
Kryptografia mohla by byť solídna — zero-knowledge dôkazy nad podpismi pasov sú reálna a riešiteľná vec. Ale kryptografia, ktorá sa v aktuálnej referenčnej implementácii skutočne nasadzuje, je starší formát s obyčajnými podpismi a nespojiteľnosťou cez jednorazové dávky — nie ZK. Takže keď ľudia obhajujú „matematika funguje“, obhajujú matematiku, ktorá nie je zapnutá. Aj keď ak každý podpísaný atestát použijete len raz, prezradí iba to, že máte viac ako 18 rokov — a možno z podpisu kto ho vydal. Žiadny unikátny identifikátor tam nie je.
Čo je súkromné a čo nie
Celkový tok je do veľkej miery lokálny, ale stále potrebuje server na vydávanie certifikátov. Skenovanie a počiatočné kontroly prebiehajú na telefóne. Pretože aplikácia je atestovaná, vydávajúci server si môže byť primerane istý, aký presný kód sa skutočne spustil. Server overuje podpisy dokumentov (takže aj keď nájdete spôsob, ako obísť požiadavku na atestáciu, elektronický pas a preukaz totožnosti majú kryptografické podpisy, ktoré nemožno sfalšovať) a vydá podpísaný prihlasovací doklad alebo vyhlásenie. Tento prihlasovací doklad potom môže byť pri komunikácii s webovými stránkami premenený na lokálny ZK dôkaz alebo SD-JWT veku.
Z pohľadu poskytovateľa (povedzme pornografickej stránky alebo platformy sociálnych médií) to vyzerá nespojiteľne — pokiaľ sa peňaženka správa podľa pravidiel. Pošlete im len dôkaz, že máte viac ako 18 rokov, ktorý nemôžu prepojiť so žiadnym predchádzajúcim dôkazom. Samozrejme môžu odvodiť, že ste občanom krajiny EÚ (a možno ktorej). Ale nemôžu povedať, ktoré účty sú vaše ani prepojiť vašu aktivitu naprieč stránkami.
Z pohľadu vydavateľa — prihlasovací doklad získate predložením vášho dokladu totožnosti. Vydavateľ nevie, na čo ho použijete, ani koľkokrát — pravidlo jednorazového použitia žije vnútri softvéru peňaženky, nie na serveri. Takže ak je peňaženka upravená, alebo ak sú dôkazy zachytené a prehraté, nikto na strane vydavateľa to nevidí. Akýkoľvek „limit“ si môžete predstaviť, je limit na počet vydaných poverení, nie na to, koľkokrát je poverenie použité vo voľnej prírode.
Celý návrh nie je „matematika zaručuje, že dva dôkazy nemožno korelovať.“ Je to „peňaženka vydá hŕbu jednorazových poverení, každé použije raz, potom si pýta ďalšie.“ Ak peňaženka toto pravidlo dodržiava, dvaja overovatelia vidia dva rôzne podpisy a nemôžu ich prepojiť. Ak peňaženka podvádza, alebo ak je dôkaz prehrané, dvaja overovatelia vidia rovnaké bajty podpisu a prepojenie je triviálne. Toto je dôležitý nuans — bežný pitch „ZK = matematika = navždy nespojiteľné“ tu neplatí. Vlastnosť platí preto, lebo peňaženka má rotovať poverenia, nie preto, že kryptografia znemožňuje opakované použitie. Skutočné kryptografické schémy nespojiteľnosti ako BBS+ alebo CL podpisy by produkovali nekorelované dôkazy aj pri opakovanom použití. Toto nie je to.
Čo sú relay útoky?
Tu je scenár, na ktorý špecifikácia vlastne neodpovedá. Predstavte si, že dieťa chce vstúpiť na stránku s vekovou ochranou. Objaví sa služba — nazvime ju Babička-ako-služba — ktorá ponúkne overenie namiesto nich za pár eur. Dieťa otvorí stránku, dostane QR kód alebo odkaz, a namiesto toho, aby ho naskenovalo samo, vloží ho do proxy služby. Proxy ho prepošle skutočnému dospelému s reálnou, vládou vydanou peňaženkou na čistom telefóne. Dospelý potvrdí. Peňaženka dospelého vytvorí kryptograficky dokonalý dôkaz „nad 18″. Stránka vidí platný dôkaz a dieťa pustí dnu.
Nič nezlyhalo. Každý podpis je reálny, každá atestácia je reálna, dospelý má naozaj viac ako 18 rokov, peňaženka naozaj beží neupravená na skutočnom Androide. Háčik je v tom, že protokol viaže dôkaz na „nejaká peňaženka niekde povedala áno“, nie na „človek pri tomto prehliadači práve teraz“. Žiadna kontrola blízkosti neexistuje. Browser-side Digital Credentials API toto čiastočne rieši — ale len keď používateľ overuje na tom istom telefóne, cez ktorý prehliadá. QR kódy a deep linky fungujúce naprieč zariadeniami sú úplne otvorené.
Ľudia predpokladajú, že Play Integrity od Googlu by to zastavil. Nezastaví. Play Integrity atestuje aký kód beží na akom zariadení. Nehovorí nič o kto je pred ním ani kde zariadenie je. V proxy toku je telefón dospelého skutočný telefón a každá atestácia je skutočná. Relay — webová služba, s ktorou dieťa komunikuje — nie je atestovaná; len presúva bajty.
A keď je dospelý zaregistrovaný, predajná verzia sa škaredne rozvíja. Peňaženka má tridsať jednorazových poverení, obnovovaných v krátkych intervaloch. Vydavateľ nikdy nevidí, ako sa tieto poverenia používajú. Prevádzkovateľ proxy môže každé poverenie použiť pre veľa detí; nič na strane vydavateľa nezdvihne alarm. Pravidlo „jednorazové použitie“ je pravidlo na čestné slovo vnútri softvéru peňaženky, nie niečo, čo vydavateľ môže vynútiť. Toto nie je chyba, ktorú produkčné aplikácie „opravia.“ Je to zdedené zo tvaru protokolu, takže bude prítomné vo všetkých 27 národných aplikáciách.
Trójsky kôň
V každom prípade, toto je trójsky kôň.
Začnú s “chráňte deti pred pornografiou a strašnými sociálnymi médiami.” Vytvoria dostatočné trenie, aby ľudia siahli po pohodlnej atestovanej peňaženke. Samotná aplikácia musí byť atestovaná – čo v praxi znamená, že Google alebo Apple rozhodujú, čo beží.
Referenčná aplikácia nie je až tak bezpečná, napríklad zle ukladá fotografie tvárí, aj keď len lokálne. Z dvadsaťsedem krajín každá vybuduje svoju vlastnú verziu. S vlastnými dierami a problémami z pohľadu súkromia.
Potom nastane Hawthorneov efekt. Každá kontroverzná stránka, ktorá vás prinúti vytiahnuť peňaženku, vytvára sebacenzúru, aj keď je dôkaz údajne (alebo aj naozaj) anonymný. Vlády nevedia ochraňovať údaje. Akékoľvek údaje. História je plná príkladov.
(Chcete sledovať pornografiu? Kritizovať politika? Naozaj si otvoríte aplikáciu pre doklad totožnosti krajiny EÚ, aby ste overili, že máte viac ako 18 rokov a veríte, že je to nespojiteľný ZK dôkaz – aj keď to skutočne je?)
Neskôr to prepoja s digitálnym eurom a všetkým ostatným. Zrazu veľká časť vášho života môže byť vzdialene vypnutá. Nezaplatili ste načas pokutu za zlé parkovanie? No, poďme dočasne zablokovať vaše certifikáty; keď sa nebudete môcť nikam prihlásiť, prídete a zaplatíte pokutu.
Kryptografia je solídna. Alebo aspoň môže byť – do produkcie ešte nič nebolo vydané. Architektúra a politika sú zvyčajná vrstva kontroly s čerstvejšou farbou.
Nepotrebujeme odvolateľné digitálne doklady totožnosti ako vstupenku na internet. Fungovali sme v pohode aj bez tejto inovácie.
Sú publikované hacky skutočné?
Bolo niekoľko “hackov”, väčšinou od ľudí, ktorí nechápu, ako to malo fungovať. Ponechávanie súborov na disku v referenčnej aplikácii je niečo, čo bude v ďalšej verzii opravené, ale referenčná aplikácia nebude priamo používaná žiadnou krajinou; budú mať vlastné chyby. Referenčná aplikácia nie je určená na použitie žiadnym koncovým používateľom. Je pre krajiny, aby vedeli, ako generovať dôkazy a ako všetko funguje, aby zostali interoperabilné. Ani nezáleží na tom, že ju môžete oklamať, aby vám dal testovací prihlasovací doklad – pretože primárna cesta overenia budú eID systémy krajín, nie ich mockup implementácia nekontrolovaného skenera MRZ. Táto časť už v mnohých krajinách existuje a bude v každom prípade jedinečná pre každú krajinu.
Bol “hack”, ktorý vytvoril vlastné rozšírenie Chrome. To by zlyhalo pri atestácii aplikácie (backend to ešte nemôže overiť, pretože aplikácia nie je ešte v obchodoch, ale overenie atestácie aplikácie je povinné a ak CPU telefónu neatestuje, že beží nemodifikovaná oficiálna aplikácia a neopravený OS, atestácia by zlyhala). Tiež cesta MRZ sa nepripája k skutočnému backendu, pretože na strane EÚ nie je žiadny skutočný backend; registre platných dokumentov sú kompetenciou krajín, takže budú musieť overiť podľa krajiny.
Som si na 99% istý, že aj keď považujem EÚ za úplne nekompetentných úradníkov, tieto konkrétne triedy hackov nebudú fungovať v produkčných aplikáciách – a ak áno, nesĺňajú špecifikáciu. A budú rýchlo opravené.
Takže “haha, hackol som aplikáciu s mojím predplatným Claude Max” nič neznamená. Hackujú nástroj z kartónu zlepený lepiacou páskou, ktorého jediná úloha je ukázať krajinám, ako sa používajú knižnice. Áno, Frau Ursula to nazvala “EU aplikácia na overovanie veku”, ale nie je to “EU aplikácia na overovanie veku” – nebude žiadna EU aplikácia, bude slovenská aplikácia, maďarská aplikácia, nemecká aplikácia, holandská aplikácia, francúzska aplikácia, …
Ale prečo?
Mnohí z nás sa prirodzene pýtajú, prečo ľudia toto chcú. Myslím si, že je chybou myslieť si, že nechcú. Po overení veku existuje dopyt. Internet je strašidelný, rodičia si myslia, že nemôžu chrániť svoje deti pred mnohými zlými vecami, ktoré sa dejú, a niekto prišiel a na striebornom podnose im poskytol “riešenie”. Nezáleží na tom, že som si istý, že deti to ľahko obídu. Klienti (voliči) nie sú deti, ktorých úradník chráni, ale ich rodičia, ktorí sa cítia dobre, že niekto vyriešil ďalší ich problém (=strach).
Myslím si, že veľmi dobré a hlboké vysvetlenie prečo sa to deje, je v mojom románe Krotitelia Entropie. Je veľmi cypherpunk / lunarpunk a vysvetľuje aj psychológiu za týmito dystópiami. A cestu von. Navyše je to fajn čítanie. Pozrite sa na tamersofentropy.net. Postavy majú tiež Nostr účty a postujú svoj pohľad na svet.

Záver
Fancy ZK aplikácie nebudú pripravené načas.
Platformy budú používať normálnych KYC poskytovateľov, AI odhadovače veku tvárí a iné prostriedky.
Ak sa postupuje podľa špecifikácie, aplikácia na overovanie veku má zmysluplné vlastnosti ochrany súkromia — platformy nepoznajú vašu identitu ani neprepajú vaše účty. Ale tieto vlastnosti sa opierajú o správanie peňaženky, nie o kryptografické záruky. ZK matematika, ktorá by urobila nespojiteľnosť pevnou zárukou, je v repozitári a nie je zapnutá.
Aplikácie nebudú fungovať, pok iaľ nemáte zariadenie schválené Googlom alebo Applom. Zabudnite na Linux, GrapheneOS, Huawei, aftermarketové firmwary. Je to súčasť modelu ochrany.
A relay útoky — deti používajúce dospelých proxy na vstup na stránky s vekovou ochranou — nie sú opraviťeľné chyby. Sú štrukturálnou vlastnosťou protokolu, ktorá bude prítobná vo všetkých 27 národných aplikáciách.
Divadlo o súkromí skrýva vlka. Vlk je stále tu.