ZKP til verificering af båndbredde i dVPN og DePIN
TL;DR
Udfordringen ved at bevise dataoverførsel
Har du nogensinde undret dig over, hvorfor du betaler for "højhastighedsdata", mens din streaming stadig danner buffer, som om det var 2005? Det skyldes som regel, at vi er fanget i et "stolt på mig"-forhold til vores internetudbydere og VPN-tjenester.
I den gamle verden – det, vi kalder det centraliserede web – opretter du forbindelse til en server, der ejes af en enkelt virksomhed. De fortæller dig, hvor meget båndbredde du har brugt, og du betaler regningen. Men i et decentraliseret fysisk infrastrukturnetværk (DePIN) får du ofte dit internet fra en tilfældig persons private node.
- Centraliserede logfiler er et kæmpe privatlivshul: De fleste traditionelle VPN-udbydere lover "ingen logning", men du er tvunget til at tage deres ord for det. Hvis en myndighed kræver udlevering af data, eksisterer disse logfiler som regel alligevel.
- Troværdighedskløften: Hvis jeg deler min private fiberforbindelse med dig for at optjene krypto-tokens, hvad forhindrer mig så i at lyve over for netværket og påstå, at jeg har sendt dig 10 GB, når jeg i virkeligheden kun sendte 1 GB?
- Behovet for "trustless" verificering: Vi har brug for en metode til at bevise, at data rent faktisk blev flyttet fra punkt A til punkt B, uden at en mellemand overvåger hele samtalen.
Ifølge en undersøgelse om Zero-Knowledge Proof Frameworks gør ZKP-teknologi (Zero-Knowledge Proof) det muligt for en "prover" at overbevise en "verifier" om, at et udsagn er sandt, uden at afsløre de faktiske hemmelige data. I vores verden betyder det, at jeg kan bevise, at jeg har sendt dig data, uden at netværket behøver at "sniffe" til dine private datapakker.
Når vi taler om "Bandwidth Mining" eller "Airbnb for båndbredde", giver vi i bund og grund folk incitament til at forvandle deres routere til mini-internetudbydere. Men krypto-incitamenter tiltrækker også "gamere" – folk, der ønsker belønningerne uden at udføre arbejdet.
Som det fremgår af nedenstående diagram over workflowet for verificering af båndbredde, har vi brug for et system, der tjekker datastrømmen uden at eksponere brugeren.
Hvis vi bare lader noderne rapportere deres egne statistikker, vil systemet bryde sammen på grund af svindel. Omvendt, hvis vi lader netværket se alt for at verificere trafikken, har vi blot bygget en gigantisk overvågningsmaskine.
Måling af peer-to-peer (P2P) trafik er notorisk komplekst. I modsætning til et køb i et supermarked, hvor en stregkode scannes, er datapakker flydende. I brancher som sundhedsvæsenet eller finanssektoren er dette endnu mere følsomt. Man kan ikke bare have en tredjepart til at inspicere pakker for at se, om en node er ærlig.
En rapport fra 2023 fra arkworks zksnark ecosystem peger på, at modulære biblioteker er ved at blive standarden for at bygge denne type "succinct" (kortfattede) beviser, som kan køre på hardware med lav ydeevne.
Vi har brug for matematik – specifikt kryptografiske forpligtelser (cryptographic commitments) – for at bygge bro over denne kløft. Uden det forbliver båndbredde en "best effort"-tjeneste frem for en garanteret ressource. Da disse use-cases kræver høj pålidelighed, er omkostningerne ved at køre disse tjek på en blockchain en af de største forhindringer, vi skal overvinde.
Hvad er zero-knowledge proofs egentlig?
Forestil dig, at du skal bevise over for en dørmand på en natklub, at du er over 18 år, men du ønsker ikke, at han skal se din hjemmeadresse, din højde eller hvor dårligt dit pasfoto egentlig ser ud. I stedet for at række ham dit fysiske ID, viser du ham en "sort boks", der kun blinker grønt, hvis du opfylder alderskravet.
Det er i essensen det, et zero-knowledge proof (ZKP) gør for den digitale verden. Det er en metode til at sige: "Jeg har svaret," uden rent faktisk at vise udregningen eller de bagvedliggende data.
I konteksten af vores markedsplads for båndbredde er det måden, hvorpå en udbyder beviser, at de har sendt dig præcis 500 MB krypteret trafik, uden at netværket nogensinde ser, hvad der er inde i pakkerne. Det bygger bro mellem "stol på mig" og "her er det matematiske bevis for, at jeg ikke lyver."
I sin kerne involverer et ZKP to roller: Prover (den person, der deler sin båndbredde) og Verifier (blockchainen eller brugeren, der modtager data). Målet er, at Prover overbeviser Verifier om, at et udsagn er sandt, mens der afsløres absolut nul ekstra information.
For at dette skal fungere, skal ethvert ZKP-system ramme plet på tre specifikke områder:
- Fuldstændighed (Completeness): Hvis noden rent faktisk har sendt dataene, skal matematikken gå op hver gang, så de får deres betaling.
- Pålidelighed (Soundness): Hvis noden lyver, skal matematikken fejle tæt på 100 % af gangerne. Snyd er ikke tilladt.
- Zero-knowledge: Verifier lærer intet om de faktiske filer, der overføres – kun at mængden og destinationen var korrekt.
Det er sådan, vi bevarer "zero" i zero-trust netværk. I en dVPN ønsker du ikke, at netværksnoderne snager i dine streamingvaner eller dine bankoplysninger. Ved at bruge ZKP'er kan noden bevise, at den har opfyldt sin kontrakt med netværket – og dermed optjene krypto-rewards – uden nogensinde at "kigge" på din private datastrøm.
Når man dykker ned i de tekniske detaljer i DePIN-projekter (Decentralized Physical Infrastructure Networks), støder man ofte på to primære "varianter" af disse beviser: SNARKs og STARKs. Det lyder måske som karakterer fra et digt, men i praksis har de vidt forskellige egenskaber.
zk-SNARKs (Succinct Non-Interactive Arguments of Knowledge) er den ældre og mere etablerede teknologi. De er "succinct" (kortfattede), hvilket betyder, at beviserne er bittesmå – nogle gange kun få hundrede bytes. Dette er ideelt for mobile VPN-brugere, da det ikke dræner dit dataforbrug blot for at verificere forbindelsen.
Dog kræver de fleste SNARKs (som den berømte Groth16-protokol) et "trusted setup". Dette er en engangsbegivenhed, hvor tilfældige tal genereres for at starte systemet. Hvis personerne, der kører dette setup, er korrupte, kan de teoretisk set forfalske beviser. Som nævnt tidligere i undersøgelser af Zero-Knowledge Proof-frameworks, er det grunden til, at mange nyere projekter leder efter alternativer.
zk-STARKs (Scalable Transparent Arguments of Knowledge) er den nyere og mere robuste version. De kræver ikke et trusted setup – de er "transparente". De har også en massiv fordel: de er resistente over for kvantecomputere.
Følgende arkitekturdiagram illustrerer afvejningerne mellem SNARK- og STARK-workflows i et P2P-miljø.
I en decentraliseret båndbreddebørs forsøger vi at bygge et alternativ til traditionelle internetudbydere (ISP). I detailhandlen ville du aldrig betale en ekspedient, der bare "lovede", at mælken var lagt i posen, uden at du kiggede efter. I finansverdenen stoler man ikke bare på en banks regneark; man kræver en revision.
ZKP'er leverer denne revision for data. Uanset om det er en sundhedsudbyder, der sender følsomme patientjournaler over en VPN, eller en butikskæde, der synkroniserer lagerbeholdning på tværs af tusindvis af butikker, har de brug for at vide, at dataene er nået frem, uden at mellemmanden (noden) har set indholdet.
Verificering af båndbredde uden overvågning
Du kører en node og deler din båndbredde for at optjene krypto. Det er fantastisk. Men hvordan ved netværket egentlig, at du sender reelle data til en bruger i eksempelvis Berlin, uden at nogen bogstaveligt talt "sniffer" pakkerne for at tjekke det?
Det er en massiv teknisk udfordring. Hvis netværket kan se dataene for at verificere dem, er dit privatliv fortid. Hvis det slet ikke kan se noget, kunne du bare "mine" tokens ved at sende værdiløse data til dig selv. Det er her, vi dykker ned i de tekniske detaljer omkring bandwidth proof-protokoller.
For at løse dette bruger vi en specifik gren af matematikken kaldet vOLE-baseret Zero-Knowledge (Vector Oblivious Linear Evaluation). Jeg ved godt, det lyder som noget fra en science fiction-roman, men det er faktisk utroligt elegant til dataoverførsel med høj hastighed.
I modsætning til snarks eller starks, der ofte benytter tunge elliptiske kurver, er vOLE en form for "Interactive Oracle Proof", der prioriterer hastigheden hos bevisførelsen (prover speed) over selve bevisets størrelse. Det er i bund og grund bygget til fart, hvilket gør det perfekt til at verificere massive datastrømme i realtid uden at forsinke din forbindelse.
- Højhastigheds-verificering: vOLE-baserede protokoller er geniale, fordi de ikke er afhængige af tung matematik i hvert eneste trin. Det gør dem langt hurtigere til bandwidth mining i realtid.
- Konsistenstjek: Netværket bruger disse beviser til at sikre, at noden rent faktisk har den upload-hastighed, den påstår. Hvis du hævder at være en "Supernode", men matematikken ikke stemmer, vil den smarte kontrakt (smart contract) simpelthen ikke udløse udbetalingen.
- Hold dig opdateret: Hvis du er nørdet omkring dette, er det en god idé at følge med i miljøer som squirrelvpn – en nyhedsressource og et community for decentraliseret VPN-teknologi – for at se, hvilke protokoller der rent faktisk bliver implementeret på mainnet.
Diagrammet nedenfor viser, hvordan vOLE skaber et sikkert "håndtryk" mellem noden og verificøren.
Det virkelig smarte er, hvordan dette kobles til din wallet. I en decentraliseret VPN (dVPN) ønsker vi, at belønningerne er automatiske. Du skal ikke vente på, at en menneskelig "administrator" godkender din indtjening.
Vi bruger Smart Contracts, der fungerer som den ultimative deponering (escrow). Disse kontrakter er programmeret til at være "blinde", men retfærdige. De opbevarer tokens og frigiver dem kun, når et gyldigt zkp (zero-knowledge proof) indsendes. Intet bevis, ingen betaling. Det er en kontant, men nødvendig måde at holde P2P-netværket ærligt på.
Løsningen på gas-problematikken
En af de største udfordringer tidligere har været "gas-gebyrer" – de omkostninger, man betaler for at registrere data på en blockchain. Hvis et bevis fylder for meget, risikerer man, at gebyrerne overstiger de optjente belønninger. Dette fænomen kaldes "økonomien bag on-chain verificering", og det er ofte det, der tager livet af mange projekter.
For at løse dette bruger vi rekursive beviser (Recursive Proofs). Det er i bund og grund en metode til at verificere flere små beviser inde i ét stort bevis. I stedet for at sende 1.000 transaktioner til blockchainen for 1.000 små dataoverførsler, samler systemet dem i ét enkelt bevis (batching). På den måde fordeles gas-omkostningerne over tusindvis af krav, hvilket reducerer prisen til få ører per bruger.
Layer 2-løsninger hjælper også ved at flytte det tunge arbejde væk fra hovedkæden. Ved at verificere nul-viden-beviset (zkp) på et hurtigere og billigere netværk, og kun afstemme den endelige saldo på hoved-blockchainen, sikrer vi, at systemet forbliver rentabelt for node-ejerne.
- Automatiserede udbetalinger: I det øjeblik zkp-beviset er verificeret on-chain, overføres tokens automatisk til nodens wallet. Der er ikke behov for "tillid" til en tredjepart – det er ren kode.
- Reduktion af overhead: Biblioteker som arkworks hjælper med at komprimere disse beviser, så de bliver "kortfattede" (succinct) og billige at verificere.
- Forebyggelse af svindel: Da den bagvedliggende matematik er "solid" (sound), er det statistisk umuligt for en node at forfalske en overførsel på 1 GB uden rent faktisk at have sendt dataene.
Reelle use cases for ZKP inden for DePIN
Har du nogensinde spekuleret på, hvordan du kan sælge dit overskydende hjemmeinternet til en person i Tokyo, uden at nogen af jer bliver snydt? Det lyder som plottet i en teknologisk thriller, men det er faktisk selve fundamentet i DePIN-bevægelsen (Decentralized Physical Infrastructure Networks).
Drømmen er enkel: Du har en 1 Gbps fiberforbindelse derhjemme, men du bruger den kun til at se Netflix og "doomscrolle" på Reddit. Hvorfor ikke sælge overskuddet? I en decentraliseret VPN-model (dVPN) bliver din router til en netværksknude – en node.
- Quality of Service (QoS) garantier: Vi bruger ZKP'er (Zero-Knowledge Proofs) til at bevise, at en node rent faktisk har leveret den lovede hastighed på f.eks. 100 Mbps. Noden genererer et bevis for udført arbejde ("Proof of Work"), som blockchainen verificerer, før din krypto frigives.
- Privatliv for udbyderen: Du ønsker ikke at vide, hvad køberen foretager sig. ZKP'er gør det muligt for netværket at verificere trafikmængden, uden at du nogensinde ser de ukrypterede pakker.
Dette flowchart illustrerer, hvordan en bruger anmoder om båndbredde, og hvordan noden leverer et bevis for at modtage betaling.
En interessant tilgang ses i, hvordan projekter håndterer "Proof of Connectivity". De har brug for at vide, at din node rent faktisk er online. I stedet for at pinge dig hvert sekund, kan de bruge en ZKP til at bevise, at din node var aktiv over et specifikt tidsinterval.
Lad os nu tale om de mere kritiske scenarier. Hvis du befinder dig i et land med en "Great Firewall", kan selve det at bruge en VPN være et rødt flag. Traditionelle VPN-protokoller har "signaturer", som Deep Packet Inspection (DPI) kan genkende.
Det er her, censurresistent adgang kommer ind i billedet. Ved at bruge ZKP'er kan vi skabe "obfuskerede" forbindelser. Målet er ikke kun at kryptere dataene, men at bevise over for netværket, at forbindelsen er gyldig, uden overhovedet at afsløre, at der er tale om en VPN-tunnel.
Følgende diagram viser, hvordan metadata skjules under en forbindelse for at omgå censur.
Udfordringer og vejen frem
Vi har styr på matematikken, men kan din gamle router rent faktisk håndtere det uden at bryde i brand? Det er det helt store spørgsmål, for ingen ønsker en privat internetforbindelse, der føles som om, man er tilbage på et 56k modem.
Virkeligheden er, at generering af et Zero-Knowledge Proof (ZKP) er "dyrt" – ikke nødvendigvis i kroner og øre, men i CPU-cyklusser. Hvis du forsøger at køre en lynhurtig dVPN-node på en billig hjemmerouter, begynder de matematiske beregninger at tære hårdt på kræfterne.
- Latency vs. Privatliv: Der er her tale om en klassisk afvejning. Hvis vi vil have 100 % absolut kryptografisk sikkerhed for hver eneste pakke, vil din ping-tid skyde i vejret.
- Hardware-accelerering: Vi ser begyndelsen på et skifte mod brug af GPU'er eller specialiserede chips til at håndtere disse bevisførelser.
Dette afsluttende diagram viser fremtidsplanerne for hardware-accelereret ZKP-verificering.
Helt ærligt er "brugervenlighedskløften" den største barriere, vi rammer lige nu. Et studie fra 2024 foretaget af forskere ved UC San Diego og Arizona State University viste, at selvom der findes mange frameworks, er denne kløft stadig den største hindring for udviklere, der forsøger at implementere disse værktøjer i den virkelige verden. De fleste dVPN-brugere er ligeglade med elliptiske kurver; de vil bare have deres privatliv.
Ser vi fremad, bevæger vi os mod en verden, hvor din "internetudbyder" ikke er et gigantisk selskab i en skyskraber, men et globalt netværk af mennesker som dig og mig. ZKP er i bund og grund den sidste brik i puslespillet for denne Web3-infrastruktur. Det er det, der gør systemet "trustless" – du behøver ikke at kende personen, der leverer din båndbredde, fordi matematikken beviser, at de ikke snyder dig.