Fischlin Transform: Completeness #
The completeness bound for the Fischlin transform (Fischlin 2005, Lemma 1). The
random-oracle game is analysed through an equivalent pure-probability model game
G, culminating in almostComplete: an honest proof verifies except with
probability at most completenessError ρ b S (FinEnum.card Chal).
Completeness #
Completeness error bound for the Fischlin transform (Fischlin 2005, Lemma 1).
Given ρ repetitions, b-bit hashes, max sum S, and challenge space size t:
the error is ρ · ((2^b - ⌊S/ρ⌋ - 1) / 2^b)^t.
Derivation: by a union/pigeonhole bound over repetitions, if the sum of minimum
hash values exceeds S, at least one minimum exceeds ⌊S/ρ⌋. The probability
that the minimum of t independent uniform samples from Fin (2^b) exceeds k
is ((2^b - k - 1) / 2^b)^t.
For S = 0 this simplifies to ρ · ((2^b - 1) / 2^b)^t.
The intended regime is 0 < ρ; theorem statements below make that explicit.
Instances For
Model game G for the completeness analysis #
The random-oracle game is analysed via an equivalent pure-probability model G. In G,
each random-oracle query of the prover's search is replaced by a fresh uniform draw from
Fin (2^b) (justified because every query in sign is at a distinct fresh input, hence a
cache miss), and the verifier reads the kept hash value directly from the search result rather
than re-querying (a cache hit returning the same value).
The full simulation implementation (unifFwdImpl + randomOracle) interpreting the Fischlin
random-oracle world into StateT QueryCache ProbComp. This is definitionally the implementation
used by the bundled withStateOracle runtime.
Instances For
Simulating the verifier's Fin.mOfFn of random-oracle re-queries on a cache that already
stores every re-queried record is deterministic: each query is a cache hit returning the stored
value, leaving the cache untouched. The result is the pure product of the per-repetition outputs
f i (hash i), where hash i is the value cached at record i.
Almost completeness of the Fischlin transform: if the underlying Σ-protocol is
perfectly complete, then the signature scheme verifies with probability at least
1 - completenessError ρ b S t where t = FinEnum.card Chal is the challenge space size.
Unlike the Fiat-Shamir transform (which is perfectly complete), the Fischlin transform
has a non-zero completeness error because the prover's proof-of-work search may fail
to find hash values whose sum is at most S.