Module verifier

Source
Expand description

Labrador Verifier

This module implements the verifier side of the protocol in Fig. 2 (and the verification algorithm in Fig. 3) of the paper. The prover proof proof is accepted iff every arithmetic check listed in Fig. 2 and lines 8–20 of Fig. 3 succeeds.

The verifier receives:

  • a public statement st;
  • the CRS containing the Ajtai commitment matrices (\mathbf{A},\mathbf{B},\mathbf{C},\mathbf{D});
  • a proof proof comprising [(\mathbf{u}_1,\mathbf{u}_2,,\vec p,,b’’^{(k)},\vec z,\tilde\mathbf t,\tilde\mathbf g,\tilde\mathbf h)]
    exactly as dispatched by the prover.

§Outline of the nine verifier checks

The implementation follows Fig. 3 literally:

On failure the function returns VerifierError precisely identifying the violated condition.

Structs§

LabradorVerifier
Implements the algorithm executed by the verifier (\mathcal{V}) in the paper.

Enums§

VerifierError