Home

zkSNARK

zkSNARK stands for zero-knowledge succinct non-interactive argument of knowledge. It is a zero-knowledge proof in which a prover can convince a verifier that a statement is true without revealing the witness, while the proof is short and quickly verifiable. The non-interactive property means that, after a single common reference string is published, the proof can be checked without back-and-forth communication. Succinctness refers to proofs whose size and verification time scale cheaply with the complexity of the statement.

How it works: a computation is encoded as a circuit or algebraic constraint. A trusted setup generates

Groth16 is a widely used zkSNARK construction known for very small proofs and fast verification, but it

In practice, zkSNARKs are used to enable private or scalable computations in blockchains, most famously for

a
common
reference
string
(CRS)
for
that
circuit.
The
prover
uses
a
witness
to
produce
a
short
proof
from
the
CRS.
The
verifier
uses
the
CRS
and
the
public
inputs
to
check
the
proof
efficiently,
with
verification
time
largely
independent
of
the
circuit
size.
requires
a
trusted
setup.
Other
variants
seek
to
remove
or
minimize
trusted
setup
or
to
achieve
post-quantum
security.
shielded
transactions
in
Zcash
and
for
privacy-preserving
or
scalable
smart
contracts
in
other
systems.
They
continue
to
be
developed
with
attention
to
security,
trust
assumptions,
and
the
implications
of
quantum
attacks.