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

#include <gemini.hpp>

Static Public Member Functions

static std::vector< OpeningClaim< Curve > > reduce_verification (std::span< Fr > multilinear_challenge, ClaimBatcher &claim_batcher, auto &transcript)
 Returns univariate opening claims for the Fold polynomials to be checked later.
 
static std::vector< Commitmentget_fold_commitments (const size_t virtual_log_n, auto &transcript)
 Receive the fold commitments from the prover. This method is used by Shplemini where padding may be enabled, i.e. the verifier receives the same number of commitments independent of the actual circuit size.
 
static std::vector< Frget_gemini_evaluations (const size_t virtual_log_n, auto &transcript)
 Receive the fold evaluations from the prover. This method is used by Shplemini where padding may be enabled, i.e. the verifier receives the same number of commitments independent of the actual circuit size.
 

Private Types

using Fr = typename Curve::ScalarField
 
using GroupElement = typename Curve::Element
 
using Commitment = typename Curve::AffineElement
 
using ClaimBatcher = ClaimBatcher_< Curve >
 

Detailed Description

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

Definition at line 345 of file gemini.hpp.

Member Typedef Documentation

◆ ClaimBatcher

template<typename Curve >
using bb::GeminiVerifier_< Curve >::ClaimBatcher = ClaimBatcher_<Curve>
private

Definition at line 349 of file gemini.hpp.

◆ Commitment

template<typename Curve >
using bb::GeminiVerifier_< Curve >::Commitment = typename Curve::AffineElement
private

Definition at line 348 of file gemini.hpp.

◆ Fr

template<typename Curve >
using bb::GeminiVerifier_< Curve >::Fr = typename Curve::ScalarField
private

Definition at line 346 of file gemini.hpp.

◆ GroupElement

template<typename Curve >
using bb::GeminiVerifier_< Curve >::GroupElement = typename Curve::Element
private

Definition at line 347 of file gemini.hpp.

Member Function Documentation

◆ get_fold_commitments()

template<typename Curve >
static std::vector< Commitment > bb::GeminiVerifier_< Curve >::get_fold_commitments ( const size_t  virtual_log_n,
auto &  transcript 
)
inlinestatic

Receive the fold commitments from the prover. This method is used by Shplemini where padding may be enabled, i.e. the verifier receives the same number of commitments independent of the actual circuit size.

Parameters
virtual_log_nAn integer >= log_n
transcript
Returns
A vector of fold commitments \( [A_i] \) for \( i = 1, \ldots, \text{virtual_log_n}-1\).

Definition at line 493 of file gemini.hpp.

◆ get_gemini_evaluations()

template<typename Curve >
static std::vector< Fr > bb::GeminiVerifier_< Curve >::get_gemini_evaluations ( const size_t  virtual_log_n,
auto &  transcript 
)
inlinestatic

Receive the fold evaluations from the prover. This method is used by Shplemini where padding may be enabled, i.e. the verifier receives the same number of commitments independent of the actual circuit size.

Parameters
virtual_log_nAn integer >= log_n
transcript
Returns
A vector of claimed negative fold evaluation \( A_i(-r^{2^i}) \) for \( i = 0, \ldots, \text{virtual_log_n}-1\).

Definition at line 514 of file gemini.hpp.

◆ reduce_verification()

template<typename Curve >
static std::vector< OpeningClaim< Curve > > bb::GeminiVerifier_< Curve >::reduce_verification ( std::span< Fr multilinear_challenge,
ClaimBatcher claim_batcher,
auto &  transcript 
)
inlinestatic

Returns univariate opening claims for the Fold polynomials to be checked later.

Parameters
multilinear_evaluationsthe MLE evaluation point u
batched_evaluationbatched evaluation from multivariate evals at the point u
batched_commitment_unshiftedbatched commitment to unshifted polynomials
batched_commitment_to_be_shiftedbatched commitment to to-be-shifted polynomials
proofcommitments to the m-1 folded polynomials, and alleged evaluations.
transcript
Returns
Fold polynomial opening claims: (r, A₀(r), C₀₊), (-r, A₀(-r), C₀₋), and (Cⱼ, Aⱼ(-r^{2ʲ}), -r^{2}), j = [1, ..., m-1]

Definition at line 364 of file gemini.hpp.


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