Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::ShpleminiConcatenatedTest Class Reference
Inheritance diagram for bb::ShpleminiConcatenatedTest:
bb::CommitmentTest< curve::BN254 >

Public Types

using Curve = curve::BN254
 
using Fr = Curve::ScalarField
 
using Commitment = Curve::AffineElement
 
using Polynomial = bb::Polynomial< Fr >
 
using CK = CommitmentKey< Curve >
 
using VK = VerifierCommitmentKey< Curve >
 

Public Member Functions

std::array< Polynomial, CONCATENATION_GROUP_SIZEcreate_minicircuit_polynomials ()
 Create 16 minicircuit-sized random polynomials with values in [1, MINI)
 
Polynomial concatenate_polynomials (const std::array< Polynomial, CONCATENATION_GROUP_SIZE > &polys)
 Concatenate 16 minicircuit polynomials: concat[j*MINI + idx] = wire[j][idx].
 
Fr compute_batched_evaluation (const std::vector< Fr > &challenge, const std::array< Fr, CONCATENATION_GROUP_SIZE > &individual_evals)
 Compute batched evaluation = [1/L₀(u_top)] * Σⱼ Lⱼ(u_top) * eval_j.
 
std::pair< Fr, Frevaluate_concatenation_group (const std::array< Polynomial, CONCATENATION_GROUP_SIZE > &wires, const Polynomial &concat_poly, const std::vector< Fr > &challenge)
 Compute batched evaluations (unshifted + shifted) for a group of wires at a challenge point, and verify them against direct evaluation of the concatenated polynomial.
 
template<size_t N>
bool prove_and_verify (std::array< Polynomial, N > &concat_polys, std::array< Commitment, N > &commitments, std::array< Fr, N > &unshifted_evals, std::array< Fr, N > &shifted_evals, std::vector< Fr > &challenge)
 Run Shplemini prove-and-verify for N concatenated polynomials (unshifted + shifted).
 
- Public Member Functions inherited from bb::CommitmentTest< curve::BN254 >
 CommitmentTest ()
 
const CKck ()
 
VKvk ()
 
Commitment commit (const Polynomial &polynomial)
 
Fr random_element ()
 
Polynomial random_polynomial (const size_t poly_size)
 
OpeningPair< curve::BN254random_eval (const Polynomial &polynomial)
 
std::vector< Frrandom_evaluation_point (const size_t num_variables)
 
void verify_opening_claim (const OpeningClaim< curve::BN254 > &claim, const Polynomial &witness, CommitmentKey< curve::BN254 > ck=CommitmentKey< curve::BN254 >())
 
void verify_opening_pair (const OpeningPair< curve::BN254 > &opening_pair, const Polynomial &witness)
 
void verify_batch_opening_claim (std::span< const OpeningClaim< curve::BN254 > > multi_claims, std::span< const Polynomial > witnesses)
 Ensures that a 'BatchOpeningClaim' is correct by checking that.
 
void verify_batch_opening_pair (std::vector< ProverOpeningClaim< curve::BN254 > > opening_claims)
 Ensures that a set of opening pairs is correct by checking that evaluations are correct by recomputing them from each witness polynomial.
 
std::vector< UnivariateClaimData< curve::BN254 > > generate_claim_data (const std::vector< size_t > &poly_sizes)
 
std::pair< std::vector< Fr >, std::vector< Fr > > combine_claims (std::vector< UnivariateClaimData< curve::BN254 > > &claims)
 

Static Public Attributes

static constexpr size_t mini_log_n = 8
 
static constexpr size_t MINI = 1UL << mini_log_n
 
static constexpr size_t CONCATENATION_GROUP_SIZE = 16
 
static constexpr size_t log_n = mini_log_n + 4
 
static constexpr size_t n = 1UL << log_n
 
static constexpr size_t k = 4
 
- Static Public Attributes inherited from bb::CommitmentTest< curve::BN254 >
static CK commitment_key
 
static VK verification_key
 

Additional Inherited Members

- Static Public Member Functions inherited from bb::CommitmentTest< curve::BN254 >
static void SetUpTestSuite ()
 
