Skip to content

Home > Proof Systems > Pinocchio

Pinocchio

Description

The first end-to-end system that made verifiable computation with SNARKs almost practical. Introduced the full pipeline: compile a computation to a circuit, reduce to R1CS, then to QAP (Quadratic Arithmetic Program), and prove using bilinear pairings. Directly preceded Groth16.

Technical Characteristics

Complexity: - Prover: O(n log n) where n = circuit size - Verifier: O(1) (constant-time verification) - Proof Size: ~288 bytes - Setup: trusted (per-circuit CRS)

Security: - Assumption: computational (q-PKE, q-PDH assumptions) - Post-quantum: no (pairing-based) - Basis: Bilinear pairings, QAP

Dependencies

Based on: NIZK-Blum, QSP-GGPR13 Circuit representation: R1CS

Applications

Used by: Groth16

Resources