Recursive Zero-Knowledge Proof (Recursive ZKP) is a type of zero-knowledge proof that utilizes the concept of recursion to generate proofs that are more efficiently verifiable. In some cases, it can even combine multiple proofs into a single proof. This is particularly important in blockchain systems, where efficiency and scalability are crucial.
A Zero-Knowledge Proof is a cryptographic protocol that allows one party (the prover) to convince another party (the verifier) that they know a specific piece of information (such as a secret) without revealing the actual content of that information. A zero-knowledge proof guarantees the following three key properties:
In a Recursive Zero-Knowledge Proof, the proof itself can serve as part of another proof. In other words, the prover can use one proof to demonstrate the validity of another proof, enabling the construction of complex proofs in a recursive manner. Specifically, using the circuit \(Circuit\) to represent the zkSNARK verification algorithm \(Verify\), the proof \(Proof\) and verification key \(VK\) are used as inputs to generate a new proof \(Proof\)'.
In recursive zero-knowledge proofs, the concept can be understood as “proving the validity of a proof” and then continuing to prove the next statement, and so on. Recursion here means “the proof of a proof.” Simply put, this means proving that you are truthful while also proving that other proofs are valid, and recursively building more complex proofs.
The first layer zero-knowledge proof, commonly referred to as the inner/bottom layer proof (Inner Product), mainly ensures the correctness of the following 5 items:
(1). Hash of public inputs: Verifies that the commitment to the public inputs is correct.
(2). Polynomial verification: Verifies whether the circuit constraints hold at the verification point, focusing on the following aspects:
· Circuit constraint polynomial:
· Vanishing polynomial:
· Quotient polynomial:
(3). FRI verification: Low-degree test
· Merkle tree verification:
· FRI folding consistency:
· Opening point verification:
(4). Merkle tree path verification: Merkle proof
(5). Random challenge values Ensures that the generated random challenge values are derived from the correct public coin and hashed, mainly including:
First, the structure of the recursive circuit must be determined, and a virtual target is introduced to represent the data that needs to be verified (since the corresponding inner proof has not been generated before determining the verification circuit).
Role of the virtual target: Since recursive proofs involve multiple layers, and the circuit needs to be determined at the outset, a virtual target is used to pre-allocate space. Specific data will be filled in during the recursive proof at the appropriate rounds.
The main steps include:
· Verification content:
· Constructing the virtual target:
In the recursive verification circuit, a virtual proof target is used to placeholder data representing all the data of the bottom layer proof.
· Verification logic:
The \(verify\_proof\) function is used to nest verification logic within the recursive circuit. It verifies the public input, opening points, FRI proof, and more for the bottom layer proof.
Recursive embedding of the bottom-layer verification circuit into a higher-layer circuit generates a recursive proof:
The recursive verification circuit is used to gradually generate a recursive proof, verifying the correctness of all nested proofs:
Plonky2 uses FRI as a low-cost polynomial commitment scheme for proof generation. Compared to traditional KZG, FRI significantly reduces proof size and verification complexity in recursive scenarios.
Goldilocks is an optimized 64-bit prime field that supports fast modular arithmetic, making it ideal for modern CPUs. By constructing constraints within this field, the size of each verification circuit step is reduced, further lowering computational overhead.
Plonky2 uses Poseidon to construct hash functions that are friendly to constraints, reducing the circuit depth and gate count required for hash operations.
Recursive zero-knowledge proofs combine the power of zero-knowledge proofs with the concept of recursion, allowing for the creation of complex proofs that can be merged into a single proof through recursion. This makes systems more efficient, compact, and scalable. The main advantage is the ability to provide compact proofs for complex computations, making them particularly suitable for blockchain systems, cryptographic protocols, and privacy-preserving applications.
Recursive Zero-Knowledge Proof (Recursive ZKP) is a type of zero-knowledge proof that utilizes the concept of recursion to generate proofs that are more efficiently verifiable. In some cases, it can even combine multiple proofs into a single proof. This is particularly important in blockchain systems, where efficiency and scalability are crucial.
A Zero-Knowledge Proof is a cryptographic protocol that allows one party (the prover) to convince another party (the verifier) that they know a specific piece of information (such as a secret) without revealing the actual content of that information. A zero-knowledge proof guarantees the following three key properties:
In a Recursive Zero-Knowledge Proof, the proof itself can serve as part of another proof. In other words, the prover can use one proof to demonstrate the validity of another proof, enabling the construction of complex proofs in a recursive manner. Specifically, using the circuit \(Circuit\) to represent the zkSNARK verification algorithm \(Verify\), the proof \(Proof\) and verification key \(VK\) are used as inputs to generate a new proof \(Proof\)'.
In recursive zero-knowledge proofs, the concept can be understood as “proving the validity of a proof” and then continuing to prove the next statement, and so on. Recursion here means “the proof of a proof.” Simply put, this means proving that you are truthful while also proving that other proofs are valid, and recursively building more complex proofs.
The first layer zero-knowledge proof, commonly referred to as the inner/bottom layer proof (Inner Product), mainly ensures the correctness of the following 5 items:
(1). Hash of public inputs: Verifies that the commitment to the public inputs is correct.
(2). Polynomial verification: Verifies whether the circuit constraints hold at the verification point, focusing on the following aspects:
· Circuit constraint polynomial:
· Vanishing polynomial:
· Quotient polynomial:
(3). FRI verification: Low-degree test
· Merkle tree verification:
· FRI folding consistency:
· Opening point verification:
(4). Merkle tree path verification: Merkle proof
(5). Random challenge values Ensures that the generated random challenge values are derived from the correct public coin and hashed, mainly including:
First, the structure of the recursive circuit must be determined, and a virtual target is introduced to represent the data that needs to be verified (since the corresponding inner proof has not been generated before determining the verification circuit).
Role of the virtual target: Since recursive proofs involve multiple layers, and the circuit needs to be determined at the outset, a virtual target is used to pre-allocate space. Specific data will be filled in during the recursive proof at the appropriate rounds.
The main steps include:
· Verification content:
· Constructing the virtual target:
In the recursive verification circuit, a virtual proof target is used to placeholder data representing all the data of the bottom layer proof.
· Verification logic:
The \(verify\_proof\) function is used to nest verification logic within the recursive circuit. It verifies the public input, opening points, FRI proof, and more for the bottom layer proof.
Recursive embedding of the bottom-layer verification circuit into a higher-layer circuit generates a recursive proof:
The recursive verification circuit is used to gradually generate a recursive proof, verifying the correctness of all nested proofs:
Plonky2 uses FRI as a low-cost polynomial commitment scheme for proof generation. Compared to traditional KZG, FRI significantly reduces proof size and verification complexity in recursive scenarios.
Goldilocks is an optimized 64-bit prime field that supports fast modular arithmetic, making it ideal for modern CPUs. By constructing constraints within this field, the size of each verification circuit step is reduced, further lowering computational overhead.
Plonky2 uses Poseidon to construct hash functions that are friendly to constraints, reducing the circuit depth and gate count required for hash operations.
Recursive zero-knowledge proofs combine the power of zero-knowledge proofs with the concept of recursion, allowing for the creation of complex proofs that can be merged into a single proof through recursion. This makes systems more efficient, compact, and scalable. The main advantage is the ability to provide compact proofs for complex computations, making them particularly suitable for blockchain systems, cryptographic protocols, and privacy-preserving applications.