Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::HypernovaFoldingProver Class Reference

#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, Accumulatorfold (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< Transcripttranscript
 

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< FFbatch_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.
 

Detailed Description

Definition at line 15 of file hypernova_prover.hpp.

Member Typedef Documentation

◆ Accumulator

◆ Commitment

◆ FF

◆ Flavor

◆ MegaOinkProver

◆ MegaSumcheckOutput

◆ MegaSumcheckProver

◆ ProverInstance

◆ Transcript

◆ VerificationKey

◆ VerifierCommitments

Constructor & Destructor Documentation

◆ HypernovaFoldingProver()

bb::HypernovaFoldingProver::HypernovaFoldingProver ( std::shared_ptr< Transcript > &  transcript)
inline

Definition at line 34 of file hypernova_prover.hpp.

Member Function Documentation

◆ batch_mul()

template<size_t N>
HypernovaFoldingProver::Commitment bb::HypernovaFoldingProver::batch_mul ( const RefArray< Commitment, N > &  _points,
const std::vector< FF > &  scalars 
)
private

Utility to perform batch mul of commitments.

Definition at line 31 of file hypernova_prover.cpp.

◆ batch_polynomials()

template<size_t N>
Polynomial< HypernovaFoldingProver::FF > bb::HypernovaFoldingProver::batch_polynomials ( RefArray< Polynomial< FF >, N >  polynomials_to_batch,
const size_t &  full_batched_size,
const std::vector< FF > &  challenges 
)
staticprivate

Batch prover polynomials. Batching happens in place into the first polynomial in the RefArray supplied.

Template Parameters
N
Parameters
shiftableIf it is set to true, then the polynomials are aggregated as shiftable polynomials

Definition at line 89 of file hypernova_prover.cpp.

◆ export_proof()

HonkProof bb::HypernovaFoldingProver::export_proof ( )
inline

Export the proof contained in the transcript.

Returns
HonkProof

Definition at line 62 of file hypernova_prover.hpp.

◆ fold()

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.

Parameters
accumulator
instance
Returns
std::pair<HonkProof, Accumulator>

Definition at line 148 of file hypernova_prover.cpp.

◆ get_batching_challenges()

std::pair< std::vector< HypernovaFoldingProver::FF >, std::vector< HypernovaFoldingProver::FF > > bb::HypernovaFoldingProver::get_batching_challenges ( )
private

Generate the challenges required to batch the incoming instance with the accumulator.

Definition at line 13 of file hypernova_prover.cpp.

◆ instance_to_accumulator()

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.

Parameters
instance
Returns
Accumulator

Definition at line 115 of file hypernova_prover.cpp.

◆ sumcheck_output_to_accumulator()

HypernovaFoldingProver::Accumulator bb::HypernovaFoldingProver::sumcheck_output_to_accumulator ( HypernovaFoldingProver::MegaSumcheckOutput sumcheck_output,
const std::shared_ptr< ProverInstance > &  instance,
const std::shared_ptr< VerificationKey > &  honk_vk 
)
private

Convert the output of the sumcheck run on the incoming instance into an accumulator.

Definition at line 42 of file hypernova_prover.cpp.

Member Data Documentation

◆ NUM_SHIFTED_ENTITIES

constexpr size_t bb::HypernovaFoldingProver::NUM_SHIFTED_ENTITIES = MegaFlavor::NUM_SHIFTED_ENTITIES
staticconstexpr

Definition at line 30 of file hypernova_prover.hpp.

◆ NUM_UNSHIFTED_ENTITIES

constexpr size_t bb::HypernovaFoldingProver::NUM_UNSHIFTED_ENTITIES = MegaFlavor::NUM_UNSHIFTED_ENTITIES
staticconstexpr

Definition at line 29 of file hypernova_prover.hpp.

◆ transcript

std::shared_ptr<Transcript> bb::HypernovaFoldingProver::transcript

Definition at line 32 of file hypernova_prover.hpp.


The documentation for this class was generated from the following files: