Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::ShpleminiProver_< Curve > Class Template Reference

#include <shplemini.hpp>

Public Types

using FF = typename Curve::ScalarField
 
using GroupElement = typename Curve::Element
 
using Commitment = typename Curve::AffineElement
 
using Polynomial = bb::Polynomial< FF >
 
using OpeningClaim = ProverOpeningClaim< Curve >
 
using VK = CommitmentKey< Curve >
 
using ShplonkProver = ShplonkProver_< Curve >
 
using GeminiProver = GeminiProver_< Curve >
 
using PolynomialBatcher = GeminiProver::PolynomialBatcher
 

Static Public Member Functions

template<typename Transcript >
static OpeningClaim prove (const FF circuit_size, PolynomialBatcher &polynomial_batcher, std::span< FF > multilinear_challenge, const CommitmentKey< Curve > &commitment_key, const std::shared_ptr< Transcript > &transcript, const std::array< Polynomial, NUM_SMALL_IPA_EVALUATIONS > &libra_polynomials={}, const std::vector< Polynomial > &sumcheck_round_univariates={}, const std::vector< std::array< FF, 3 > > &sumcheck_round_evaluations={})
 
template<typename Transcript >
static std::vector< OpeningClaimcompute_libra_opening_claims (const FF gemini_r, const std::array< Polynomial, NUM_SMALL_IPA_EVALUATIONS > &libra_polynomials, const std::shared_ptr< Transcript > &transcript)
 For ZK Flavors: Evaluate the polynomials used in SmallSubgroupIPA argument, send the evaluations to the verifier, and populate a vector of the opening claims.
 
static std::vector< OpeningClaimcompute_sumcheck_round_claims (const FF circuit_size, std::span< FF > multilinear_challenge, const std::vector< Polynomial > &sumcheck_round_univariates, const std::vector< std::array< FF, 3 > > &sumcheck_round_evaluations)
 Create a vector of 3*log_n opening claims for the evaluations of Sumcheck Round Univariates at 0, 1, and a round challenge.
 

Detailed Description

template<typename Curve>
class bb::ShpleminiProver_< Curve >

Definition at line 21 of file shplemini.hpp.

Member Typedef Documentation

◆ Commitment

template<typename Curve >
using bb::ShpleminiProver_< Curve >::Commitment = typename Curve::AffineElement

Definition at line 25 of file shplemini.hpp.

◆ FF

template<typename Curve >
using bb::ShpleminiProver_< Curve >::FF = typename Curve::ScalarField

Definition at line 23 of file shplemini.hpp.

◆ GeminiProver

template<typename Curve >
using bb::ShpleminiProver_< Curve >::GeminiProver = GeminiProver_<Curve>

Definition at line 31 of file shplemini.hpp.

◆ GroupElement

template<typename Curve >
using bb::ShpleminiProver_< Curve >::GroupElement = typename Curve::Element

Definition at line 24 of file shplemini.hpp.

◆ OpeningClaim

template<typename Curve >
using bb::ShpleminiProver_< Curve >::OpeningClaim = ProverOpeningClaim<Curve>

Definition at line 27 of file shplemini.hpp.

◆ Polynomial

Definition at line 26 of file shplemini.hpp.

◆ PolynomialBatcher

template<typename Curve >
using bb::ShpleminiProver_< Curve >::PolynomialBatcher = GeminiProver::PolynomialBatcher

Definition at line 32 of file shplemini.hpp.

◆ ShplonkProver

template<typename Curve >
using bb::ShpleminiProver_< Curve >::ShplonkProver = ShplonkProver_<Curve>

Definition at line 30 of file shplemini.hpp.

◆ VK

template<typename Curve >
using bb::ShpleminiProver_< Curve >::VK = CommitmentKey<Curve>

Definition at line 29 of file shplemini.hpp.

Member Function Documentation

◆ compute_libra_opening_claims()

template<typename Curve >
template<typename Transcript >
static std::vector< OpeningClaim > bb::ShpleminiProver_< Curve >::compute_libra_opening_claims ( const FF  gemini_r,
const std::array< Polynomial, NUM_SMALL_IPA_EVALUATIONS > &  libra_polynomials,
const std::shared_ptr< Transcript > &  transcript 
)
inlinestatic

For ZK Flavors: Evaluate the polynomials used in SmallSubgroupIPA argument, send the evaluations to the verifier, and populate a vector of the opening claims.

Definition at line 78 of file shplemini.hpp.

◆ compute_sumcheck_round_claims()

template<typename Curve >
static std::vector< OpeningClaim > bb::ShpleminiProver_< Curve >::compute_sumcheck_round_claims ( const FF  circuit_size,
std::span< FF multilinear_challenge,
const std::vector< Polynomial > &  sumcheck_round_univariates,
const std::vector< std::array< FF, 3 > > &  sumcheck_round_evaluations 
)
inlinestatic

Create a vector of 3*log_n opening claims for the evaluations of Sumcheck Round Univariates at 0, 1, and a round challenge.

Definition at line 111 of file shplemini.hpp.

◆ prove()

template<typename Curve >
template<typename Transcript >
static OpeningClaim bb::ShpleminiProver_< Curve >::prove ( const FF  circuit_size,
PolynomialBatcher polynomial_batcher,
std::span< FF multilinear_challenge,
const CommitmentKey< Curve > &  commitment_key,
const std::shared_ptr< Transcript > &  transcript,
const std::array< Polynomial, NUM_SMALL_IPA_EVALUATIONS > &  libra_polynomials = {},
const std::vector< Polynomial > &  sumcheck_round_univariates = {},
const std::vector< std::array< FF, 3 > > &  sumcheck_round_evaluations = {} 
)
inlinestatic

Definition at line 35 of file shplemini.hpp.


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