Indholdsfortegnelse[Skjule][At vise]
Både i det virkelige liv og i den digitale verden ønsker vi ofte at bevise ting for andre. Inden de går ind i en kontorbygning, giver medarbejderne normalt en form for ID, før de går ind.
Når brugere forsøger at logge ind på en app såsom Facebook eller Twitter, skal disse tjenester først bede brugeren om at logge ind med en adgangskode, og lejlighedsvis sendes en engangskode (OTP) til deres mobile enhed.
En ulempe ved at bevise er, at vi ofte giver andre typer information væk. At give en adgangskode til en hjemmeside betyder stadig, at hjemmesiden selv opbevarer en kopi af den hash-kodede adgangskode på sine servere. Hvis nogen skulle hacke kontorbygningens medarbejder-id-scanner, kan de muligvis få fat i alles private nøgler.
Nulvidensbeviser eller ZKP'er giver mulighed for at validere en identitet eller transaktion uden at skulle angive yderligere oplysninger. På grund af dets applikationer i kryptografi er ZKP'er blevet tilpasset af blockchains at skabe sikre og skalerbare valideringsprotokoller.
Hvad er Zero-Knowledge Proofs?
Nulvidensbeviser blev først foreslået af MIT-forskerne Silvio Micali, Charles Rackoff og Shafi Goldwasser i 1985 i deres papir "Kundens kompleksitet af interaktive bevissystemer"
Denne artikel introducerede begrebet videnskompleksitet. Dette refererer til mængden af viden om et bevis, der overføres fra beviseren til verifikatoren. Nulvidensbeviser har til formål at give en part mulighed for at bevise, at en specifik udtalelse er sand over for en anden part uden at skulle afsløre andre oplysninger.
ZKP'er kan bruges som et sikkert alternativ til nuværende autentificeringssystemer og kan også føjes til blockchain-protokoller for at holde transaktioner private.
Hvordan virker ZKP'er?
Eksempel fra den virkelige verden
For at illustrere, hvordan nul-viden beviser fungerer, lad os tage et kig på et abstrakt eksempel på en ZKP.
Lad os sige, at du har en ven, der er rød-grøn farveblind. Du har med dig to identiske bolde, der kun er forskellige i farve: en rød og en grøn. For din ven ser de identiske ud, men som en person uden farveblindhed kan du nemt skelne dem fra hinanden.
Er det muligt for dig at bevise over for din ven, at de har en anden farve uden at afsløre, hvilken kugle der er rød eller grøn?
Der er faktisk en måde at bevise dette på uden at afsløre kuglernes farver. Først skal du lade din ven lægge begge bolde bag ryggen og fortælle ham om at vise enhver bold og skjule den igen. Dernæst fortæller du din ven, at han har valget mellem at vise den samme bold igen eller skifte den med den anden.
Hver gang en ny bold vises, kan du fortælle ham, om han skiftede bolden eller ej. Hvis du bliver ved med at gætte det rigtige opkald, bliver det mere og mere sandsynligt, at kuglerne er forskelligt farvede. Din ven skulle nu være overbevist om, at kuglerne er forskelligt farvede uden at skulle fortælle ham, hvilke kugler der har hvilken farve.
Praktiske anvendelser
De fleste praktiske eksempler på nul-viden beviser falder i to typer.
For det første kan ZKP'er bruges til at designe protokoller. Vi kan sikre, at forskellige parter ikke kan snyde eller drage fordel af protokollen. For det andet kan ZKP'er bruges til identifikation.
For eksempel kan vi bruge ZKP'er til at logge sikkert ind på en webapplikation uden at skulle afsløre selve adgangskoden.
Lad os se på et par eksempler på, hvordan vi kan bruge nul-viden beviser.
E-afstemning
En almindeligt omtalt anvendelse af ZKP'er er deres mulige rolle i online-afstemning. Lad os sige, at vi har en kommende folkeafstemning, hvor brugerne kan stemme om en foreslået politik. Hver stemmeberettigede har lov til at stemme enten 1 eller 0 på stemmesedlen.
Ved hjælp af ZKP'er kan vælgere bevise deres ret til at afgive en stemme uden at afsløre deres identitet. Dette sikrer, at hver stemme vil være virkelig anonym. En ekstra ZKP vil også blive brugt til at bevise, at en bestemt brugers stemme er en del af den endelige opgørelse af stemmer.
Med hensyn til selve stemmesedlernes indhold kan stemmesystemet også generere et nulkendskabsbevis på, at hver stemmeseddel indeholder enten et 1 eller 0. Dette gøres uden at skulle kende indholdet af selve stemmesedlen.
Blockchain privatliv
Blockchains såsom Bitcoin og Ethereum understøtter ikke indbygget private transaktioner. Så længe din Bitcoin-pung er offentlig, kan enhver gå til en blokudforsker som f.eks Blockstream for at se alle transaktioner, som tegnebogen er en del af.
I mellemtiden giver brug af en tjeneste såsom en bank eller betalingstjenester såsom Cash App eller Venmo dig mulighed for at handle privat. Denne bekvemmelighed kommer dog på bekostning af at afsløre dine oplysninger til den centraliserede tjeneste.
Vi kan kombinere anonymitet med decentralisering ved at tilføje ZKP'er til blockchain-protokollen. Kryptovalutaer såsom ZCash bruger ZKP'er til at skabe private transaktioner, der giver møntholdere mulighed for at bevare deres anonymitet. Flere af disse kryptovalutaer bruger en type ZKP kendt som zk-SNARK.
Disse ZKP'er kræver ingen interaktion mellem beviseren og verifikatoren.
Nul-viden rollups
ZK-rollups er en skalerbarhedsløsning, der gør det muligt at verificere transaktioner uden for kæden med det samme og med minimale gasgebyrer. De er en måde at kombinere et stort antal Layer 2-transaktioner og sende dem til Layer 1-protokollen.
Udover at give privatliv giver ZKP'er mulighed for skalering af komplekse systemer. Blockchain-protokoller kan bruge ZKP'er til at bevise, at brugerne har afviklet de rigtige transaktioner, har den passende saldo og så videre. Disse sikre, men skalerbare løsninger er kun mulige gennem de matematiske beviser udført off-chain i ZKP'er.
Protokoller som Loopring bruger nul-viden beviser til at hjælpe med at behandle off-chain transaktioner uden at skulle kompromittere sikkerheden.
Fordele ved Zero-Knowledge Proofs
- ZKP'er erstatter mindre pålidelige former for autentificering såsom pinkoder eller id-kort
- ZKPS øger skalerbarheden af blockchains
- Implementering af ZKP kræver simple krypteringsmetoder
- Brugen af ZKPS kan gøre systemerne mere sikre ved ikke at kræve, at unødvendig information skal lagres i systemet.
Konklusion
Databeskyttelse er allerede et stort problem i både centraliserede og decentraliserede systemer. Nulvidensbeviser giver forskellige parter mulighed for at bevise eller validere transaktioner og identiteter uden at skulle afsløre nævnte transaktioner eller identiteter.
Efterhånden som blockchain-teknologien bliver mere udbredt, vil vedtagelsen af ZKP'er til at håndtere verifikation sikkert være nøglen til skalerbarhedsproblemer.
Giv en kommentar