%% You should probably cite draft-irtf-cfrg-fiat-shamir-02 instead of this revision. @techreport{irtf-cfrg-fiat-shamir-00, number = {draft-irtf-cfrg-fiat-shamir-00}, type = {Internet-Draft}, institution = {Internet Engineering Task Force}, publisher = {Internet Engineering Task Force}, note = {Work in Progress}, url = {https://datatracker.ietf.org/doc/draft-irtf-cfrg-fiat-shamir/00/}, author = {Michele OrrĂ¹}, title = {{Fiat-Shamir Transformation}}, pagetotal = 12, year = 2025, month = aug, day = 9, abstract = {This document describes how to construct a non-interactive proof via the Fiat\textendash{}Shamir transformation, using a generic procedure that compiles an interactive proof into a non-interactive one by relying on a stateful hash object that provides a duplex sponge interface. The duplex sponge interface requires two methods: absorb and squeeze, which respectively read and write elements of a specified base type. The absorb operation incrementally updates the sponge's internal hash state, while the squeeze operation produces variable-length, unpredictable outputs. This interface can be instantiated with various hash functions based on permutation or compression functions. This specification also defines codecs to securely map elements from the prover into the duplex sponge domain, and from the duplex sponge domain into verifier messages.}, }