Nollkunskapsbevis för verifiering av bandbredd
TL;DR
Problematiken med att bevisa dataöverföring
Har du någonsin undrat varför du betalar för "höghastighetsbredband" samtidigt som din streaming buffrar som om det vore 2005? Det beror oftast på att vi sitter fast i en relation med våra internetleverantörer och VPN-tjänster som helt bygger på principen "lita på mig".
I den gamla världen – det vi kallar den centraliserade webben – ansluter du till en server som ägs av ett enskilt företag. De talar om för dig hur mycket bandbredd du har använt, och du betalar fakturan. Men i ett decentraliserat fysiskt infrastrukturnätverk (DePIN) får du ofta din internetåtkomst från en privatpersons hem-nod.
- Centraliserade loggar är en enorm integritetsrisk: De flesta traditionella VPN-tjänster hävdar att de har en "no-logs"-policy, men i slutändan måste du bara lita på deras ord. Om en myndighet begär ut data visar det sig ofta att dessa loggar faktiskt existerar.
- Ärlighetsklyftan: Om jag delar min fiberanslutning med dig för att tjäna kryptotokens, vad hindrar mig från att ljuga för nätverket och påstå att jag skickat 10 GB när jag i själva verket bara skickat 1 GB?
- Behovet av "tillitslös" verifiering: Vi behöver ett sätt att bevisa att data faktiskt har flyttats från punkt A till punkt B utan att en mellanhand övervakar hela kommunikationen.
Enligt en undersökning om Zero-Knowledge Proof Frameworks gör ZKP-teknik (nollkunskapsbevis) det möjligt för en "bevisare" att övertyga en "verifierare" om att ett påstående är sant, utan att avslöja den faktiska hemliga datan. I vår värld innebär det att jag kan bevisa att jag skickat data till dig utan att nätverket behöver "sniffa" på dina privata datapaket.
När vi pratar om "Bandwidth Mining" eller "Airbnb för bandbredd", skapar vi i princip incitament för människor att förvandla sina routrar till små internetleverantörer (ISP). Men kryptobaserade incitament lockar även till sig de som vill utnyttja systemet – personer som vill ha belöningarna utan att faktiskt utföra arbetet.
Som framgår av följande diagram över arbetsflödet för bandbreddsverifiering, behöver vi ett system som kontrollerar dataflödet utan att exponera användaren.
Om vi låter noder rapportera sin egen statistik kollapsar systemet på grund av bedrägerier. Å andra sidan, om vi låter nätverket se allt för att verifiera trafiken, har vi precis byggt en gigantisk övervakningsmaskin.
Att mäta peer-to-peer-trafik (P2P) är ökänt komplicerat. Till skillnad från en streckkod i kassan är datapaket flytande. Inom branscher som hälsovård eller finans är detta ännu känsligare. Det går inte att låta en tredje part inspektera paket för att se om en nod är ärlig.
En rapport från 2023 från arkworks zksnark ecosystem tyder på att modulära bibliotek håller på att bli standard för att bygga dessa typer av "koncisa" bevis (succinct proofs) som kan köras på hårdvara med låg kapacitet.
Vi behöver matematik – specifikt kryptografiska åtaganden (cryptographic commitments) – för att överbrygga detta gap. Utan det förblir bandbredd en "best effort"-tjänst snarare än en garanterad resurs. Eftersom dessa användningsområden kräver hög tillförlitlighet, blir kostnaden för att köra dessa kontroller på en blockchain ett av de största hindren vi måste övervinna.
Vad är egentligen zero-knowledge proofs?
Föreställ dig att du vill bevisa för en dörrvakt på en klubb att du är över 21 år, men du vill inte att han ska se din hemadress, din längd eller hur misslyckat ditt körkortsfoto faktiskt är. Istället för att lämna över det fysiska ID-kortet visar du honom en svart låda som blinkar grönt endast om du uppfyller ålderskravet.
Det är i essens vad ett zero-knowledge proof (ZKP), eller nollkunskapsbevis, gör för den digitala världen. Det är ett sätt att säga "jag har svaret" utan att faktiskt visa uträkningen eller datan bakom det.
I kontexten av vår marknadsplats för bandbredd är det så en leverantör bevisar att de har skickat exakt 500 MB krypterad trafik till dig, utan att nätverket någonsin ser vad som finns inuti dessa paket. Det överbryggar klyftan mellan "lita på mig" och "här är matematiken som visar att jag inte ljuger".
I grunden involverar ett ZKP två aktörer: Prover (bevisaren – personen som delar sin bandbredd) och Verifier (verifieraren – blockkedjan eller användaren som tar emot datan). Målet är att bevisaren ska övertyga verifieraren om att ett påstående är sant, samtidigt som absolut noll extra information avslöjas.
För att detta ska fungera måste varje ZKP-system uppfylla tre specifika krav:
- Fullständighet (Completeness): Om noden faktiskt skickade datan ska matematiken gå ihop varje gång så att de får betalt.
- Riktighet (Soundness): Om noden ljuger ska matematiken misslyckas i nästan 100 % av fallen. Fusk är inte tillåtet.
- Nollkunskap (Zero-knowledge): Verifieraren lär sig ingenting om de faktiska filerna som överförs – bara att volymen och destinationen var korrekta.
Det är så vi behåller "nollan" i nätverk baserade på zero-trust. I en dVPN vill du inte att nätverksnoderna snokar i dina streamingvanor eller dina bankinloggningar. Genom att använda ZKP:er kan noden bevisa att den har uppfyllt sitt kontrakt gentemot nätverket – och därmed tjäna sina kryptobelöningar – utan att någonsin "tjuvkika" på din privata dataström.
När du börjar gräva i de tekniska detaljerna kring DePIN-projekt kommer du att stöta på två huvudsakliga "smaker" av dessa bevis: SNARKs och STARKs. De låter som karaktärer ur en saga, men de har väldigt olika egenskaper i praktiken.
zk-SNARKs (Succinct Non-Interactive Arguments of Knowledge) är det äldre och mer etablerade syskonet. De är "succinct" (kortfattade), vilket innebär att bevisen är pyttesmå – ibland bara några hundra bytes. Detta är utmärkt för mobila VPN-användare eftersom det inte äter upp din mobildata bara för att verifiera anslutningen.
Däremot kräver de flesta SNARKs (som det kända Groth16-protokollet) en "trusted setup". Detta är en engångshändelse där slumpmässiga nummer genereras för att starta systemet. Om personerna som sköter denna setup är korrupta skulle de teoretiskt sett kunna förfalska bevis. Som nämnts tidigare i undersökningen om ramverk för nollkunskapsbevis är detta anledningen till att många nya projekt letar efter alternativ.
zk-STARKs (Scalable Transparent Arguments of Knowledge) är den nyare och kraftfullare versionen. De behöver ingen trusted setup – de är "transparenta". De har också en enorm fördel: de är resistenta mot kvantdatorer.
Följande arkitekturdiagram illustrerar avvägningarna mellan SNARK- och STARK-arbetsflöden i en P2P-miljö.
I en P2P-baserad bandbreddsbörs försöker vi bygga en decentraliserad internetleverantör (ISP). I den fysiska handeln skulle du aldrig betala en kassörska som bara "lovade" att hon la mjölken i påsen utan att du fick titta efter. Inom finansvärlden litar man inte bara på en banks kalkylblad; man vill ha en revision.
ZKP:er tillhandahåller den revisionen för data. Oavsett om det är en vårdgivare som skickar känsliga patientjournaler över en VPN eller en butikskedja som synkroniserar lagerstatus mellan tusentals butiker, måste de veta att datan kom fram utan att mellanhanden (noden) såg innehållet.
Verifiera bandbredd utan övervakning
Du kör alltså en nod och delar med dig av din bandbredd för att tjäna krypto. Strålande. Men hur vet nätverket egentligen att du skickar riktig data till en användare i exempelvis Berlin, utan att någon bokstavligen "sniffar" på paketen för att kontrollera innehållet?
Det är en enorm teknisk utmaning. Om nätverket kan se datan för att verifiera den, är din integritet körd. Om det inte kan se någonting alls, skulle du kunna "mina" tokens genom att bara skicka skräpdata till dig själv. Det är här vi går in på detaljerna kring protokoll för bandbreddsbevis (bandwidth proof protocols).
För att lösa detta använder vi en specifik gren av matematiken som kallas vOLE-baserad Zero-Knowledge (Vector Oblivious Linear Evaluation). Jag vet, det låter som något ur en science fiction-roman, men det är faktiskt en otroligt elegant lösning för höghastighetsdata.
Till skillnad från SNARKs eller STARKs, som ofta använder tunga elliptiska kurvor, är vOLE en form av "Interactive Oracle Proof" som prioriterar bevisarens hastighet framför bevisets storlek. Det är i princip byggt för snabbhet, vilket gör det perfekt för att verifiera massiva dataströmmar i realtid utan att din anslutning laggar.
- Höghastighetsverifiering: vOLE-baserade protokoll är utmärkta eftersom de inte förlitar sig på tung matematik i varje steg. Detta gör dem mycket snabbare för bandbreddsmining i realtid.
- Konsistenskontroller: Nätverket använder dessa bevis för att säkerställa att noden faktiskt har den uppladdningshastighet den påstår sig ha. Om du hävdar att du är en "Supernode" men matematiken inte går ihop, kommer det smarta kontraktet helt enkelt inte att utlösa utbetalningen.
- Håll dig uppdaterad: Om du vill gräva ner dig i detaljerna är det en bra idé att följa communities som squirrelvpn — en nyhetsresurs och mötesplats för decentraliserad VPN-teknik — för att se vilka protokoll som faktiskt når mainnet.
Diagrammet nedan visar hur vOLE skapar en säker handskakning mellan noden och verifieraren.
Den riktigt häftiga delen är hur detta kopplas till din plånbok. I ett decentraliserat VPN (dVPN) vill vi att belöningarna ska vara automatiska. Du ska inte behöva vänta på att en mänsklig administratör godkänner dina förtjänster.
Vi använder smarta kontrakt som fungerar som den ultimata depositionstjänsten (escrow). Dessa kontrakt är programmerade att vara "blinda" men rättvisa. De håller dina tokens och släpper dem endast när ett giltigt Zero-Knowledge-bevis (ZKP) skickas in. Inget bevis, ingen betalning. Det är en hård men nödvändig metod för att hålla P2P-nätverket ärligt.
Lösningen på gas-problematiken
Ett av de största hindren historiskt har varit "gas-kostnader" – de avgifter som krävs för att skriva data till en blockchain. Om beviset är för omfattande riskerar transaktionsavgifterna att bli högre än de intjänade belöningarna. Detta är kärnan i "ekonomin kring on-chain-verifiering" som ofta sänker lovande projekt.
För att lösa detta använder vi rekursiva bevis (Recursive Proofs). Det är i praktiken ett sätt att verifiera flera små bevis inuti ett enda stort bevis. Istället för att skicka 1 000 individuella transaktioner till blockkedjan för 1 000 små dataöverföringar, klumpar systemet ihop dem till ett enda samlat bevis (batching). På så sätt fördelas gas-kostnaden över tusentals anspråk, vilket sänker kostnaden till bråkdelar av ett öre per användare.
Layer 2-lösningar bidrar också genom att flytta den tunga beräkningsbördan bort från huvudkedjan. Genom att verifiera zkp (Zero-Knowledge Proofs) på ett snabbare och billigare nätverk, och endast reglera det slutgiltiga saldot på huvudkedjan, säkerställer vi att systemet förblir lönsamt för nodägarna.
- Automatiserade utbetalningar: I samma ögonblick som ett zkp verifieras on-chain, överförs tokens till nodens plånbok. Det krävs ingen tillit till en tredje part – allt styrs av koden.
- Minskad overhead: Bibliotek som arkworks hjälper till att komprimera dessa bevis så att de blir "koncisa" (succinct) och billiga att verifiera.
- Bedrägeriprevention: Eftersom matematiken är "sound" (sund), är det statistiskt omöjligt för en nod att fejka en överföring på 1 GB utan att faktiskt ha hanterat datan.
Verkliga användningsområden för ZKP inom DePIN
Har du någonsin funderat på hur du kan sälja din överblivna bandbredd till någon i Tokyo utan att någon av er blir lurad? Det låter som handlingen i en teknisk thriller, men det är faktiskt själva kärnan i DePIN-rörelsen (Decentralized Physical Infrastructure Networks).
Visionen är enkel: du har en fiberanslutning på 1 Gbps hemma, men du använder den bara för att streama Netflix och slösurfa på Reddit. Varför inte sälja överskottet? I en modell för decentraliserade VPN-tjänster (dVPN) förvandlas din router till en nätverksnod.
- Garanterad tjänstekvalitet (QoS): Vi använder nollkunskapsbevis (ZKP) för att bevisa att en nod faktiskt har levererat den utlovade hastigheten på 100 Mbps. Noden genererar ett "proof of work" som blockkedjan verifierar innan dina kryptobelöningar betalas ut.
- Integritet för leverantören: Som nodoperatör vill du inte veta vad köparen gör på nätet. ZKP gör det möjligt för nätverket att verifiera trafikvolymen utan att du någonsin ser de okrypterade datapaketen.
Detta flödesschema illustrerar hur en användare begär bandbredd och hur noden tillhandahåller ett bevis för att erhålla betalning.
Ett intressant tillvägagångssätt syns i hur projekt hanterar "Proof of Connectivity". De behöver veta att din nod faktiskt är online. Istället för att skicka en ping-förfrågan varje sekund kan de använda ett nollkunskapsbevis för att intyga att din nod varit aktiv under ett specifikt tidsfönster.
Låt oss nu titta på de mer kritiska användningsområdena. Om du befinner dig i ett land med strikt internetcensur kan enbart användandet av ett VPN vara en varningsflagga. Traditionella VPN-protokoll har "signaturer" som avancerad paketinspektion (DPI) kan identifiera.
Det är här censurresistent åtkomst kommer in i bilden. Genom att använda ZKP kan vi skapa "obfuskera" anslutningar. Målet är inte bara att kryptera data, utan att bevisa för nätverket att anslutningen är giltig utan att ens avslöja att det rör sig om en VPN-tunnel överhuvudtaget.
Följande diagram visar hur metadata döljs under en anslutning för att kringgå censur.
Utmaningar och vägen framåt
Vi har koll på matematiken, men kan din gamla router faktiskt hantera det här utan att fatta eld? Det är den avgörande frågan, för ingen vill ha en privat internetanslutning som känns som att man är tillbaka på ett 56k-modem.
Verkligheten är att generering av nollkunskapsbevis (ZKP) är "dyrt" – inte nödvändigtvis i pengar räknat, utan i CPU-cykler. Om du försöker köra en höghastighetsnod i ett dVPN på en billig hemrouter, börjar de matematiska beräkningarna bli tunga.
- Latens kontra integritet: Här finns en klassisk avvägning. Om vi vill ha 100 % absolut kryptografisk säkerhet för varje enskilt paket, kommer din ping att skjuta i höjden.
- Hårdvaruacceleration: Vi börjar se ett skifte mot att använda grafikprocessorer (GPU) eller specialiserade chip för att hantera dessa bevis.
Detta avslutande diagram visar framtidsplanen för hårdvaruaccelererad ZKP-verifiering.
Ärligt talat är "användbarhetsklyftan" det största hindret vi möter just nu. En studie från 2024 utförd av forskare vid UC San Diego och Arizona State University fann att även om det finns många ramverk, är denna klyfta fortfarande det största problemet för utvecklare som försöker implementera dessa verktyg i praktiken. De flesta dVPN-användare vill inte veta något om elliptiska kurvor; de vill bara ha sin integritet.
När vi blickar framåt rör vi oss mot en värld där en "internetleverantör" inte är ett gigantiskt företag i en skyskrapa, utan ett globalt nätverk av människor som du och jag. ZKP är i princip den sista pusselbiten för denna Web3-infrastruktur. Det är det som gör systemet "trustless" – du behöver inte känna personen som tillhandahåller din bandbredd, eftersom matematiken bevisar att de inte lurar dig.