ZKP Hello World — Schnorr proof (interactief)

Doel: Prover bewijst kennis van x zodat y = g^x mod p, zonder x te tonen.
Verifier checkt: g^s ≡ t · y^c (mod p).

1) Parameters (toy)

p
q
g

We gebruiken een veilige-prime structuur: p = 23, q = 11, en een generator g van de orde-q subgroep.

2) Sleutel (geheim + publiek)

Geheim x (0..q-1)
Publiek y = g^x mod p

3) Proof (commit → challenge → response)

Random r
Commit t = g^r mod p
Challenge c (0..q-1)
Response s = (r + c·x) mod q

4) Verificatie

Links: g^s mod p
Rechts: t · y^c mod p
Resultaat

Tip: verander x na het commitment maar vóór response om te zien dat verificatie faalt.