Sequential composition of interactive reductions #
Reduction.append runs a reduction from rel₁ to rel₂ and then one from rel₂ to rel₃; its
rounds are the concatenation s₁ ++ s₂. Every construction is by structural recursion on s₁,
so for a concrete protocol the transcripts, challenges and message queries of the composition
compute to those of the components without casts.
The composition theorems are stated in the plain model, where every security notion holds from
every state of the (trivial) world; in oracle models one composes interactive protocols first and
compiles them once (Fiat–Shamir, BCS). All errors add up. Straight-line knowledge soundness
composes with the named extractor Verifier.extractAppend. Its default intermediate statement is
used only when the first verifier rejects; without one, the composed extractor need not exist
when the intermediate statement type is empty.
Main definitions #
Interactive.Reduction.append,Interactive.Verifier.append,Interactive.Reduction.iterate.Interactive.ProverStrategy.append,Interactive.ProverStrategy.split,Interactive.ProverStrategy.bindLeaf.Interactive.Verifier.extractAppend.
Main results #
Interactive.Reduction.Complete.append,Interactive.Verifier.Sound.append,Interactive.Verifier.KnowledgeSound.append,Interactive.Verifier.RbrSound.append.Interactive.Reduction.Complete.iterate,Interactive.Verifier.RbrSound.iterate.Interactive.plainLaw_run_append,Interactive.plainLaw_run_split: execution laws of composed and split strategies.
Concatenate transcripts.
Instances For
Split a transcript of a composition.
Instances For
Concatenate per-challenge data.
Instances For
Split per-challenge data of a composition.
Instances For
Queries about the messages of s₁ are queries about those of s₁ ++ s₂.
Instances For
Queries about the messages of s₂ are queries about those of s₁ ++ s₂.
Instances For
Continue a strategy with another one once it ends.
Instances For
Lift a decision on s₁ to the composition.
Instances For
Lift a decision on s₂ to the composition.
Instances For
Sequential composition of verifiers: the second decides on the first one's output.
Instances For
Sequential composition of reductions.
Instances For
Round-by-round composition (proved) #
The composed verifier's output is the second verifier's output on the first one's.
The round-by-round condition is invariant under equivalent state functions and events.
Round-by-round soundness composes, with the concatenated per-round errors.
Composition of completeness, soundness and knowledge soundness #
The composed straight-line extractor: extract the intermediate witness from the second half of
the transcript, at the statement the first verifier outputs, then the input witness from the first
half. The default intermediate statement y₀ is used only when the first verifier rejects, when
the composed verifier rejects too.
Instances For
The total error of concatenated per-round errors.
Continue a strategy with an effect at its end that sees the transcript.
Instances For
Running a strategy continued by an effect at its end: the effect sees the transcript.
Split a strategy for s₁ ++ s₂ into a strategy for s₁ ending with one for s₂.
Instances For
Running a composed strategy runs the first part, then the continuation on its result.
Running any strategy for s₁ ++ s₂ runs its split: the first part, then the rest.
Splitting a concatenated transcript recovers its halves.
Completeness errors add up under sequential composition.
Soundness errors add up under sequential composition, through the intermediate language.
Straight-line extractors compose, with the sum of the knowledge errors. The first verifier's knowledge soundness is applied to a prover that simulates the second phase with the public samplers.
Iteration #
The reduction without rounds that keeps the statement and the witness.
Instances For
Run the stages R 0, …, R (k - 1) in sequence. Stage i has its own rounds s i and
reduces statements of type S i with witnesses W i to those of stage i + 1.
Instances For
Concatenate per-round errors of the stages.
Instances For
The reduction without rounds is perfectly complete.
Iterated completeness: if every stage R i with i < k is complete from rel i to
rel (i + 1) with error ε i, the first k stages are complete from rel 0 to rel k with
the sum of the errors.
Iterated round-by-round soundness, with the per-round errors of the stages in order.
The total error of the stages' concatenated per-round errors.