|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <recursive_verifier.hpp>
Public Member Functions | |
| AvmRecursiveVerifier (Builder &builder, const std::shared_ptr< Transcript > &transcript=std::make_shared< Transcript >()) | |
| Construct a new AvmRecursiveVerifier. | |
| PairingPoints | verify_proof (const StdlibProof &stdlib_proof, const std::vector< std::vector< typename Flavor::FF > > &public_inputs) |
| Verify an AVM proof and return PairingPoints whose validity bears witness to successful verification of the proof. | |
| FF | hash_avm_transcript (const StdlibProof &stdlib_proof) |
| Hash the transcript after verification is complete to produce a hash of the public inputs and proofs that have been verified. | |
Private Types | |
| using | Flavor = AvmRecursiveFlavor |
| using | FF = typename Flavor::FF |
| using | BF = typename Flavor::BF |
| using | Curve = typename Flavor::Curve |
| using | Commitment = typename Flavor::Commitment |
| using | SubrelationSeparators = typename Flavor::SubrelationSeparators |
| using | VerificationKey = typename Flavor::VerificationKey |
| using | NativeVerificationKey = typename Flavor::NativeVerificationKey |
| using | Builder = typename Flavor::CircuitBuilder |
| using | PCS = typename Flavor::PCS |
| using | Transcript = Flavor::Transcript |
| using | VerifierCommitments = typename Flavor::VerifierCommitments |
| using | PairingPoints = stdlib::recursion::PairingPoints< Curve > |
| using | StdlibProof = stdlib::Proof< Builder > |
Static Private Member Functions | |
| static FF | evaluate_public_input_column (const std::vector< FF > &points, const std::vector< FF > &challenges) |
| Evaluate the given public input column over the multivariate challenge points. | |
Private Attributes | |
| Builder & | builder |
| std::shared_ptr< VerificationKey > | key |
| std::shared_ptr< Transcript > | transcript |
| bool | is_verification_complete = false |
Definition at line 16 of file recursive_verifier.hpp.
|
private |
Definition at line 19 of file recursive_verifier.hpp.
|
private |
Definition at line 25 of file recursive_verifier.hpp.
|
private |
Definition at line 21 of file recursive_verifier.hpp.
|
private |
Definition at line 20 of file recursive_verifier.hpp.
|
private |
Definition at line 18 of file recursive_verifier.hpp.
|
private |
Definition at line 17 of file recursive_verifier.hpp.
|
private |
Definition at line 24 of file recursive_verifier.hpp.
|
private |
Definition at line 29 of file recursive_verifier.hpp.
|
private |
Definition at line 26 of file recursive_verifier.hpp.
|
private |
Definition at line 30 of file recursive_verifier.hpp.
|
private |
Definition at line 22 of file recursive_verifier.hpp.
|
private |
Definition at line 27 of file recursive_verifier.hpp.
|
private |
Definition at line 23 of file recursive_verifier.hpp.
|
private |
Definition at line 28 of file recursive_verifier.hpp.
|
explicit |
Construct a new AvmRecursiveVerifier.
The constructor fixes the verification key and vk hash of the AVM circuit by copying them into the selectors.
| builder | |
| transcript |
Definition at line 36 of file recursive_verifier.cpp.
|
staticprivate |
Evaluate the given public input column over the multivariate challenge points.
Among its witness commitments, the AVM prover sends commitments to the public inputs. To enforce consistency between these commitments and the public inputs, the verifier computes the evaluation of the public inputs sent in the clear at the Sumcheck challenge and compares the result with the claimed evaluation sent by the Prover at the end of Sumcheck.
| points | The public input column to be evaluated |
| challenges | The sumcheck challenge |
Definition at line 56 of file recursive_verifier.cpp.
| AvmRecursiveVerifier::FF bb::avm2::AvmRecursiveVerifier::hash_avm_transcript | ( | const StdlibProof & | stdlib_proof | ) |
Hash the transcript after verification is complete to produce a hash of the public inputs and proofs that have been verified.
Definition at line 240 of file recursive_verifier.cpp.
| AvmRecursiveVerifier::PairingPoints bb::avm2::AvmRecursiveVerifier::verify_proof | ( | const StdlibProof & | stdlib_proof, |
| const std::vector< std::vector< typename Flavor::FF > > & | public_inputs | ||
| ) |
Verify an AVM proof and return PairingPoints whose validity bears witness to successful verification of the proof.
This function reduces verification of an AVM proof to a pairing check, which is deferred for performance reasons.
Definition at line 84 of file recursive_verifier.cpp.
|
private |
Definition at line 47 of file recursive_verifier.hpp.
|
private |
Definition at line 51 of file recursive_verifier.hpp.
|
private |
Definition at line 48 of file recursive_verifier.hpp.
|
private |
Definition at line 49 of file recursive_verifier.hpp.