ZIP

Zero-Knowledge AI Inference with High Precision

Arman Riasi, Haodi Wang, Rouzbeh Behnia, Viet Vo, Thang Hoang

Venue
ACM CCS 2025
Date
2025
Affiliation
Virginia Tech / CityU Hong Kong / South Florida / Swinburne
Proof system
Commit-and-prove zk-SNARK (model-private, zero-knowledge)
Numbers from
primary
Paper
https://eprint.iacr.org/2025/1732
PDF
https://eprint.iacr.org/2025/1732.pdf
Quantization
not stated

Notes

The counter-philosophy to everyone else here, on the accuracy axis: rather than quantizing the model to fit the prover, ZIP makes the prover handle native floating-point. NOT an LLM prover and NOT a graph point -- evaluated on small models (MNIST, UTKFace faces, SST-2 sentiment); SST-2 is text but a tiny classifier, not a generative LLM. Zero-knowledge / model-private like zkLLM. Most useful to this collection as the concrete example that quantization is a choice, not a necessity -- see the "bend the model vs bend the prover" theme (SafetyNets origin; zkGPT relaxations and Jolt teleportation bend the model; DeepProve and ZIP bend the prover). But read soundness_caveat before citing it as a clean win: its precision is a property of the honest prover, not of the proof. See content/zk-inference/numerics.md.

Quantization, in full

bits
None
scheme
NO quantization. The distinguishing contribution: native IEEE-754 double-precision floating-point inference. Non-linear activations are proven by piecewise-polynomial approximations stored in a lookup table, with a relative-error-driven technique and extra arithmetic constraints hardening the lookup/range proofs against a malicious prover. GeLU needs ~70 table entries; claims 1-3 orders of magnitude smaller activation circuits than prior work, at full precision.
accuracy_retention
The HONEST PROVER computes in full IEEE-754 double precision, so there is no fixed-point precision loss in an honest execution. But see soundness_caveat: this is a property of what the honest server computes, NOT of what the proof enforces.

Our reading

(The PDF lives at references/proving-inference/high-precision.pdf; the papers.yml id is zip.)

What is new

ZIP is the counter-philosophy of this whole collection, and it is worth having in the SoK for that reason alone. Every other prover here bends the model to fit the prover, quantize to 4, 8, 12 or 16 bits, approximate GeLU with a spline or a quadratic, replace softmax with a lookup table. ZIP bends the prover to fit the model: it proves inference in native IEEE-754 double precision, with the actual activation functions, and eats the cost.

The technique that makes that affordable is a relative-error-driven argument. Rather than hardcoding a floating-point activation into a circuit (which costs millions of constraints in IEEE-754 semantics), ZIP has the prover supply the activation's output, proves it against a piecewise-polynomial approximation stored in a lookup table, and then constrains the relative error between the true value and the approximation to lie within a bound δ. It also hardens the underlying lookup and range proofs with additional arithmetic constraints against a malicious prover, an audit-minded touch that is rare in this literature.

The resulting constraint count per double-precision activation is a genuine multiple-orders-of- magnitude reduction over hardcoding IEEE-754 semantics into a circuit, and I believe it.

What it actually proves

One forward pass of a small model, in full double precision, with a hidden model, on a proof-of-concept prototype whose verifier is not succinct in any useful sense.

  • The models are LeNet-5 (MNIST, ~60K params) and mini-BERT (SST-2, ~11M params, 4 layers, hidden size 256), plus a ~250K-param CNN on UTKFace for the precision study. This is not an LLM prover and it is not a graph point. mini-BERT is a text classifier, not a generative model, no decode, no sampling, no autoregression.
  • It is genuinely zero-knowledge and model-private: commit-and-prove over PlonK, with the model weights as the committed witness. On that axis it is in the same class as zkLLM and ahead of zkGPT and DeepProve.
  • The precision claim is real and is the point. There is no quantization, so there is no calibration set, no scale factor, no zero-point, no bit width, and therefore none of the audit surface that the rest of this repo worries about. That is a real security argument, not just an accuracy one.

What to distrust

