Skip to content

New Protocol Version

We divide the protocol into Setup, Prover Computation, Verifier Challenge, and Proof & Verification phases.

1. Setup Phase

  1. (Both) Agree on the public parameters (S1,S2).
  2. (Verifier) Publicly specifies the maximum polynomial degree d, if needed.
  3. (Trusted Ceremony / Setup) Generates a secret τ and produces (S1,S2).
    After this step, τ (the toxic waste) must be discarded to maintain security.

2. Prover Computation Phase

  1. (Prover) Interpolates the column polynomials a(x),b(x),c(x).
  2. (Prover) Constructs quotient polynomials Q(x),Q1(x),Q2(x) with respect to the vanishing polynomials Z(x),Z1(x).
  3. (Prover) Commits to each polynomial by computingca=commit(a),cb=commit(b),cc=commit(c),cQ=commit(Q),and sends these commitments to the Verifier.

3. Verifier Challenge Phase

  1. (Verifier) Samples random challenges γ1,γ2,γ3.
  2. (Verifier) Sends the challenges to the Prover.

4. Proof & Verification Phase

  1. (Prover) Evaluates each committed polynomial at its corresponding challenge. For example,

    a(γ1),b(γ1),c(γ1),Q(γ1).

    Then constructs proofs πa,πb,πc,πQ via the KZG evaluation method. The Prover sends

    (a(γ1),b(γ1),c(γ1),Q(γ1))

    and

    (πa,πb,πc,πQ)

    to the Verifier.

  2. (Verifier) Uses the commitments (ca,cb,cc,cQ) and the proofs πa,πb,πc,πQ to verify each polynomial evaluation.
    It then checks the constraint

    a(γ1)+b(γ1)c(γ1)=Q(γ1)Z(γ1).

    Since the Verifier can construct Z(x) itself, it only needs to check t(γ1)=Q(γ1)Z(γ1), where t(x)=qL(x)a(x)+qR(x)b(x)+qM(x)(a(x)b(x))c(x).

  3. (Verifier) Repeats a similar check for the recursive constraints:

    a(γ2+1)b(γ2)=Q1(γ2)Z1(γ2),b(γ3+1)c(γ3)=Q2(γ3)Z1(γ3).
  4. (Verifier) If all these checks pass, the Verifier accepts. Otherwise, it rejects.

As you can see, both the number of message exchanges and the operations performed by the Verifier are now almost constant. In other words, the Verifier can ask the Prover to compute F62 or F10002 and still carry out about the same number of computations. The only operation dependent on the number of rows of the circuit on the verifier's side is the computation of the vanishing polynomials Z and Z1.

Protocol Diagram

The following diagram visually represents the four main phases of the protocol:

  1. Phase 1: Setup

    • Both parties agree on the public parameters (S1,S2).
    • The Verifier may specify the maximum polynomial degree d.
    • A trusted ceremony generates the secret τ, then discards it, while producing the public parameters (S1,S2).
  2. Phase 2: Prover Computation

    • The Prover interpolates the circuit columns (e.g., Fibonacci) into polynomials a(x),b(x),c(x).
    • Constructs the quotient polynomials Q(x),Q1(x),Q2(x) relative to vanishing polynomials Z,Z1.
    • Commits to these polynomials (e.g., ca,cb,cc,cQ,) and sends the commitments to the Verifier.
  3. Phase 3: Verifier Challenge

    • The Verifier randomly samples challenges γ1,γ2,γ3.
    • Sends these challenges to the Prover.
  4. Phase 4: Proof & Verification

    • The Prover evaluates each committed polynomial at the corresponding γ value and constructs proofs (e.g., πa,πb).
    • Sends the polynomial evaluations and proofs to the Verifier.
    • The Verifier checks that the evaluations match the commitments, confirming equations liket(γ1)=Q(γ1)Z(γ1).
    • If all checks pass, the Verifier accepts; otherwise, it rejects.

𝒫𝔩𝔬𝔫𝒦 Tutorial by zkSecurity