General Forking Lemma (q-query) #
Generalizes the forking lemma from ForkingLemma.lean (q = 1) to adversaries
making q >= 1 oracle queries, following Bellare-Neven (CCS 2006, Lemma 1).
Model #
A q-query adversary decomposes into:
- Coins phase: probabilistic, produces commitment
c - Respond phase: deterministic, given
cand all q oracle responses (modeled asFin q -> R), produces(j, y)wherejidentifies the relevant query
Reduction #
For each guess I : Fin q, we build a 1-query ForkableAdversary that
absorbs all q oracle responses into its coins phase and uses Function.update
to replace the I-th response with the single oracle challenge. The key
distribution lemma (sample_update_eq_sample) shows this replacement
preserves the uniform distribution.
Results #
qFork_success_ge_simple-- simple bound: average fork >= acc^2 - acc/|R|bellare_neven_aggregation-- abstract Cauchy-Schwarz aggregation stepsum_acceptAtGuess_eq-- partition of probability: sum accI = accqFork_success_ge-- Bellare-Neven: sum of indexed forks >= acc^2/q - acc/|R|
References #
- [Bellare, Neven, Multi-signatures in the plain public-key model, CCS 2006]
q-Query Adversary Model #
A q-query adversary for the ROM forking lemma.
- coins : X → Core.SPComp C
Probabilistic commitment phase.
Deterministic response: given all q oracle responses, produce (index, output).
Instances For
Acceptance probability of a q-query adversary.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Swap-at-j Equivalence #
The swap-at-j involution: (f, e) ↦ (Function.update f j e, f j).
Equations
- CatCrypt.Crypto.GeneralForkingLemma.swapAt j (f, e) = (Function.update f j e, f j)
Instances For
Equations
Instances For
Sample-Update Distribution Lemma #
Sampling f : Fin q → R and e : R uniformly, then applying
Function.update f j e, gives the same distribution as sampling
g : Fin q → R uniformly.
Guess Reduction #
Given guess I, create a 1-query adversary by absorbing all q oracle
responses into the coins phase and using Function.update at position I.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Each reduced adversary (full accept) has the same acceptance probability
as the q-query adversary, by sample_update_eq_sample.
Simple q-Forking Bound (Non-Indexed) #
Equations
- One or more equations did not get rendered due to their size.
Instances For
Simple bound: average fork success >= acc^2 - acc/|R|.
For every guess I, fork success >= acc^2 - acc/|R|.
Bellare-Neven Aggregation (Abstract) #
Indexed Forking: Partition + Main Theorem #
Partition of probability: sum_I Pr[idx=I and accept] = Pr[accept].
Indexed q-forking success probability (sum over all guesses).
Equations
- One or more equations did not get rendered due to their size.
Instances For
General Forking Lemma (Bellare-Neven 2006):
qForkSuccProb >= acc^2/q - acc/|R|.
Embedding q = 1 #
Convert a 1-query adversary to q=1 form.