|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <hypernova_prover.hpp>
Public Types | |
| using | Flavor = MegaFlavor |
| using | FF = Flavor::FF |
| using | Commitment = Flavor::Commitment |
| using | ProverInstance = ProverInstance_< Flavor > |
| using | Accumulator = MultilinearBatchingProverClaim |
| using | VerificationKey = Flavor::VerificationKey |
| using | VerifierCommitments = Flavor::VerifierCommitments |
| using | MegaOinkProver = OinkProver< Flavor > |
| using | MegaSumcheckProver = SumcheckProver< Flavor > |
| using | MegaSumcheckOutput = SumcheckOutput< Flavor > |
| using | Transcript = Flavor::Transcript |
Public Member Functions | |
| HypernovaFoldingProver (std::shared_ptr< Transcript > &transcript) | |
| Accumulator | instance_to_accumulator (const std::shared_ptr< ProverInstance > &instance, const std::shared_ptr< VerificationKey > &honk_vk=nullptr) |
| Turn an instance into an accumulator by running Sumcheck. | |
| std::pair< HonkProof, Accumulator > | fold (const Accumulator &accumulator, const std::shared_ptr< ProverInstance > &instance, const std::shared_ptr< VerificationKey > &honk_vk=nullptr) |
| Fold an instance into an accumulator. Folding happens in place. | |
| HonkProof | export_proof () |
| Export the proof contained in the transcript. | |
Public Attributes | |
| std::shared_ptr< Transcript > | transcript |
Static Public Attributes | |
| static constexpr size_t | NUM_UNSHIFTED_ENTITIES = MegaFlavor::NUM_UNSHIFTED_ENTITIES |
| static constexpr size_t | NUM_SHIFTED_ENTITIES = MegaFlavor::NUM_SHIFTED_ENTITIES |
Private Member Functions | |
| Accumulator | sumcheck_output_to_accumulator (MegaSumcheckOutput &sumcheck_output, const std::shared_ptr< ProverInstance > &instance, const std::shared_ptr< VerificationKey > &honk_vk) |
| Convert the output of the sumcheck run on the incoming instance into an accumulator. | |
| std::pair< std::vector< FF >, std::vector< FF > > | get_batching_challenges () |
| Generate the challenges required to batch the incoming instance with the accumulator. | |
| template<size_t N> | |
| Commitment | batch_mul (const RefArray< Commitment, N > &_points, const std::vector< FF > &scalars) |
| Utility to perform batch mul of commitments. | |
Static Private Member Functions | |
| template<size_t N> | |
| static Polynomial< FF > | batch_polynomials (RefArray< Polynomial< FF >, N > polynomials_to_batch, const size_t &full_batched_size, const std::vector< FF > &challenges) |
| Batch prover polynomials. Batching happens in place into the first polynomial in the RefArray supplied. | |
Definition at line 15 of file hypernova_prover.hpp.
Definition at line 21 of file hypernova_prover.hpp.
Definition at line 19 of file hypernova_prover.hpp.
Definition at line 18 of file hypernova_prover.hpp.
Definition at line 17 of file hypernova_prover.hpp.
Definition at line 24 of file hypernova_prover.hpp.
Definition at line 26 of file hypernova_prover.hpp.
Definition at line 25 of file hypernova_prover.hpp.
Definition at line 20 of file hypernova_prover.hpp.
Definition at line 27 of file hypernova_prover.hpp.
Definition at line 22 of file hypernova_prover.hpp.
Definition at line 23 of file hypernova_prover.hpp.
|
inline |
Definition at line 34 of file hypernova_prover.hpp.
|
private |
Utility to perform batch mul of commitments.
Definition at line 31 of file hypernova_prover.cpp.
|
staticprivate |
Batch prover polynomials. Batching happens in place into the first polynomial in the RefArray supplied.
| N |
| shiftable | If it is set to true, then the polynomials are aggregated as shiftable polynomials |
Definition at line 89 of file hypernova_prover.cpp.
|
inline |
Export the proof contained in the transcript.
Definition at line 62 of file hypernova_prover.hpp.
| std::pair< HonkProof, HypernovaFoldingProver::Accumulator > bb::HypernovaFoldingProver::fold | ( | const Accumulator & | accumulator, |
| const std::shared_ptr< ProverInstance > & | instance, | ||
| const std::shared_ptr< VerificationKey > & | honk_vk = nullptr |
||
| ) |
Fold an instance into an accumulator. Folding happens in place.
| accumulator | |
| instance |
Definition at line 148 of file hypernova_prover.cpp.
|
private |
Generate the challenges required to batch the incoming instance with the accumulator.
Definition at line 13 of file hypernova_prover.cpp.
| HypernovaFoldingProver::Accumulator bb::HypernovaFoldingProver::instance_to_accumulator | ( | const std::shared_ptr< ProverInstance > & | instance, |
| const std::shared_ptr< VerificationKey > & | honk_vk = nullptr |
||
| ) |
Turn an instance into an accumulator by running Sumcheck.
| instance |
Definition at line 115 of file hypernova_prover.cpp.
|
private |
Convert the output of the sumcheck run on the incoming instance into an accumulator.
Definition at line 42 of file hypernova_prover.cpp.
|
staticconstexpr |
Definition at line 30 of file hypernova_prover.hpp.
|
staticconstexpr |
Definition at line 29 of file hypernova_prover.hpp.
| std::shared_ptr<Transcript> bb::HypernovaFoldingProver::transcript |
Definition at line 32 of file hypernova_prover.hpp.