Skip to main content

How (Not) to Simulate PLONK

  • Conference paper
  • First Online:
Security and Cryptography for Networks (SCN 2024)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 14973))

Included in the following conference series:

  • 216 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 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. 2.

    https://twitter.com/rel_zeta_tech/status/1542474186664210432.

References

  1. 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

  2. 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

  3. 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

  4. 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

  5. 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

    Chapter  Google Scholar 

  6. 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

    Chapter  Google Scholar 

  7. Electric Coin Company. The halo2 book (2022). https://zcash.github.io/halo2/index.html

  8. 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

    Chapter  Google Scholar 

  9. 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

  10. 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

  11. 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

    Chapter  Google Scholar 

  12. 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

  13. 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

  14. 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

  15. 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

  16. Hopwood, D., Bowe, S., Hornby, T., Wilcox, N.: Zcash protocol specification. Technical report, Electric Coin Company (2022). https://zips.z.cash/protocol/protocol.pdf

  17. 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

    Chapter  Google Scholar 

  18. 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

  19. Miller, J.: The frozen heart vulnerability in plonk (2022). https://blog.trailofbits.com/2022/04/18/the-frozen-heart-vulnerability-in-plonk/

  20. 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

Download references

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

Authors

Corresponding author

Correspondence to Marek Sefranek .

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

$$\begin{aligned} \bigl |\Pr [\texttt{I}_{\mathcal {A} _0, \mathcal {P}}] - \Pr [\texttt{I}_{\mathcal {A} _0, \mathcal {S}}]\bigr | &\le \textsf{negl}(\lambda ), \end{aligned}$$
(1)
$$\begin{aligned} \bigl |\Pr [\texttt{I}_{\mathcal {A} _1, \mathcal {P}}] - \Pr [\texttt{I}_{\mathcal {A} _1, \mathcal {S}}]\bigr | &\le \textsf{negl}(\lambda ), \end{aligned}$$
(2)

which together implies

$$\begin{aligned} \bigl |\Pr [\texttt{I}_{\mathcal {A} _0, \mathcal {P}}] - \Pr [\texttt{I}_{\mathcal {A} _1, \mathcal {P}}]\bigr | \le \textsf{negl}(\lambda ). \end{aligned}$$
(3)

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

$$\begin{aligned} \tilde{f}(x_i) = f(x_i) + Z_S(x_i) \rho (x_i), \end{aligned}$$

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

Reprints and permissions

Copyright information

© 2024 The Author(s), under exclusive license to Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics