|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include <triple_ipa.hpp>
Classes | |
| struct | IpaOpeningVector |
| struct | IpaVerifierClaim |
Public Types | |
| using | Curve = Curve_ |
| using | Fr = typename Curve::ScalarField |
| using | GroupElement = typename Curve::Element |
| using | Commitment = typename Curve::AffineElement |
| using | Polynomial = bb::Polynomial< Fr > |
| using | CK = CommitmentKey< Curve > |
| using | VK = VerifierCommitmentKey< Curve > |
| using | IPAProtocol = IPA< Curve, log_poly_length > |
| using | NativeAccumulator = typename IPAProtocol::NativeAccumulator |
| using | VerifierAccumulator = std::conditional_t< Curve::is_stdlib_type, typename IPAProtocol::VerifierAccumulator, NativeAccumulator > |
| using | TripleIpaClaimData = bb::TripleIpaClaimData< Curve > |
| using | TripleIpaClaim = bb::TripleIpaClaim< Curve > |
| using | TripleIpaInput = bb::TripleIpaInput< Curve > |
Static Public Member Functions | |
| template<typename Transcript > | |
| static void | compute_opening_proof (const CK &ck, const TripleIpaInput &input, const std::shared_ptr< Transcript > &transcript) |
| template<typename Transcript > requires (!Curve::is_stdlib_type) | |
| static bool | reduce_verify (const VK &vk, const TripleIpaClaim &claim, const std::shared_ptr< Transcript > &transcript) |
| static VerifierAccumulator | reduce_verify (const TripleIpaClaim &claim, const auto &transcript) |
| static NativeAccumulator | reduce_to_accumulator (const TripleIpaClaim &claim, const auto &transcript) |
| static bool | verify_accumulator (const VK &vk, const NativeAccumulator &accumulator) |
| static bool | batch_verify_accumulators (const VK &vk, std::span< const NativeAccumulator > accumulators) |
Static Public Attributes | |
| static constexpr size_t | poly_length = 1UL << log_poly_length |
| static constexpr size_t | NUM_TENSORS = 3 |
| static constexpr size_t | NUM_CROSS_SUMS = NUM_TENSORS * (NUM_TENSORS - 1) / 2 |
Static Private Member Functions | |
| static Fr | combined_inner_product (const std::array< Fr, NUM_TENSORS > &diagonal_evaluations, const std::array< Fr, NUM_TENSORS > &zeta, const std::array< Fr, NUM_CROSS_SUMS > &cross_sums) |
| static std::array< Fr, NUM_CROSS_SUMS > | compute_cross_sums (const TripleIpaInput &input, const Polynomial &unshifted_witness, const Polynomial &shifted_witness, const Polynomial &eq_tensor) |
| Compute the three cross-sums from already-built batched witnesses F and F'. | |
| static IpaVerifierClaim | combine_into_ipa_claim (const TripleIpaClaim &claim, const std::array< Fr, NUM_TENSORS > &zeta, const std::array< Fr, NUM_CROSS_SUMS > &cross_sums) |
| template<typename Transcript > | |
| static IpaVerifierClaim | compute_ipa_verifier_claim (const TripleIpaClaim &claim, const std::shared_ptr< Transcript > &transcript) |
| template<typename Transcript > | |
| static void | add_claim_to_hash_buffer (const TripleIpaClaim &claim, const std::shared_ptr< Transcript > &transcript) |
| template<typename Transcript > | |
| static void | add_claim_to_hash_buffer (const IpaVerifierClaim &opening_claim, const std::shared_ptr< Transcript > &transcript) |
| static NativeAccumulator | reduce_to_accumulator_internal (const IpaVerifierClaim &opening_claim, const auto &transcript) |
Native reduction to a deferrable accumulator: checks the cheap IPA group relation against the prover-claimed G_0 and returns the data needed to discharge the expensive G_0 == <challenge_poly(u), SRS> MSM later (single or batched). Does NOT touch the SRS. | |
Definition at line 28 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::CK = CommitmentKey<Curve> |
Definition at line 35 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::Commitment = typename Curve::AffineElement |
Definition at line 33 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::Curve = Curve_ |
Definition at line 30 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::Fr = typename Curve::ScalarField |
Definition at line 31 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::GroupElement = typename Curve::Element |
Definition at line 32 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::IPAProtocol = IPA<Curve, log_poly_length> |
Definition at line 37 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::NativeAccumulator = typename IPAProtocol::NativeAccumulator |
Definition at line 43 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::Polynomial = bb::Polynomial<Fr> |
Definition at line 34 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::TripleIpaClaim = bb::TripleIpaClaim<Curve> |
Definition at line 98 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::TripleIpaClaimData = bb::TripleIpaClaimData<Curve> |
Definition at line 97 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::TripleIpaInput = bb::TripleIpaInput<Curve> |
Definition at line 99 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::VerifierAccumulator = std::conditional_t<Curve::is_stdlib_type, typename IPAProtocol::VerifierAccumulator, NativeAccumulator> |
Definition at line 44 of file triple_ipa.hpp.
| using bb::TripleIPA< Curve_, log_poly_length >::VK = VerifierCommitmentKey<Curve> |
Definition at line 36 of file triple_ipa.hpp.
|
inlinestaticprivate |
Definition at line 331 of file triple_ipa.hpp.
|
inlinestaticprivate |
Definition at line 313 of file triple_ipa.hpp.
|
inlinestatic |
Definition at line 305 of file triple_ipa.hpp.
|
inlinestaticprivate |
Definition at line 169 of file triple_ipa.hpp.
|
inlinestaticprivate |
Definition at line 111 of file triple_ipa.hpp.
|
inlinestaticprivate |
Compute the three cross-sums from already-built batched witnesses F and F'.
Takes the unshifted (F) and shifted-source (F') batched witnesses as inputs so the prover can reuse witnesses that were already built for the combined opening. <eq, F'> is read from the precomputed source evaluations instead of an extra MLE pass.
Definition at line 139 of file triple_ipa.hpp.
|
inlinestaticprivate |
Definition at line 189 of file triple_ipa.hpp.
|
inlinestatic |
Definition at line 208 of file triple_ipa.hpp.
|
inlinestatic |
Definition at line 291 of file triple_ipa.hpp.
|
inlinestaticprivate |
Native reduction to a deferrable accumulator: checks the cheap IPA group relation against the prover-claimed G_0 and returns the data needed to discharge the expensive G_0 == <challenge_poly(u), SRS> MSM later (single or batched). Does NOT touch the SRS.
Definition at line 343 of file triple_ipa.hpp.
|
inlinestatic |
Definition at line 276 of file triple_ipa.hpp.
|
inlinestatic |
Definition at line 270 of file triple_ipa.hpp.
|
inlinestatic |
Definition at line 299 of file triple_ipa.hpp.
|
staticconstexpr |
Definition at line 53 of file triple_ipa.hpp.
|
staticconstexpr |
Definition at line 51 of file triple_ipa.hpp.
|
staticconstexpr |
Definition at line 47 of file triple_ipa.hpp.