zorch.challenge¶
Shared Fiat-Shamir challenge-field policy.
ChallengePolicy
dataclass
¶
The field Fiat-Shamir challenges are drawn in.
Explicit because it is a soundness parameter: an extension challenge raises the soundness floor over a base-field one. Naming it also promotes — an extension policy draws extension challenges against a base-field claim.
Naming the transcript's own field costs nothing: reinterpret_challenge
is then the identity, so it is the one-squeeze schedule.
Source code in zorch/challenge.py
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | |
base_limbs
property
¶
base_limbs: int
Words per challenge over the challenge field's own base field, for sites fixing a static jit-zone width before a transcript is in hand.
limbs_over ¶
limbs_over(transcript_field: Any) -> int
Transcript words per challenge: the degree ratio, so an extension-native sponge spends one word where a base-field sponge spends the extension's degree.
Source code in zorch/challenge.py
44 45 46 47 48 49 50 51 52 53 54 55 | |
challenge_limbs ¶
challenge_limbs(dtype: Any) -> int
Base-field squeezes required to construct one element of dtype.
Source code in zorch/challenge.py
16 17 18 19 20 21 | |