static void TearDownTestSuite ()
 
- Public Attributes inherited from bb::CommitmentTest< curve::BN254 >
numeric::RNGengine
 

Detailed Description

Definition at line 26 of file shplemini_concatenated.test.cpp.

Member Typedef Documentation

◆ CK

◆ Commitment

◆ Curve

◆ Fr

◆ Polynomial

◆ VK

Member Function Documentation

◆ compute_batched_evaluation()

Fr bb::ShpleminiConcatenatedTest::compute_batched_evaluation ( const std::vector< Fr > &  challenge,
const std::array< Fr, CONCATENATION_GROUP_SIZE > &  individual_evals 
)
inline

Compute batched evaluation = [1/L₀(u_top)] * Σⱼ Lⱼ(u_top) * eval_j.

Uses little-endian Lagrange basis: L₀ = Π(1-uᵢ), L₁ = u₀·Π_{i>0}(1-uᵢ), etc.

Definition at line 75 of file shplemini_concatenated.test.cpp.

◆ concatenate_polynomials()

Polynomial bb::ShpleminiConcatenatedTest::concatenate_polynomials ( const std::array< Polynomial, CONCATENATION_GROUP_SIZE > &  polys)
inline

Concatenate 16 minicircuit polynomials: concat[j*MINI + idx] = wire[j][idx].

Definition at line 60 of file shplemini_concatenated.test.cpp.

◆ create_minicircuit_polynomials()

std::array< Polynomial, CONCATENATION_GROUP_SIZE > bb::ShpleminiConcatenatedTest::create_minicircuit_polynomials ( )
inline

Create 16 minicircuit-sized random polynomials with values in [1, MINI)

Definition at line 45 of file shplemini_concatenated.test.cpp.

◆ evaluate_concatenation_group()

std::pair< Fr, Fr > bb::ShpleminiConcatenatedTest::evaluate_concatenation_group ( const std::array< Polynomial, CONCATENATION_GROUP_SIZE > &  wires,
const Polynomial concat_poly,
const std::vector< Fr > &  challenge 
)
inline

Compute batched evaluations (unshifted + shifted) for a group of wires at a challenge point, and verify them against direct evaluation of the concatenated polynomial.

Definition at line 99 of file shplemini_concatenated.test.cpp.

◆ prove_and_verify()

template<size_t N>
bool bb::ShpleminiConcatenatedTest::prove_and_verify ( std::array< Polynomial, N > &  concat_polys,
std::array< Commitment, N > &  commitments,
std::array< Fr, N > &  unshifted_evals,
std::array< Fr, N > &  shifted_evals,
std::vector< Fr > &  challenge 
)
inline

Run Shplemini prove-and-verify for N concatenated polynomials (unshifted + shifted).

Definition at line 124 of file shplemini_concatenated.test.cpp.

Member Data Documentation

◆ CONCATENATION_GROUP_SIZE

constexpr size_t bb::ShpleminiConcatenatedTest::CONCATENATION_GROUP_SIZE = 16
staticconstexpr

Definition at line 37 of file shplemini_concatenated.test.cpp.

◆ k

constexpr size_t bb::ShpleminiConcatenatedTest::k = 4
staticconstexpr

Definition at line 40 of file shplemini_concatenated.test.cpp.

◆ log_n

constexpr size_t bb::ShpleminiConcatenatedTest::log_n = mini_log_n + 4
staticconstexpr

Definition at line 38 of file shplemini_concatenated.test.cpp.

◆ MINI

constexpr size_t bb::ShpleminiConcatenatedTest::MINI = 1UL << mini_log_n
staticconstexpr

Definition at line 36 of file shplemini_concatenated.test.cpp.

◆ mini_log_n

constexpr size_t bb::ShpleminiConcatenatedTest::mini_log_n = 8
staticconstexpr

Definition at line 35 of file shplemini_concatenated.test.cpp.

◆ n

constexpr size_t bb::ShpleminiConcatenatedTest::n = 1UL << log_n
staticconstexpr

Definition at line 39 of file shplemini_concatenated.test.cpp.


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