Fiat-Shamir Heuristic
The Fiat-Shamir heuristic (or Fiat-Shamir transform) is a technique for compiling a public-coin interactive protocol into a non-interactive one by replacing the verifier’s random challenges with the output of a hash function applied to the transcript so far. The transform is proven secure when the hash function is modeled as a random oracle, but is known to fail in important settings when instantiated with concrete hash functions.
Description
Given a -message public-coin interactive protocol with messages , the Fiat-Shamir transform produces a non-interactive protocol as follows: the prover computes each verifier challenge itself as
where is a hash function modeled as a random oracle. The resulting proof can be verified by any party who recomputes the same hash challenges.
The transform is particularly useful for constructing digital signatures from identification schemes (the original application of Fiat and Shamir), and for building non-interactive zero-knowledge proofs. It creates no succinctness, since the proof is the prover’s transcript; applied to a PCP or a public-coin IOP whose oracles are Merkle-committed, it yields succinct non-interactive arguments in the random oracle model — Mic00, BCS16 (for IOPs, given state-restoration soundness).
Security in the ROM
In the random oracle model, the Fiat-Shamir transform preserves soundness and zero-knowledge (and simulation-extractability) for a broad class of protocols. This is the primary justification for its widespread use.
Known Failures
Standard Model (GK03)
Goldwasser and Kalai showed that the Fiat-Shamir transform is uninstantiable in the standard model GK03: there is a secure 3-round public-coin identification scheme whose Fiat-Shamir signature scheme is secure in the ROM, yet for every efficient there is an efficient with
where is the transform of with in place of the oracle. This demonstrates that the random oracle cannot always be replaced by an actual hash function, even a cryptographically strong one.
Natural Protocols (KRS25)
Prior counterexamples to Fiat-Shamir were contrived — protocols specifically engineered to fail. Khovratovich, Rothblum, and Soukhanov gave the first counterexample for a standard, widely-studied protocol KRS25. They showed that the Fiat-Shamir transform applied to the GKR succinct interactive argument (from GKR15) allows an efficient prover to prove false statements for explicit families of circuits.
Participates in
Barriers
- No fixed-construction reduction from Fiat-Shamir + GKR to SNARK
- No fixed-construction reduction from Fiat-Shamir + Hash function to DS
- No fixed-construction reduction from Fiat-Shamir to NIZK
Used via Fiat-Shamir Heuristic