Recent work, including ZKBoo, ZKB++, and Ligero, has developed efficient non-interactive zero-knowledge proofs of knowledge
(NIZKPoKs) for Boolean circuits based on symmetric-key primitives alone, using the “MPC-in-the-head” paradigm of Ishai et al.
We show how to instantiate this paradigm with MPC protocols in
the preprocessing model; once optimized, this results in an NIZKPoK
with shorter proofs (and comparable computation) as in prior work
for circuits containing roughly 300–100,000 AND gates. In contrast
to prior work, our NIZKPoK also supports witness-independent
preprocessing, which allows the prover to shift most of its work to
an offline phase before the witness is known.
We use our NIZKPoK to construct a signature scheme based
only on symmetric-key primitives (and hence with “post-quantum”
security). The resulting scheme has shorter signatures than the
scheme built using ZKB++ (and comparable signing/verification
time), and is even competitive with hash-based signature schemes.
To further highlight the flexibility and power of our NIZKPoK,
we also use it to build efficient ring and group signatures based on
symmetric-key primitives alone. To our knowledge, the resulting
schemes are the most efficient constructions of these primitives
that offer post-quantum security.