Using Zero to Attack Zero-Knowledge Proof (ZKP) PLONK
summary
A C++ PLONK implementation allows an attacker to submit all-zero point bytes for elliptic points and produce a forged proof that verifies universally. The exploit chains: on-curve checks are deferred, the infinity test uses an MSB flag (bypassed by zeros), field inversion computes 0⁻¹ as 0, and a batch normalization bug spreads zeros across arrays so pairings with zero return one. The proof is built by sending zeroed point encodings and verifiers accept.
AI-written summary · about
chapters (12)
- 0:00Introduction and basics
- 2:34Elliptic curve fundamentals
- 4:11Pairing operations
- 6:03Interactive proof protocols
- 8:19Security and verification
- 12:31Non-interactive proofs
- 14:57ZK terminology
- 17:01Circuit and polynomials
- 20:11Commitment schemes
- 24:00Plonk protocol overview
- 25:53Attack theory
- 29:48Vulnerability analysis
related talks
33mAn Introduction to Zero Knowledge Proofs
44mBilinear Pairings-based Zero-Knowledge Proofs
52mDiscrete Log based Zero-Knowledge Proofs
26mApplications of Zero Knowledge Proofs in the Banking Industry
51mWhy you shouldn't trust me
49mLattice-Based Zero Knowledge and Applications
01h 26mPanel Discussion: The Challenges and Best Practices of Deploying Zero-Knowledge Proofs
14mWhat are zero-knowledge proofs? And why do they matter beyond crypto?
