Zero-knowledge handshake
A proof is not a session.
Fiat–Shamir proofs can be replayed. A handshake binds the proof to a fresh nonce, an audience, and an ephemeral Diffie–Hellman key. The orchestrator can then route confidential work against a session, not a screenshot of a transcript.
| Protocol | Moves | Replay | Session key |
|---|---|---|---|
| Fiat–Shamir NIZK | 1 message | Reusable unless bound | None |
| 3-move Schnorr | Commit → challenge → respond | Nonce is single-use | None |
| This lab (SIGMA-style) | Schnorr + ephemeral DH | Nonce + confirm bound | Yes — hash shown, key never leaves the server |
| Noise / IKE / TLS-zk | Full AKE stacks | Channel binding | Production transport. Later. |
Verifier · Orchestrator
02609b2024339695b76a29ebbb28cd4bdc8169fe8437a5ddaf43ff36335093e9ed
After established, Next move is a replay — it must fail.
- Open
- Commit
- Challenge
- Session
Open a handshake. Three moves after that: commit, challenge, respond.
Sessions
No handshakes yet.