EXHIBIT 05● REAL HASH-DERIVED CHALLENGE
Fiat-Shamir (Non-Interactive Proof)
Turn interactive challenge-response into a single hash-bound proof transcript
✓ Completeness ✓ Soundness (ROM model) ✓ Practical NIZK pattern
Cryptographic honesty: challenge generation is real SHA-256 over transcript inputs and verification is real modular arithmetic. Parameters are intentionally small for readability.

In Schnorr, the verifier sends a random challenge c. In Fiat-Shamir, we remove that verifier message and derive c by hashing public transcript data. This turns an interactive proof into a single self-contained proof object.

That "hash as verifier" pattern is the bridge from educational Sigma protocols toward many modern signature and proof systems used in production.

Toy vs Production Parameters
DimensionThis ExhibitProduction Expectation
Hash inputR || y || messageDomain separated transcript with context binding
Challenge range1..50Large scalar field challenge
Math domainSmall prime modulusSecure elliptic curves or large finite fields
Security modelDidactic random-oracle intuitionAudited proofs and protocol-specific assumptions
PROVER OUTPUT
Message
Nonce commitment R = g^r mod p
Challenge c = H(R || y || message) mod 50 + 1
Response s = r + c·x mod (p-1)
VERIFIER CHECK
g^s mod p
R · y^c mod p
Ready.
— protocol log —
What changes from Schnorr: the verifier's random challenge is replaced by a deterministic challenge derived from hashing transcript data. This gives a non-interactive proof object at the cost of relying on random-oracle style assumptions.