Groth16
Contents
Groth16#
We briefly describe the trusted-setup zkSNARK scheme defined in [Gro16]
Groth16 Scheme#
\((\sigma, \tau) \leftarrow \operatorname{Setup}(R)\))
(\(\pi \leftarrow \operatorname{Prove}\left(R, \sigma, a_{1}, \ldots, a_{m}\right)\))
(\(0 / 1 \leftarrow \operatorname{Vfy}\left(R, \sigma, a_{1}, \ldots, a_{\ell}, \pi\right)\))
(By Theorem 3 in [BKSV21] , the output of Rerand is statistically indistinguishable from a fresh proof of the same underlying statement.
Proofs for Groth16#
We now have four different proofs for Groth16.
(According to Mary Maller’s talk at zkSummit )
Previous Work#
[Kil92] gave the first sublinear communication zero-knowledge argument that sends fewer bits than the size of the statement to be proved.
[Mic00] proposed sublinear size arguments by letting the prover in a communication efficient argument compute the verifier’s challenges using a cryptographic function,
(as re-marked in [Kil95]) this leads to sublinear size NIZK proofs when the interactive argument is public coin and zero-knowledge.
- BKSV21
Karim Baghery, Markulf Kohlweiss, Janno Siim, and Mikhail Volkhov. Another look at extraction and randomization of groth's zk-snark. In Financial Cryptography. 2021.
- Gro16
Jens Groth. On the size of pairing-based non-interactive arguments. In Marc Fischlin and Jean-Sébastien Coron, editors, Advances in Cryptology – EUROCRYPT 2016, 305–326. Berlin, Heidelberg, 2016. Springer Berlin Heidelberg.
- Kil92
Joe Kilian. A note on efficient zero-knowledge proofs and arguments (extended abstract). In STOC '92. 1992.
- Kil95
Joe Kilian. Improved efficient arguments (preliminary version). In CRYPTO. 1995.
- Mic00
Silvio Micali. Computationally sound proofs. SIAM J. Comput., 30:1253–1298, 2000.
\(\left(x_{i}, x_{j}\right)\) )
(PROVE-EQUAL-NAIVEProve that \(x_{i}=x_{j}\)
\(P\) sends \(V\) the value \(v = x_{i}^{0} \oplus x_{j}^{0}\).
\(V\) uniformly chooses \(b \in\{0,1\}\), and sends \(b\) to \(P\).
\(P\) reveals \(x_{i}^{b}\) and \(x_{j}^{b}\), who accepts iff \(x_{i}^{b} \oplus x_{j}^{b}=v\).
when you refers to Groth16 scheme.
Non-interactive Linear Proofs (NILP)#
\((\boldsymbol{\sigma}, \boldsymbol{\tau}) \leftarrow \operatorname{Setup}(R)\))
(\(\boldsymbol{\sigma} \in \mathbb{F}^{m}\) and \(\boldsymbol{\tau} \in \mathbb{F}^{n}\)
\(\boldsymbol{\pi} \leftarrow \operatorname{Prove}(R, \boldsymbol{\sigma}, \phi, w)\))
(\(\Pi \leftarrow \operatorname{ProofMatrix}(R, \phi, w)\), \(\Pi \in \mathbb{F}^{k \times m}\).
\(\boldsymbol{\pi}=\Pi \boldsymbol{\sigma}\)
\(0 / 1 \leftarrow \operatorname{Vfy}(R, \boldsymbol{\sigma}, \phi, \pi)\))
(\(t \leftarrow \operatorname{Test}(R, \phi)\) , where \(\boldsymbol{t}: \mathbb{F}^{m+k} \rightarrow \mathbb{F}^{\eta}\)
accepts the proof iff \(\boldsymbol{t}(\boldsymbol{\sigma}, \boldsymbol{\pi})=\mathbf{0}\).