Abstract
PLONK is a zk-SNARK system by Gabizon, Williamson, and Ciobotaru with proofs of constant size (0.5 KB) and sublinear verification time. Its setup is circuit-independent supporting proofs of arbitrary statements up to a certain size bound.
Although deployed in several real-world applications, PLONK’s zero-knowledge property had only been argued informally. Consequently, we were able to find and fix a vulnerability in its original specification, leading to an update of PLONK in eprint version 20220629:105924.
In this work, we construct a simulator for the patched version of PLONK and prove that it achieves statistical zero knowledge. Furthermore, we give an attack on the previous version of PLONK showing that it does not even satisfy the weaker notion of (statistical) witness indistinguishability.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
More precisely, both rely on a collision-resistant hash function, with Bulletproofs modeling it as a random oracle [BR93] and zk-STARKs using it directly.
- 2.
References
Bünz, B., Bootle, J., Boneh, D., Poelstra, A., Wuille, P., Maxwell, G.: Bulletproofs: short proofs for confidential transactions and more. In: 2018 IEEE Symposium on Security and Privacy, pp. 315–334 (2018). https://doi.org/10.1109/SP.2018.00020
Bitansky, N., Canetti, R., Chiesa, A., Tromer, E.: From extractable collision resistance to succinct non-interactive arguments of knowledge, and back again. In: Proceedings of the 3rd Innovations in Theoretical Computer Science Conference, ITCS 2012, pp. 326–349. Association for Computing Machinery (2012). https://doi.org/10.1145/2090236.2090263
Bellare, M., Rogaway, P.: Random oracles are practical: a paradigm for designing efficient protocols. In: Proceedings of the 1st ACM Conference on Computer and Communications Security, CCS 1993, pp. 62–73. Association for Computing Machinery (1993). https://doi.org/10.1145/168588.168596
Ben-Sasson, E., Bentov, I., Horesh, Y., Riabzev, M.: Scalable, transparent, and post-quantum secure computational integrity. Cryptology ePrint Archive, Paper 2018/046 (2018). https://eprint.iacr.org/2018/046
Chen, B., Bünz, B., Boneh, D., Zhang, Z.: HyperPlonk: plonk with linear-time prover and high-degree custom gates. In: Hazay, C., Stam, M. (eds.) EUROCRYPT 2023. LNCS, vol. 14005, pp. 499–530. Springer, Cham (2023). https://doi.org/10.1007/978-3-031-30617-4_17
Chiesa, A., Hu, Y., Maller, M., Mishra, P., Vesely, N., Ward, N.: Marlin: preprocessing zkSNARKs with universal and updatable SRS. In: Canteaut, A., Ishai, Y. (eds.) EUROCRYPT 2020. LNCS, vol. 12105, pp. 738–768. Springer, Cham (2020). https://doi.org/10.1007/978-3-030-45721-1_26
Electric Coin Company. The halo2 book (2022). https://zcash.github.io/halo2/index.html
Fiat, A., Shamir, A.: How to prove yourself: practical solutions to identification and signature problems. In: Odlyzko, A.M. (ed.) CRYPTO 1986. LNCS, vol. 263, pp. 186–194. Springer, Heidelberg (1987). https://doi.org/10.1007/3-540-47721-7_12
Feige, U., Shamir, A.: Witness indistinguishable and witness hiding protocols. In: Proceedings of the Twenty-Second Annual ACM Symposium on Theory of Computing, STOC 1990, pp. 416–426. Association for Computing Machinery (1990). https://doi.org/10.1145/100216.100272
Goldwasser, S., Micali, S., Rackoff, C.: The knowledge complexity of interactive proof-systems. In: Proceedings of the Seventeenth Annual ACM Symposium on Theory of Computing, STOC 1985, pp. 291–304. Association for Computing Machinery (1985). https://doi.org/10.1145/22145.22178
Groth, J.: On the size of pairing-based non-interactive arguments. In: Fischlin, M., Coron, J.-S. (eds.) EUROCRYPT 2016. LNCS, vol. 9666, pp. 305–326. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-49896-5_11
Gabizon, A., Williamson, Z.J.: plookup: a simplified polynomial protocol for lookup tables. Cryptology ePrint Archive, Paper 2020/315 (2020). https://eprint.iacr.org/2020/315
Gabizon, A., Williamson, Z.J.: Proposal: the turbo-plonk program syntax for specifying snark programs (2022). https://docs.zkproof.org/pages/standards/accepted-workshop3/proposal-turbo_plonk.pdf
Gabizon, A., Williamson, Z.J., Ciobotaru, O.: Plonk: Permutations over Lagrange-bases for oecumenical noninteractive arguments of knowledge. Cryptology ePrint Archive, Paper 2019/953 (2019). https://eprint.iacr.org/2019/953
Gabizon, A., Williamson, Z.J., Ciobotaru, O.: Plonk: permutations over Lagrange-bases for oecumenical noninteractive arguments of knowledge. Cryptology ePrint Archive, Paper 2019/953, version 20220429:112734 (2019). https://eprint.iacr.org/archive/2019/953/20220429:112734
Hopwood, D., Bowe, S., Hornby, T., Wilcox, N.: Zcash protocol specification. Technical report, Electric Coin Company (2022). https://zips.z.cash/protocol/protocol.pdf
Kate, A., Zaverucha, G.M., Goldberg, I.: Constant-size commitments to polynomials and their applications. In: Abe, M. (ed.) ASIACRYPT 2010. LNCS, vol. 6477, pp. 177–194. Springer, Heidelberg (2010). https://doi.org/10.1007/978-3-642-17373-8_11
Maller, M., Bowe, S., Kohlweiss, M., Meiklejohn, S.: Sonic: zero-knowledge snarks from linear-size universal and updatable structured reference strings. In: Proceedings of the 2019 ACM SIGSAC Conference on Computer and Communications Security, CCS 2019, pp. 2111–2128. Association for Computing Machinery (2019). https://doi.org/10.1145/3319535.3339817
Miller, J.: The frozen heart vulnerability in plonk (2022). https://blog.trailofbits.com/2022/04/18/the-frozen-heart-vulnerability-in-plonk/
Pearson, L., Fitzgerald, J., Masip, H., Bellés-Muñoz, M., Muñoz-Tapia, J.L.: Plonkup: reconciling plonk with plookup. Cryptology ePrint Archive, Paper 2022/086 (2022). https://eprint.iacr.org/2022/086
Acknowledgments
This work was funded by the Vienna Science and Technology Fund (WWTF) [10.47379/VRG18002] and by the Austrian Science Fund (FWF) [10.55776/F8515-N]. I thank my doctoral supervisor Georg Fuchsbauer and the anonymous reviewers for helpful comments. Further, I thank Ariel Gabizon for discussing the found vulnerability in PLONK’s zero-knowledge implementation and possible fixes.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
A Proofs
A Proofs
1.1 A.1 ZK Implies WI
We prove that zero knowledge, as formalized in Definition 5, implies witness indistinguishability, as formalized in Definition 6, for zk-SNARKs.
Proof
Assume \(\mathrm \Pi = (\textsf{Setup}, \textsf{Preproc}, \textsf{Prove}, \textsf{Verify})\) is zero-knowledge. Let \(\mathcal {A}\) be an arbitrary adversary against the witness indistinguishability of \(\mathrm \Pi \). Without loss of generality, assume that \(\mathbbm {w}_0 \ne \mathbbm {w}_1\). Construct the two adversaries \(\mathcal {A} _0, \mathcal {A} _1\) against zero knowledge of \(\mathrm \Pi \) that behave exactly as \(\mathcal {A}\), but instead of returning \((\mathbbm {i}, \mathbbm {x}, \mathbbm {w}_0, \mathbbm {w}_1, \textsf{st})\) as their first output, \(\mathcal {A} _0\) only returns \((\mathbbm {i}, \mathbbm {x}, \mathbbm {w}_0, \textsf{st})\), and \(\mathcal {A} _1\) only returns \((\mathbbm {i}, \mathbbm {x}, \mathbbm {w}_1, \textsf{st})\).
For \(i \in \{0, 1\}\), let \(\texttt{I}_{\mathcal {A} _i, \mathcal {P}}\) and \(\texttt{I}_{\mathcal {A} _i, \mathcal {S}}\) denote the two events from the definition of zero knowledge, in which \(\mathcal {A} _i\) is interacting with the honest prover \(\mathcal {P}\) or the simulator \(\mathcal {S}\), respectively. Then we have
which together implies
Note that this expression is equivalent to \(\mathcal {A}\) ’s advantage in breaking the witness indistinguishability of \(\mathrm \Pi \), which is therefore also negligible. \(\square \)
1.2 A.2 Proof of Lemma 1
We give a proof of Lemma 1, which is used to blind the prover’s witness polynomials in PLONK in a way that reveals no information about the witness.
Proof
For all \(i \in [k]\), we have
where the values \(f(x_i), Z_S(x_i)\) are fixed and \(Z_S(x_i) \ne 0\) (due to \(x_i \in \mathbb {F}_p\setminus S\)). Since the product of any fixed \(a \in \mathbb {F}_p^*\) and random \(b \in \mathbb {F}_p\) is uniform in \(\mathbb {F}_p\), all we need to show is that the values \(\rho (x_1), \dots , \rho (x_k)\) are distributed independently and uniformly in \(\mathbb {F}_p\), which is a well-known claim for any random degree-\((k - 1)\) polynomial such as \(\rho \in \mathbb {F}_p^{\scriptscriptstyle (\le k - 1)}[X]\). One way to see this, is by fixing any distinct \(x_1, \dots , x_k \in \mathbb {F}_p\) and observing that for any choice of \(y_1, \dots , y_k \in \mathbb {F}_p\) there is a unique degree-\((k - 1)\) polynomial interpolating the points \((x_1, y_1), \dots , (x_k, y_k)\). Formally, there are \(p^k\) distinct degree-\((k - 1)\) polynomials over \(\mathbb {F}_p\), which corresponds to the number of choices for \(y_1, \dots , y_k \in \mathbb {F}_p\). Furthermore, there cannot be any two distinct polynomials \(f_1 \not \equiv f_2 \in \mathbb {F}_p^{\scriptscriptstyle (\le k - 1)}[X]\) interpolating the same set of points \((x_1, y_1), \dots , (x_k, y_k)\), since otherwise the non-zero, degree-\((k - 1)\) polynomial \(f_1 - f_2\) would have at least k roots, which is a contradiction. \(\square \)
Rights and permissions
Copyright information
© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG
About this paper
Cite this paper
Sefranek, M. (2024). How (Not) to Simulate PLONK. In: Galdi, C., Phan, D.H. (eds) Security and Cryptography for Networks. SCN 2024. Lecture Notes in Computer Science, vol 14973. Springer, Cham. https://doi.org/10.1007/978-3-031-71070-4_5
Download citation
DOI: https://doi.org/10.1007/978-3-031-71070-4_5
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-031-71069-8
Online ISBN: 978-3-031-71070-4
eBook Packages: Computer ScienceComputer Science (R0)