|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
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_SIZE > | create_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, Fr > | evaluate_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 CK & | ck () |
| VK & | vk () |
| Commitment | commit (const Polynomial &polynomial) |
| Fr | random_element () |
| Polynomial | random_polynomial (const size_t poly_size) |
| OpeningPair< curve::BN254 > | random_eval (const Polynomial &polynomial) |
| std::vector< Fr > | random_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::RNG * | engine |
Definition at line 26 of file shplemini_concatenated.test.cpp.
Definition at line 32 of file shplemini_concatenated.test.cpp.
Definition at line 30 of file shplemini_concatenated.test.cpp.
Definition at line 28 of file shplemini_concatenated.test.cpp.
Definition at line 29 of file shplemini_concatenated.test.cpp.
Definition at line 31 of file shplemini_concatenated.test.cpp.
Definition at line 33 of file shplemini_concatenated.test.cpp.
|
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.
|
inline |
Concatenate 16 minicircuit polynomials: concat[j*MINI + idx] = wire[j][idx].
Definition at line 60 of file shplemini_concatenated.test.cpp.
|
inline |
Create 16 minicircuit-sized random polynomials with values in [1, MINI)
Definition at line 45 of file shplemini_concatenated.test.cpp.
|
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.
|
inline |
Run Shplemini prove-and-verify for N concatenated polynomials (unshifted + shifted).
Definition at line 124 of file shplemini_concatenated.test.cpp.
|
staticconstexpr |
Definition at line 37 of file shplemini_concatenated.test.cpp.
|
staticconstexpr |
Definition at line 40 of file shplemini_concatenated.test.cpp.
|
staticconstexpr |
Definition at line 38 of file shplemini_concatenated.test.cpp.
|
staticconstexpr |
Definition at line 36 of file shplemini_concatenated.test.cpp.
|
staticconstexpr |
Definition at line 35 of file shplemini_concatenated.test.cpp.
|
staticconstexpr |
Definition at line 39 of file shplemini_concatenated.test.cpp.