03 — Auditing · Failure mode
Unsound Fiat–Shamir transcripts
Challenges are derived from a hash that omits values it must bind — public inputs, commitments, or protocol parameters. A prover can then choose those values after seeing the challenge and forge proofs for false statements. Publicly known as the 'Frozen Heart' class, found across multiple independent implementations.
Mitigation
Hash the complete transcript, in a fixed order, including all public inputs and every commitment, with domain separation. Compare the implementation against the paper's transcript definition line by line rather than assuming the library handles it.
Related pages
Cite this page
MarketComp (2026). Unsound Fiat–Shamir transcripts. The ZK Field Manual (Version 1.3). MarketComp. https://zkpick.com/audit/failure-modes/unsound-fiat-shamir-transcripts/
@misc{zkfieldmanual-unsound-fiat-shamir-transcripts,
title = {Unsound Fiat–Shamir transcripts — The ZK Field Manual},
author = {MarketComp},
year = {2026},
version = {1.3},
howpublished = {\url{https://zkpick.com/audit/failure-modes/unsound-fiat-shamir-transcripts/}},
note = {Accessed: YYYY-MM-DD}
}