Populære emner
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.
Mens vi venter på dommen i Storm-rettssaken, er det godt å bli minnet om at skjermede bassenger bare er matematikk, og ikke så vanskelig å forstå.
Hvem som helst kan implementere en.
Så her er en tråd med den grunnleggende intuisjonen om hvordan de fungerer:
Målet er å bygge et system der all informasjon i hver transaksjon forblir helt privat for brukerne.
Vi bør ikke forvente noe mindre av våre transaksjonssystemer.
Dette er den grunnleggende menneskerettigheten til privatliv.
Problemet er, hvis all informasjon er privat, hvordan vet blokkjeden at tx er gyldig? Hvordan vet den at brukeren faktisk har pengene de har tenkt å sende? At de ikke dobler pengene?
Det åpenbare svaret er: zk-bevis. Men er det virkelig så enkelt?
Anta at du har en konto med en saldo på 10. Du vil sende 5 til Romans forsvar. Så du lager et zk-bevis som viser at du har 10, og transaksjonen din sender 5. Virker enkelt nok!
Men vent! Da du laget et bevis på å ha 10, gjaldt det beviset en eller annen stat i fortiden, før den siste blokken der txen din ble inkludert. Kanskje siden den gang har du brukt alle myntene! Hvordan kan du bevise at du fortsatt har 10, ved den siste blokken?
Dette er faktisk ganske vanskelig, og er grunnen til at skjermede bassenger egentlig ikke fungerer med kontobaserte systemer - det er ingen enkel, pålitelig måte å bevise for en blokkjede, i zk, den siste tilstanden i sanntid.
Løsningen? Bruk UTXO-er. De berømte "Unused Tx Outputs" fra Bitcoin.
Med UTXO-er har du ikke en eneste oppdaterbar konto, du har individuelle "notater" som bare kan brukes én gang, i sin helhet (som en ekte mynt). UTXO-systemer er litt irriterende å utvikle med generelt, men denne "bruk en gang"-egenskapen gjør dem veldig nyttige for skjermede bassenger
I et UTXO-system som Bitcoin, når du går for å bruke en UTXO, kan alle de fulle nodene sjekke at UTXO eksisterer (den ble opprettet tidligere) og at den ennå ikke er brukt. Dette er rett frem. Men hvis alle dataene i UTXO er kryptert, hvordan kan vi sjekke dette?
Ikke bare er dataene kryptert, men vi ønsker ikke engang å avsløre *hvilken* UTXO som blir brukt. Hvis vi gjorde det, ville den som sendte deg UTXO-en vite når du brukte den. I en ideell skjermet bassengdesign lekkes NULL informasjon av en transaksjon.
Kjernetrikset med skjermede pooler er å introdusere en "nullifier"-verdi som kan avsløres offentlig, men som er unikt avledet av brukeren for hver UTXO. For å bruke UTXO, sjekker blokkjeden at nullifieren ikke allerede eksisterer. Dette håndhever at hver UTXO bare kan brukes én gang
Nå kan vi komme tilbake til zk-beviset vårt. Vi må rett og slett bevise at UTXO-en vi bruker faktisk eksisterer på kjeden, og at nullifieren vi avslørte for den er korrekt avledet fra UTXO-en vi bruker.
Det er det!
I praksis betyr dette at skjermede bassengsystemer vanligvis holder to distinkte Merkle-trær. Den ene inneholder hashene til UTXO-ene (UTXO-er blir ofte referert til som «notater», og deres hasher som «noteforpliktelser»), og den andre inneholder nullifierene. Begge trærne er kun tilføyd!
Når et nytt notat opprettes, lagres hashen i Note Merkle-treet. Selve notatet er kryptert. Når en bruker senere går for å bruke den seddelen, beregner de nullifieren for notatet, og de lager et zk-bevis som viser at noten er i Merkle-treet og nullifieren er riktig
Nullifieren avsløres offentlig, og kjeden sjekker at den ikke allerede eksisterer i nullifier-treet. Den blir deretter lagret der, slik at notatet ikke kan brukes igjen. Ingen kan faktisk si hvilken seddel som blir brukt, siden den originale seddelen blir stående alene i seddeltreet!
Der har du det, den grunnleggende utformingen av alle skjermede bassenger i dag, inkludert @Zcash, @TornadoCash, @penumbrazone, @namada og mer
Selvfølgelig er det mye mer involvert i design av skjermet basseng. Følg med for flere tråder der vi dykker dypere inn i disse mekanikkene
@AThryver @0xkaiserkarel Vanlig misforståelse og uten tvil misvisende bruk av begrepet "zk" her. Se

24. juli 2024
TEE? ZKP? MPC? FHE?
Everything you need to know about the most important three letter acronyms in crypto
Or, how you win friends and TEE-fluence people 🧵
33,37K
Topp
Rangering
Favoritter