primitives.transcript#
Fiat-Shamir transcript using Poseidon2 sponge.
Attributes#
Classes#
Fiat-Shamir transcript using Poseidon2 sponge construction. |
Module Contents#
- class primitives.transcript.Transcript(arity: int = 4, custom: bool = False)[source]#
Fiat-Shamir transcript using Poseidon2 sponge construction.
- state: SpongeState = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0][source]#
- get_state(n_outputs: int = None) SpongeState[source]#
Get current sponge state (for grinding challenge).
- get_permutations(n: int, n_bits: int) list[int][source]#
Generate n pseudorandom indices, each using n_bits bits.
- set_state(state: list[int], out: list[int], out_cursor: int, pending_cursor: int, pending: list[int] = None) None[source]#
Restore transcript state from captured values.
Used to replay Fiat-Shamir transcript from a known state, enabling deterministic proof generation matching C++ output.
- Args:
state: Sponge state (16 elements) out: Output buffer (16 elements) out_cursor: Position in output buffer pending_cursor: Position in pending buffer pending: Pending buffer contents (optional, defaults to zeros)