Důkazy s nulovou znalostí pro metadata v dVPN sítích
TL;DR
Problém s metadaty v decentralizovaných sítích
Napadlo vás někdy, proč vaše VPN s příslibem „žádné logování“ (no-logs) stále přesně ví, kdy jste včera v noci sledovali svůj oblíbený seriál? Je to proto, že i když nesledují přímo váš provoz, metadata – digitální stopy o tom, kdy a odkud se připojujete – stále vykřikují vaši identitu komukoliv, kdo se dívá.
V tradičním uspořádání důvěřujete jedné konkrétní společnosti. V případě decentralizované VPN (dVPN) však své pakety v podstatě směrujete přes domácí internet cizího člověka. I když tento model eliminuje problém „centrálního bodu selhání“ (central point of failure), vytváří nový: každý uzel v této P2P síti je potenciálním špehem.
Pokud provozuji uzel, vidím vaši IP adresu a přesně vím, kolik dat přenášíte. A co hůř, vidím časová razítka. Pokud jste whistleblower v rizikovém regionu, samotný fakt, že jste se připojili ke konkrétnímu uzlu ve dvě ráno, stačí k tomu, aby vás sledovací systémy poskytovatele internetu (ISP) označily za podezřelé.
Problém s metadaty je v podstatě mapou vašeho digitálního života. Jak vysvětluje koncept Zero-knowledge proof (důkaz s nulovým rozšířením znalosti), cílem ZKP je prokázat pravdivost tvrzení, aniž by došlo k prozrazení samotného tajemství – a to je přesně to, co současným P2P sítím chybí.
Celá situace se ještě více komplikuje, když do hry vstoupí „těžba šířky pásma“ (bandwidth mining). V rámci DePIN (Decentralized Physical Infrastructure Networks) dostávají lidé zaplaceno v tokenech za sdílení svého internetu. Aby uzel dostal zaplaceno, musí prokázat, že práci skutečně vykonal.
Prokázání poskytnuté služby obvykle znamená předložení „účtenky“ o proběhlé relaci. „Hele, uživatel X využil 5 GB mého pásma od 16:00 do 17:00.“ A prásk – soukromí je pryč. Síť tato data potřebuje k prevenci podvodů, ale uživatel je potřebuje skrýt, aby zůstal v anonymitě.
- Zdravotnictví: Hlavním problémem je únik délky trvání relace. Pokud uzel vidí, že je pacient připojen k lékařskému portálu tři hodiny, naznačuje to závažnou konzultaci, i když jsou samotná data šifrovaná.
- Finance: Zde je kritickým bodem spojení mezi IP adresou a krypto-peněženkou. Pokud uzel zaznamená, že konkrétní IP adresa přenáší data během transakce s vysokou hodnotou, stává se tento uživatel terčem pro „dusting“ útoky.
Průmysl se ocitl ve slepé uličce. Chceme decentralizovaný internet, ale budujeme ho na základech viditelných metadat. Podle definice Zero-knowledge proof vědci jako Goldwasser a Micali již v roce 1985 ukázali, že můžeme prokázat, že „znalostní složitost“ je nulová. Jen jsme to zatím dostatečně efektivně neaplikovali na P2P směrování.
Upřímně řečeno, dokud nevyřešíme, jak zaplatit uzlu, aniž by tento uzel věděl, komu slouží, pouze vyměňujeme jednoho velkého „pronajímatele“ za tisíc menších.
Dále se podíváme na to, jak technologie zk-SNARKs tento problém řeší tím, že nám umožňuje tyto relace ověřovat bez znalosti identity uživatele a času připojení.
Jak důkazy s nulovým rozšířením znalostí zachraňují situaci
Měli jste někdy pocit, že vás při běžném prohlížení webu někdo sleduje? I když používáte VPN, váš poskytovatel internetu (ISP) nebo zvědavý provozovatel uzlu může stále vidět „podobu“ vašich dat. A to je obrovská trhlina v trupu naší lodi soukromí.
Představte si důkaz s nulovým rozšířením znalostí (Zero-Knowledge Proof – ZKP) jako způsob, jak dokázat, že máte klíč od dveří, aniž byste ten klíč skutečně ukázali nebo ty dveře přede všemi otevřeli. Klasickým způsobem, jak si to vizualizovat, je analogie s hledáním postavičky „Kde je Valda?“. Představte si obrovskou desku s obrázkem Valdy. Chcete-li dokázat, že jste ho našli, aniž byste prozradili jeho souřadnice, položíte přes celou mapu obří list kartonu, ve kterém je vystřižen jen jeden malý otvor. Mapou posouváte tak dlouho, dokud se v otvoru neobjeví Valda. Pozorovatel vidí Valdu, takže ví, že jste ho našli, ale nemá nejmenší tušení, kde se na skutečné mapě nachází.
Ve světě peer-to-peer (P2P) sítí je toto naprostá spása. Obvykle platí, že aby uzel dostal zaplaceno za sdílení šířky pásma (Bandwidth Mining), musí předložit potvrzení o vykonané práci. Jenže takové potvrzení běžně obsahuje vaši IP adresu, čas připojení a objem stažených dat. To je pro soukromí hotová noční můra.
U ZKP využíváme vlastnosti zvané úplnost (completeness) a bezeztrátovost (soundness). Úplnost znamená, že pokud relace skutečně proběhla, poctivý uzel to dokáže prokázat. Bezeztrátovost zajišťuje, že lživý uzel nemůže relaci zfalšovat, aby ukradl tokeny. Podle principu důkazu s nulovým rozšířením znalostí nám to umožňuje dokázat, že je tvrzení pravdivé, aniž bychom sdělovali jakékoli jiné informace kromě samotné pravdivosti daného faktu.
Systematizace útoků z roku 2024, kterou provedli výzkumníci ze společnosti Trail of Bits, zjistila, že 96 % chyb v systémech založených na SNARK pochází z „nedostatečně omezených“ (under-constrained) obvodů. To znamená, že matematika nebyla dostatečně precizní, aby zabránila podvodům.
Matematiku tedy neděláme jen tak pro radost. Stavíme zeď, kde jsou cihly tvořeny logikou. Pokud je logika pevná, uzel získá své krypto odměny a vaše návyky při prohlížení webu zůstanou jen vaší věcí.
Když to aplikujeme na P2P tunel, v podstatě „zaslepujeme“ metadata. Místo toho, aby uzel hlásil: „Uživatel A přenesl 500 MB ve 22:00“, vygeneruje zk-SNARK (Stručný neinteraktivní argument znalosti – Succinct Non-Interactive ARgument of Knowledge). Jde o malý balíček dat, který říká: „Zprostředkoval jsem platnou relaci o velikosti přesně 500 MB,“ a síť to může ověřit, aniž by věděla, že jste to byli vy.
- Maloobchod: Teoretické řešení pro prokázání přijetí aktualizace zásilky bez úniku přesného časového razítka. To brání konkurenci ve sledování rychlosti dodavatelského řetězce obchodu.
- Zdravotnictví: Klinika může pomocí ZKP prokázat přesun dat pro účely fakturace. Uzel nikdy nevidí velikost souboru, což brání lidem odhadovat, s jakým specialistou pacient konzultuje, na základě objemu dat.
- Finance: Obchodníci mohou využívat tokenizované sítě, kde důkaz validuje využitou šířku pásma, aniž by propojil konkrétní adresu peněženky s domácí IP adresou.
Používání těchto důkazů na mobilních uzlech – například když váš telefon sdílí kousek 5G připojení – je náročné, protože výpočty jsou složité. Novější protokoly jako Halo nebo Virgo však dělají tyto procesy dostatečně lehkými na to, aby běžely, aniž by vám vybily baterii.
Upřímně řečeno, je to jediný způsob, jak může P2P síť dlouhodobě přežít. Pokud neskryjeme metadata, stavíme jen větší a distribuovanější sledovací stroj. Potřebujeme, aby systém byl „zero-knowledge“ (s nulovými znalostmi) již v základu, nikoli jako dodatečné vylepšení.
Dále se podíváme na to, jak se tyto zk-SNARKy skutečně implementují v kódu a jak to vypadá, když se uzel pokouší ověřit důkaz v reálném čase.
Implementace ZKP v ekosystému dVPN
Napadlo vás někdy, jak paradoxní je, že se snažíme budovat „soukromý“ internet, ale přitom za sebou necháváme digitální stopu, kterou může sledovat každý poskytovatel připojení (ISP) i provozovatel uzlu? Je to jako nosit masku, ale u každých dveří, kterými projdete, nechat svou vizitku.
Pokud se zajímáte o technické detaily síťové bezpečnosti, víte, že sledovat vývoj těchto protokolů je práce na plný úvazek. Osobně se zaměřuji na technické zprávy o nově vznikajících zranitelnostech v tunelovacích protokolech. Je totiž jedna věc mluvit o hlavičce paketu a úplně jiná vysvětlit, proč je tato hlavička v podstatě naváděcím majákem pro vládní dohled.
Model „Airbnb pro šířku pásma“ zní teoreticky skvěle, ale z pohledu soukromí je to zatím chaos. Aby uzel (node) dostal zaplaceno, musí prokázat, že vaše data skutečně přenesl. Ve standardním nastavení relay uzel předloží potvrzení: „Zpracoval jsem 2 GB pro tuto konkrétní adresu peněženky.“ V ten moment je propojení mezi vaší krypto-identitou a vaším síťovým provozem vytesáno do kamene.
K překonání této bariéry využíváme smart kontrakty, které však potřebují způsob, jak ověřit vykonanou práci, aniž by viděly, „kdo“ ji vykonal. Zde přichází na scénu ZKP (Zero-Knowledge Proofs – důkazy s nulovým rozšířením znalosti), které řeší mechanismus zvaný Proof of Relay (důkaz o přenosu). Smart kontrakt zde funguje jako soudce – namísto surového logovacího souboru kontroluje matematický důkaz.
- Prevence Double Spendingu: V tokenizované síti zajišťuje ZKP, že každé ID relace je unikátní a v blockchainu „utraceno“ pouze jednou, aniž by se účetní kniha kdy dozvěděla, který uživatel data skutečně odeslal.
- Odměňování poctivých uzlů: Jelikož se ZKP spoléhá na vlastnost zvanou soundness (správnost), uzel nemůže vygenerovat platný důkaz pro relaci, která neproběhla. Pokud matematika nesedí, smart kontrakt prostředky neuvolní.
- Zaslepení metadat: Díky použití neinteraktivních důkazů odesílá uzel do řetězce jediný datový objekt („blob“). Jak bylo zmíněno dříve v článku, verifikátor (blockchain) se nedozví nic kromě faktu, že práce byla odvedena.
Tady nejde jen o to, abyste skryli, co sledujete na Netflixu; jde o kritickou infrastrukturu. Vezměme si například maloobchod. V rámci implementace může lokální brána prodejny generovat ZKP pro každou synchronizaci zásob. P2P uzel přenese data a dostane zaplaceno přes smart kontrakt, ale nikdy neuvidí časové vzorce, které by mohly odhalit tajemství dodavatelského řetězce.
Ve financích využívají vysokofrekvenční obchodníci (HFT) ZKP ke skrytí své fyzické polohy. Smart kontrakt ověří, že přenos pásma proběhl úspěšně, ale protože je důkaz „zaslepený“, uzel nemůže propojit provoz s konkrétní peněženkou a zneužít situaci k front-runningu.
Dokonce i ve zdravotnictví, kde kliniky sdílejí záznamy, smart kontrakt řeší prokazování plateb. Implementace zajišťuje, že „důkaz“ neprozradí, zda měl soubor 10 kB nebo 10 GB, což chrání soukromí o potenciálním zdravotním stavu pacienta před operátorem uzlu.
Skutečný problém, který vidím, je „výpočetní daň“. Generování důkazů zk-SNARK není zadarmo – vyžaduje CPU cykly. Pokud provozujete uzel na Raspberry Pi nebo na telefonu, nechcete, aby 50 % výkonu padlo jen na prokazování toho, že pracujete.
Studie z roku 2024 od výzkumníků z Trail of Bits (zmíněná dříve) zjistila, že téměř všechny chyby v těchto systémech pocházejí z „nedostatečně omezených“ (under-constrained) okruhů. Pokud matematika není neprůstřelná, uzel může systém „ošidit“ vytvořením důkazu pro práci, kterou ve skutečnosti nikdy nevykonal.
Sledujeme posun k protokolům jako Halo nebo Virgo, které jsou rychlejší. Tyto protokoly nevyžadují „trusted setup“, což je v podstatě odborný výraz pro to, že nemusíme věřit vývojářům, že v počátečních matematických konstantách nenechali zadní vrátka (backdoor). Díky tomu je celý P2P ekosystém mnohem transparentnější a bezpečnější.
Každopádně, implementace těchto prvků do dVPN není jen „třešnička na dortu“. Pokud nedostaneme metadata pod kontrolu, stavíme jen větší a efektivnější sledovací stroj a říkáme tomu „Web3“.
V další části se podíváme na konkrétní kódové struktury – zejména na to, jak se tyto okruhy staví a proč je pro vývojáře tak snadné nechtěně nechat v logice ony „nedostatečně omezené“ trhliny.
Technické překážky a budoucnost DePIN
Mluvili jsme o tom, že tyto důkazy fungují pro ochranu soukromí v podstatě jako kouzlo, ale pojďme si nalít čistého vína – v síťové infrastruktuře není nic zadarmo. Pokud se snažíte provozovat decentralizovanou síť (DePIN), kde je každý uzel v podstatě mini-poskytovatelem internetu (ISP), narazíte na obrovskou zeď: ta matematika je prostě neuvěřitelně náročná.
Největší překážkou pro budoucnost DePIN je výpočetní daň. Generování zk-SNARK není jako hašování hesla; spíše to připomíná řešení složitého hlavolamu, zatímco někdo sleduje každý váš pohyb. Dříve bylo vytváření těchto důkazů tak pomalé, že jejich použití pro VPN relaci v reálném čase bylo v podstatě nereálné. Čekali byste sekundy jen na ověření jediného paketu – vaše latence by připomínala vytáčené připojení z roku 1995.
Věci se ale mění. Novější protokoly konečně dělají tuto technologii použitelnou pro bandwidth mining (těžbu šířky pásma). Jak již bylo zmíněno, systémy jako Bulletproofs a STARKs mění pravidla hry, protože nevyžadují ono „důvěryhodné nastavení“ (trusted setup), ze kterého jsou všichni nervózní. A co je nejdůležitější, jsou stále rychlejší.
- Latence vs. soukromí: Jde o klasický kompromis. Pokud váš uzel tráví příliš mnoho času výpočty, aby dokázal, že přenesl 10 MB dat, uživatelský zážitek jde ke dnu. Sledujeme posun směrem k „dávkování“ (batching), kdy uzel prokazuje 1 000 relací najednou, aby ušetřil CPU cykly.
- Hardwarová omezení: Většina DePIN uzlů nejsou nabušené servery; jsou to Raspberry Pi nebo staré notebooky. Pokud je ZKP protokol příliš náročný, buď uvaří hardware, nebo prostě selže.
- Mobilní uzly: Sdílení 5G připojení z telefonu přes P2P síť je sice sen, ale ZK důkazy mohou být zabijákem baterie. Protokoly jako Virgo (o kterém jsme mluvili dříve) jsou navrženy speciálně tak, aby byly šetrnější k procesoru.
Abyste pochopili, proč je to tak těžké, musíte se podívat na to, co ten kód skutečně dělá. Nepíšeme jen skript; stavíme aritmetický obvod. V praxi se vysokoúrovňový kód, jako je níže uvedený příklad v Pythonu, kompiluje do R1CS (Rank-1 Constraint System) nebo aritmetických obvodů. Tyto obvody se skládají z „hradla“ (gates), která vynucují logiku. Pokud necháte hradlo „podmíněno nedostatečně“ (under-constrained), jak upozornila studie výzkumníků z Trail of Bits z roku 2024, škodlivý uzel může zfalšovat celou relaci.
Zde je koncepční pohled na to, jak by obvod mohl kontrolovat, zda uzel skutečně dodržel slíbené limity šířky pásma, aniž by odhalil přesný počet bajtů veřejnému blockchainu:
# Poznámka: Tato vysokoúrovňová logika se kompiluje do aritmetického obvodu
# (R1CS), aby ZK-SNARK mohl skutečně fungovat.
def verify_bandwidth_usage(claimed_usage, secret_session_log, limit):
# 'secret_session_log' je soukromý vstup (tzv. witness)
# 'limit' a 'claimed_usage' jsou veřejné údaje
# 1. Kontrola, zda log odpovídá deklarovanému množství
is_match = (hash(secret_session_log) == claimed_usage_hash)
# 2. Zajištění, že využití je pod stanoveným limitem
is_under_limit = (secret_session_log <= limit)
# Obvod vrátí 'True' pouze v případě, že obě podmínky sedí
# Ověřovatel (blockchain) vidí pouze výsledek 'True/False' a samotný důkaz
return is_match and is_under_limit
V reálném DePIN prostředí posílá uzel (prokazovatel) na blockchain tzv. „závazek“ (commitment). To je v podstatě kryptografický slib. Později, když nastane čas na výplatu odměny, předloží ZKP. Chytrý kontrakt funguje jako ověřovatel a spustí logiku, jejíž kontrola trvá milisekundy, i když generování důkazu trvalo uzlu celou sekundu.
Budoucnost DePIN závisí na tom, zda se podaří tuto matematiku odsunout zcela do pozadí. Například v maloobchodě, pokud prodejna používá P2P síť k synchronizaci prodejních dat, nemůže si dovolit, aby pokladna na tři sekundy zamrzla, zatímco generuje důkaz o přenosu dat. Musí to být naprosto plynulé.
Ve finančním sektoru vidíme podobné problémy u vysokofrekvenčního obchodování. Pokud obchodník používá tokenizovanou síť, aby zůstal v anonymitě, jakýkoli jitter (kolísání zpoždění) způsobený generováním důkazů by ho mohl v rámci „front-running“ scénáře stát tisíce. Cílem je zkrátit dobu generování důkazu na úroveň, kdy je rychlejší než samotný ping sítě.
Upřímně řečeno, problém s „nedostatečně podmíněnými“ obvody je to, co mi nedá spát. Pokud 96 % chyb v těchto systémech pochází ze špatné matematické logiky, v podstatě stavíme banku s dveřmi trezoru, které vypadají masivně, ale nejsou přišroubované ke zdi. Vývojáři proto začínají používat nástroje pro „formální verifikaci“ svých obvodů, což v praxi znamená použití jiné AI nebo matematického enginu k potvrzení, že důkaz je skutečně neprůstřelný.
V další části to všechno shrneme a podíváme se, jak vypadá finální „privacy stack“ (vrstvy soukromí), když zkombinujete P2P směrování, tokenizované odměny a zero-knowledge metadata.
Závěr: Skutečně anonymní internet
Kam nás tedy po všech těch výpočtech a hloubkových analýzách protokolů celá tato cesta zavádí? Pokud jste pozorně sledovali, je jasné, že starý způsob fungování – tedy prosté doufání, že váš poskytovatel není slídil – pomalu vymírá.
V zásadě se přesouváme od modelu „věř mi“ k modelu „nedotknutelnosti“. V minulosti jste se připojili k VPN a jen se modlili, aby si poskytovatel nevedl záznamy (logy), i když jeho obchodní model nebo soudní obsílky naznačovaly opak.
U P2P sítě poháněné důkazy s nulovým rozšířením znalostí (ZKP) vás však uzel (node) doslova nemůže „prásknout“, protože daná data nikdy ani neměl k dispozici. Jde o fundamentální posun v architektuře sítí.
- Odolnost vůči cenzuře: V zemích s masivním dohledem poskytovatelů internetu (ISP) mění dVPN založené na ZKP pravidla hry. Jelikož jsou metadata „oslepena“, hloubková inspekce paketů (DPI) na státní úrovni nemůže snadno propojit konkrétního uživatele se „zakázaným“ výstupním uzlem.
- Ekonomická spravedlnost: Těžba šířky pásma (bandwidth mining) se stává legitimním zaměstnáním. Dostáváte zaplaceno za práci, kterou skutečně odvedete a která je matematicky prokázána, aniž byste museli budovat databázi návyků svých zákazníků jen proto, abyste uspokojili nějaký odměňovací algoritmus.
- Konec digitálních stop: Jak jsme si ukázali, skrýt samotný obsah (payload) je snadné. Skutečným oříškem je skrýt fakt, že jste jej vůbec odeslali. ZKP nám konečně umožňují mazat tyto digitální stopy v reálném čase.
Tohle není jen pro fanoušky soukromí nebo lidi, kteří se snaží maskovat stahování přes torrenty. Dopady na skutečnou průmyslovou infrastrukturu jsou obrovské.
Ve zdravotnictví může nemocniční řetězec využívající decentralizovanou síť k synchronizaci pacientských dat nyní regulátorům prokázat, že záznamy přenesl, aniž by přenosové uzly kdy spatřily „podobu“ těchto dat. To brání komukoliv odhadovat počet pacientů nebo typy pohotovostních stavů na základě nárazových toků paketů.
Pro maloobchodní giganty to znamená synchronizaci zásob napříč tisíci prodejnami propojenými přes P2P, aniž by konkurence mohla zmapovat časování jejich dodavatelského řetězce. Získají rychlost distribuované sítě se soukromím sítě lokální.
A ve financích jde především o náskok (edge). High-frequency tradeři mohou tyto tokenizované sítě využít k maskování své fyzické polohy. Pokud uzel skrze ZKP nevidí délku relace ani adresu peněženky, nemůže dojít k předbíhání transakcí (front-running).
Nebudu vám lhát – k „dokonalému“ internetu máme ještě kus cesty. Výpočetní daň je stále reálným faktorem. Pokud provozujete uzel na levném routeru, režie spojená s generováním těchto důkazů může stále mírně brzdit vaši propustnost.
Ale jak jsem zmínil dříve, přechod k protokolům jako Halo a Virgo tento problém řeší. Dostáváme se do bodu, kdy je logika natolik efektivní, že „daň za soukromí“ je pro koncového uživatele v podstatě nepostřehnutelná.
Podle dokumentace k důkazům s nulovým rozšířením znalostí existuje tento koncept již od 80. let, ale teprve nyní máme k dispozici hardware a kód (jako zk-SNARKs), které umožňují jeho fungování v masovém měřítku v P2P sítích.
Upřímně, pokud jste technologický nadšenec nebo vám záleží na tom, kam internet směřuje, měli byste projekty typu DePIN (decentralizovaná fyzická infrastruktura) bedlivě sledovat. Model „Airbnb pro šířku pásma“ funguje pouze tehdy, pokud hosté zůstanou v anonymitě a hostitelé dostanou spravedlivě zaplaceno.
Budoucnost internetu není jen o decentralizaci; je o ověřitelném soukromí. Budujeme technologický stack, kde P2P směrování řeší „kde“, šifrování řeší „co“ a důkazy s nulovým rozšířením znalostí řeší „kdo“ a „kdy“.
Když tyto prvky zkombinujete, získáte internet, který nepatří žádné firmě ani vládě. Je to síť, která existuje díky svým uživatelům a je chráněna matematickými zákony, nikoliv rozmary generálních ředitelů.
Každopádně, byla to dlouhá cesta těmito protokoly. Ať už jen hledáte lepší způsob prohlížení webu, nebo chcete postavit další skvělou decentralizovanou aplikaci, pamatujte: pokud neověřujete, pouze hádáte. Udržujte své okruhy těsné a svá metadata skrytá.