ZIP optimizes the component that is not the bottleneck in its own largest experiment. The paper's entire contribution is reducing the cost of non-linear layers. On mini-BERT, its own Table 7 shows the linear layers consuming 34.53 of 37.06 prover-hours, 93% of the total, and they are not ZIP's work at all; they are delegated wholesale to a prior scheme. The non-linear layers ZIP exists to accelerate account for the remaining 7%.

The story inverts with model size, and that is the finding. On LeNet-5, the non-linears dominate and ZIP's contribution is decisive. On an 11M-parameter transformer, the linears dominate fourteen to one. Extrapolate to anything the rest of this repo calls an LLM and ZIP's contribution becomes rounding error on the total. The paper never remarks on this inversion, and it is visible in its own tables.

The verifier is not succinct. LeNet-5 verifies in minutes. mini-BERT verifies in most of an hour. For an 11M-parameter model, a client could run the plaintext inference itself millions of times over in that window. The cause is structural, not incidental, ZIP "employs two multi-lookup arguments per activation with four pairing[s] per lookup proof during verification," so verifier work is linear in the activation count. A commit-and-prove zkSNARK whose verifier scales with the circuit has given up the property that makes a SNARK worth having. Compare zkGPT (sub-second on GPT-2) or DeepProve (a few seconds). Nobody in the paper mentions it.

The motivating baseline is a straw baseline, and it is doing all the rhetorical work. ZIP's case for abandoning fixed-point rests on two comparisons:

Moreover, Table 3 shows that quantizing all weights and inputs to fixed-point representation while retaining the actual ELU activation function (i.e., Baseline (w/FP)), the MAE increases significantly, demonstrating that fixed-point arithmetic severely degrades accuracy and prevents convergence.

ZIP · §7, Impact of Precision

"No convergence", on a 250K-parameter CNN. And an 8.5-point accuracy collapse on mini-BERT under fixed point. The paper states no bit width, no scale factor, no calibration procedure, and no quantization scheme for either fixed-point baseline. Meanwhile, in this same collection, zkGPT keeps perplexity within half a point on GPT-2 at 16 bits, DeepProve keeps GPT-2 within a fraction of a percent of its fp32 baseline at 12 bits, and zkPyTorch loses under 0.03% on CIFAR-10. A fixed-point baseline that fails to converge is a badly configured baseline, not evidence that fixed-point is unworkable. The paper's central premise is supported by the worst fixed-point result in the literature, produced by the authors, with its configuration unstated.

Table 5's prover totals do not add up

Two of the three prover columns in Table 5 (LeNet-5) disagree with the components printed directly above them, each by exactly 0.10 min:

Column Sum of printed rows Printed total
GeLU 13.89 + 5.23 + 0.37 + 0.29 + 0.89 = 20.67 20.67 ✓
SeLU 11.19 + 3.49 + 0.25 + 0.19 + 0.89 = 16.01 15.91
ELU 9.30 + 3.42 + 0.24 + 0.19 + 0.89 = 14.04 13.94

All three verifier columns sum correctly, which rules out a transcription artifact in my reading. Separately, the body text gives ZIP's UTKFace MAE as 6.15 where Table 3 prints 6.16. Small, but this is a CCS paper.

Credit where due, and it is substantial: ZIP prints the number that makes it look worst. Table 4 shows a single double-precision GeLU costing hundreds of times more prover time than the fixed-point schemes it is arguing against, and the paper puts that table in the body rather than an appendix, calls the comparison "conservative," and concedes in the Discussion that "our prototype is just a proof of concept to demonstrate correctness and feasibility, not performance optimization." That is exactly the right disclosure. The problem is not that ZIP is dishonest about its costs, it is that the benefit those costs buy is established only against a baseline the paper declines to specify.

Citation neighbourhood

Edges are a proxy: paper A's text mentions B anywhere (body or bibliography). See the full graph.

Discussed in

