Skip to main content

Crate zinc_protocol

Crate zinc_protocol 

Source
Expand description

Zinc+ PIOP for UCS - end-to-end protocol.

Implements the Zinc+ compiler pipeline (cf. paper, Section “Zinc+ Compiler”):

Z[X]  --\phi_q-->  F_q[X]  --MLE eval-->  F_q[X]  --\psi_a-->  F_q
        Step 1               Step 2                  Step 3

After the three compiler steps, the protocol continues with:

  • Combined CPR + Booleanity + Lookup multi-degree sumcheck (CPR group at degree max_deg+2; optional degree-3 booleanity groups for committed witness binary columns and affine virtual targets; one lookup group per table type; shared eval point r*)
  • $\alpha’$ bridge: squeeze a fresh challenge $\alpha’$ after the booleanity bit_slice_evals are absorbed, and append one extra $\alpha’$-projected MLE + up-eval to the multipoint-eval inputs per witness binary-poly column (see BooleanityChecker)
  • Affine virtual bridge: collapse each unshifted virtual at the same alpha' and compare it directly with the affine combination of its public/committed source projections at r*
  • Multi-point evaluation sumcheck (combines up/down evals at r* into a single evaluation point r_0)
  • Lift-and-project (unprojected MLE evaluations at r_0)
  • Zip+ PCS open/verify at r_0

Modules§

fold
prover
shared_challenge
Shared-challenge sampling across constraint families.
verifier

Structs§

Proof
Full proof produced by the Zinc+ PIOP for UCS.
ZincPlusPiop
Main struct for the Zinc+ PIOP. The protocol is implemented as associated functions on it.

Enums§

ProtocolError
Error type for error happening during the protocol execution (prover and verifier).

Traits§

ZincTypes
Trait bundling the various type parameters for the public inputs (NYI), witness and Zinc+ PIOP.

Functions§

project_scalar_fn
Project a DensePolynomial scalar to DynamicPolynomial by projecting each coefficient via \phi_q.