# Combating Fake News with Cryptography in Quantum Era with Post-Quantum Verifiable Image Proofs
## 6 Cryptographic Foundations and Preliminaries
### Lookup Tables, Polynomial Testing, and Non-Interactive Proofs
#### 6.3.2. Plonk: Arithmetic Circuit Evaluation and Permutation Arguments  
HyperPlonk is an advanced version of the Plonk proof system, designed to provide scalable, efficient, and flexible zero-knowledge proofs (ZKPs). Building upon the foundational structure of Plonk, HyperPlonk introduces optimizations aimed at improving prover efficiency, enhancing flexibility in circuit design, and supporting the efficient use of recursive proofs. These features make HyperPlonk particularly suitable for a wide range of cryptographic applications, including blockchain scalability, privacy-preserving computations, and recursive proof systems, such as Verkle trees. Additionally, HyperPlonk's design takes into account post-quantum security, making it a forward-looking choice in the face of future quantum computing threats [17]. HyperPlonk is based on the succinct non-interactive argument of the knowledge (SNARK) framework, which allows the verification of computations without revealing the underlying data. HyperPlonk retains the core structure of Plonk, including the use of copy constraints and permutation arguments, to ensure the integrity of the computation. However, it improves upon Plonk by introducing new techniques that optimize the proof generation process, particularly in terms of prover efficiency and scalability. In the context of post-quantum security, HyperPlonk leverages cryptographic primitives that are believed to be secure even against the computational power of future quantum computers. This is essential as we prepare for the advent of quantum computing, which could undermine the security of traditional cryptographic schemes. By adopting quantum-safe protocols, HyperPlonk ensures its relevance in a post-quantum world, making it suitable for long-term cryptographic applications. HyperPlonk introduces several innovations over the original Plonk protocol, as follows:  
1. Multivariate Polynomial Commitments: One of the primary improvements in HyperPlonk is the use of multivariate polynomial commitments instead of univariate ones. This change results in smaller proof sizes and reduced verification times, which is important for scaling large computations. Moreover, the multivariate commitment scheme is based on post-quantum secure assumptions, making it resistant to quantum attacks that could compromise traditional univariate polynomials. 2. Flexible Gate Definitions: HyperPlonk provides flexibility in defining custom gates. This feature allows for the encoding of specialized operations and constraints that may not be supported by standard gates in traditional Plonk. This flexibility is essential for applications requiring non-standard computations or custom logic in the proof system. Additionally, the ability to define secure gates with post-quantum cryptographic primitives ensures that the system remains resilient to quantum attacks. 3. Prover Efficiency: HyperPlonk significantly reduces the computational cost for the prover, resulting in faster proof generation. By optimizing how the polynomials are evaluated and committed, HyperPlonk reduces the computational overhead typically associated with zero-knowledge proof systems. This efficiency gain is crucial in blockchain environments and privacy-preserving applications, where speed and scalability are paramount. 4. Recursive Proof Systems: HyperPlonk is well-suited for use in recursive proof systems, where smaller proofs are aggregated into a larger proof. This recursive structure is essential for applications, such as Verkle trees and other advanced cryptographic systems, where scalability is a critical concern. Recursive proofs in HyperPlonk are designed to be post-quantum-secure, enabling long-term security even in quantum-era applications. 5. Addition of Custom Constraints: Similar to other advanced proof systems, like Plonky2, HyperPlonk allows for the addition of custom constraints. These constraints can be implemented through the definition of custom gates or operations within theproof system.