Other recorded fields
mechanism: 'PRIMARY, Sec 4.2-4.3. Three-part trick. (1) OFFLINE: approximate the activation
  by a piecewise polynomial (GeLU: m=8 pieces of degree k=10) and store the coefficients
  in a lookup table of just 70 entries. (2) ONLINE: the prover evaluates the activation
  EXACTLY in IEEE-754 double and feeds that exact value y downstream -- the polynomial
  approximation is never used for subsequent layers, which is what stops approximation
  error compounding across depth. (3) PROVE: an extended Caulk lookup (forcing an
  ordered, contiguous block of coefficients) + a private-interval range proof (the
  correct piece was selected without revealing which), plus an "approximation-soundness"
  relation binding y to the polynomial: |y - f(y'')| <= delta * |f(y'')|. That inequality
  is enforced division-free via witnesses l1 = y - f(y''), l2 = delta*f(y''), z3 =
  (l1+l2)(l2-l1), proving z3 >= 0 (i.e. l1^2 <= l2^2); float non-negativity is just
  "sign bit 0 OR mantissa 0". Horner''s method keeps the polynomial to k float mults
  + k float adds.'
soundness_caveat: 'IMPORTANT, and not stated as a limitation by the paper. ZIP does
  NOT prove that y is the correct IEEE-754 activation of y''. y is a WITNESS, and
  the only constraint binding it is the relative-error inequality above. So the proof
  establishes that y lies within a DELTA-RELATIVE BALL around a certified piecewise-polynomial
  approximation -- not that y is the true activation. An honest prover puts the exact
  double in that ball; a malicious prover may put anything in it. The ball is not
  tight. ZIP''s own experimental parameters (Sec 5.2): delta = 9e-4 for SeLU and ELU,
  but delta = 9e-2 for GeLU -- a 9% per-activation relative-error budget available
  to an adversary. For scale: bfloat16''s machine epsilon is ~7.8e-3, an order of
  magnitude TIGHTER than the slack ZIP''s flagship GeLU proof permits. A paper headlined
  "double precision" has, on its flagship activation, a soundness guarantee looser
  than bf16. AND IT IS NOT ONLY THE ACTIVATIONS. ZIP''s LINEAR layers are not exactly
  bound either in the configuration whose timings it advertises: Sec 5.4 checks them
  with a randomized (Freivalds-style) linear combination "with a small relative tolerance
  to handle IEEE-754 rounding". The paper states that "without RLC and thus preserving
  full numerical precision" end-to-end proving takes 40/42/47 min versus the advertised
  20.67/15.91/13.94 -- i.e. the headline numbers are for the TOLERANCE-BOUNDED configuration,
  roughly 2-3x faster than the exact one. So the advertised system is approximate
  end to end: approximate activations AND approximate linear layers. To be fair: this
  is not a bug and is not hidden. ZIP''s soundness theorem is stated w.r.t. F-hat
  (the APPROXIMATED network) and is honestly proved. The gap is between what the paper
  claims colloquially ("IEEE-754-compliant inference") and what the constraint system
  enforces. Whether the delta-slack is EXPLOITABLE -- whether an adversary can steer
  a classification by nudging each activation within its ball, and whether the error
  compounds or cancels across layers -- is NOT analyzed in the paper. Open question.'
ieee754_baseline_costs: 'PRIMARY, Sec 4.1. The price of naive IEEE-754 in a circuit,
  which ZIP compiles from prior work and which is the best published costing of "why
  not just use floats": per-operation Boolean gate counts -- single precision 2,456
  gates/add and 8,854 gates/mul (from Mystique, USENIX Sec ''21); double precision
  15,637 gates/add and 44,899 gates/mul (from Archer-Atapoor-Smart, "The cost of IEEE
  arithmetic in secure computation", LATINCRYPT ''21). Composed up with gadgets for
  sqrt and tanh, ZIP estimates a SINGLE GeLU activation costs ~1,302,142 R1CS constraints
  in single precision and ~6,808,760 in double. ZIP itself: 5,830 R1CS constraints
  per GeLU (a ~1,172x reduction vs the 6.8M baseline), falling to 4,599 at 2^14 activations
  via shared subexpressions; 17,112 PlonK constraints per GeLU. SeLU/ELU see 545x-791x
  reductions. Backend: gnark PlonK over BN254.'