Skip to content

Second Protocol Version (Succinct, Probabilistic Check) ​

This improved protocol builds on our earlier version by using:

  1. Random challenges sampled by the validator Ξ³1,Ξ³2,Ξ³3,
  2. Single-point polynomial evaluations to check t(Ξ³1)=Q(Ξ³1)Z(Ξ³1),f1(Ξ³2)=Q1(Ξ³2)Z1(Ξ³2),f2(Ξ³3)=Q2(Ξ³3)Z1(Ξ³3).

This lowers the verification cost from a full polynomial multiplication (O(d2)) to an O(d) evaluation, making verification more succinct.

Protocol Flow ​

  1. Compute Fibonacci & Circuit Polynomials

    • (Prover) Generates F42 by building the full circuit table.
    • (Prover) Encodes the circuit columns as polynomials a(x),b(x),c(x).
  2. Compute Constraint Polynomials

    • (Prover) Defines t(x)=qL(x)β‹…a(x)+qR(x)β‹…b(x)+qM(x)β‹…(a(x)β‹…b(x))βˆ’c(x) and finds Q(x) such that t(x)=Q(x)β‹…Z(x).
    • (Prover) Similarly, for the recursive constraints: f1(x)=a(x+1)βˆ’b(x),f2(x)=b(x+1)βˆ’c(x), with quotient polynomials Q1(x),Q2(x) satisfying f1(x)=Q1(x)β‹…Z1(x) and f2(x)=Q2(x)β‹…Z1(x).
  3. Send Polynomials

    • (Prover) Sends a(x),b(x),c(x),Q(x),Q1(x),Q2(x) to the validator.
  4. Verification (Random Challenge & Single-Point Check)

    • (Validator) Samples random values Ξ³1,Ξ³2,Ξ³3∈Fp.

    • (Valdiator) Computes on its own: t(Ξ³1),f1(Ξ³2),f2(Ξ³3)

    • (Validator) Checks:

      t(Ξ³1)=?Q(Ξ³1)Z(Ξ³1),f1(Ξ³2)=?Q1(Ξ³2)Z1(Ξ³2),f2(Ξ³3)=?Q2(Ξ³3)Z1(Ξ³3).
    • By the Schwartz–Zippel Lemma, if t(x)β‰ Q(x)Z(x) (etc.) the probability it also coincides at a random Ξ³ is at most dp.

  5. Accept or Reject

    • (Validator) If all checks pass, the proof is accepted; otherwise, it is rejected.

Diagram of Protocol ​

Below is a simplified diagram illustrating these steps:

With this approach, the validator does a constant amount of final checks (polynomial evaluations), regardless of the polynomial degree d, achieving succinct verification.

𝒫𝔩𝔬𝔫𝒦 Tutorial by zkSecurity