Cryptology Academy · Les

Sigma-protocollen en Schnorr-identificatie

Implementeer een Sigma-protocol en volg hoe het Schnorr-bewijs werkt.

Les 2 van 413 stappen

Sigma-protocollen en Schnorr-identificatie is een gratis Cryptology Academy-les op CoddyKit. Dit is les 2 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Cryptology Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Cryptology Academy bevat in totaal 4 lessen.

Structuur van het sigmaprotocol

Een sigmaprotocol heeft 3 berichten: (1) Vastlegging: de bewijzer stuurt een vastlegging van een willekeurige waarde. (2) Uitdaging: de verificateur stuurt een willekeurige uitdaging. (3) Antwoord: de bewijzer stuurt een antwoord dat is berekend op basis van de uitdaging en het geheim. De verificateur accepteert of weigert.

Schnorr-identificatie

De bewijzer kent het geheim x (de privésleutel); openbare sleutel = g^x mod p (of punt X = x*G op een elliptische kromme). Het doel is kennis van x te bewijzen zonder x bekend te maken. Dit is een bewijs van kennis van een discrete logaritme.

Stappen van het Schnorr-protocol

(1) De bewijzer kiest een willekeurige r en stuurt de vastlegging R = r*G. (2) De verificateur stuurt uitdaging c (een willekeurig geheel getal). (3) De bewijzer stuurt antwoord s = r + c*x. (4) De verificateur controleert s*G == R + c*X. Als dat zo is, accepteert de verificateur het. De bewijzer kent x; antwoord s kan alleen met x worden berekend.

Beveiligingsanalyse

Volledigheid: een eerlijke bewijzer voldoet altijd aan s*G = r*G + c*x*G = R + c*X. Deugdelijkheid: twee protocolverlopen met dezelfde R maar verschillende uitdagingen c, c' leveren s, s' op, waaruit x = (s-s')/(c-c') kan worden teruggewonnen — een valsspeler kan dus geen twee geldige antwoorden voor dezelfde R produceren.

Zero-knowledge van Schnorr

Simulator (zonder kennis van x): kies willekeurige s en c en stel R = s*G - c*X in. Dit (R, c, s) vormt een geldige verdeling van protocolverlopen. De verificateur kan echte protocolverlopen niet onderscheiden van gesimuleerde — Schnorr is zero-knowledge voor eerlijke verificateurs.

Fiat-Shamir-transformatie

Maak Schnorr niet-interactief: vervang de uitdaging van de verificateur door c = Hash(R || message). De bewijzer berekent c zelf en stuurt het antwoord. Het resultaat: een bewijs met 2 elementen (R, s) dat iedereen kan verifiëren. Dit is het Schnorr-handtekeningschema.

Schnorr-handtekeningen

Sign(x, m): r ← willekeurig; R = r*G; c = Hash(R||m); s = r + c*x. Handtekening = (R, s). Verify: s*G == R + Hash(R||m)*X. Compact (64 bytes voor P-256), in bundels te verifiëren en aantoonbaar veilig in ROM. Toegepast in Bitcoin Taproot (BIP-340).

Pedersen-vastleggingen

C = r*G + v*H waarbij H een tweede onafhankelijke generator is. Legt waarde v vast met willekeur r. Bindend: je kunt de vastlegging niet openen naar een andere v (discrete logaritme). Verhulling: C is uniform verdeeld. Wordt gebruikt in op Schnorr gebaseerde bereikbewijzen en Bulletproofs.

Compositie: EN-bewijzen

Bewijs tegelijkertijd kennis van x1 EN x2: voer twee Schnorr-protocollen uit met dezelfde uitdaging (deel de uitdaging via Fiat-Shamir). De verificateur accepteert het bewijs alleen als beide deelbewijzen geldig zijn. Hiermee kun je meerdere beweringen in één interactie bewijzen.

Compositie: OF-bewijzen

Bewijs kennis van x1 OF x2 zonder bekend te maken welke: gebruik de simulator voor één tak om een vals protocolverloop te berekenen en splits de uitdaging vervolgens over beide takken. De verificateur ziet twee geldig ogende protocolverlopen die samen de echte uitdaging vormen. Dit worden ringhandtekeningen genoemd.

Toepassingen

Schnorr-identificaties: elektronische paspoorten (PACE-protocol). Schnorr-handtekeningen: Bitcoin Taproot, Monero (RingCT gebruikt Schnorr-OF-bewijzen), Signal Protocol (X3DH-sleutelovereenkomst). Pedersen-vastleggingen: Confidential Transactions, Bulletproofs en versleuteling van Zcash Sapling-notities.

Korte controle

Wat controleert de verificateur in de laatste stap van het Schnorr-identificatieprotocol?

Samenvatting

Sigmaprotocollen: vastleggen-uitdagen-antwoorden. Schnorr bewijst kennis van een discrete logaritme. Fiat-Shamir maakt het niet-interactief (Schnorr-handtekening). Hierna: zk-SNARKs voor beknopte niet-interactieve bewijzen.

Gratis beginnen

Leer Cryptology Academy met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
67
Lessen
261

Veelgestelde vragen

Is de les “Sigma-protocollen en Schnorr-identificatie” gratis?

Ja — de volledige tekst van “Sigma-protocollen en Schnorr-identificatie” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Cryptology Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Cryptology Academy bevat in totaal 4 lessen.

Wat leer ik in “Sigma-protocollen en Schnorr-identificatie”?

Implementeer een Sigma-protocol en volg hoe het Schnorr-bewijs werkt. Je oefent met Cryptology Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Cryptology Academy te beginnen?

Ervaring vooraf is niet nodig. Cryptology Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 2 van 4.

Hoe lang duurt de les “Sigma-protocollen en Schnorr-identificatie”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Cryptology Academy?

Ja. Elke les over Cryptology Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. ZKP-intuïtie: de grot van Ali Baba
  2. Sigma-protocollen en Schnorr-identificatie
  3. zk-SNARKs: beknopte niet-interactieve argumenten
  4. ZKP-toepassingen: ZK-rollups en privacy coins
← Terug naar Cryptology Academy