barretenberg
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
proof_system::honk::pcs::kzg::KZG< Curve > Class Template Reference

Static Public Member Functions

static void compute_opening_proof (std::shared_ptr< CK > ck, const OpeningPair< Curve > &opening_pair, const Polynomial &polynomial, const std::shared_ptr< BaseTranscript > &prover_trancript)
 Computes the KZG commitment to an opening proof polynomial at a single evaluation point.
 
static bool verify (const std::shared_ptr< VK > &vk, const OpeningClaim< Curve > &claim, const std::shared_ptr< BaseTranscript > &verifier_transcript)
 Computes the KZG verification for an opening claim of a single polynomial commitment.
 
static std::array< GroupElement, 2 > compute_pairing_points (const OpeningClaim< Curve > &claim, const auto &verifier_transcript)
 Computes the input points for the pairing check needed to verify a KZG opening claim of a single polynomial commitment. This reduction is non-interactive and always succeeds.
 

Member Function Documentation

◆ compute_opening_proof()

template<typename Curve >
static void proof_system::honk::pcs::kzg::KZG< Curve >::compute_opening_proof ( std::shared_ptr< CK ck,
const OpeningPair< Curve > &  opening_pair,
const Polynomial polynomial,
const std::shared_ptr< BaseTranscript > &  prover_trancript 
)
inlinestatic

Computes the KZG commitment to an opening proof polynomial at a single evaluation point.

Parameters
ckThe commitment key which has a commit function, the srs and pippenger_runtime_state
opening_pairOpeningPair = {r, v = p(r)}
polynomialThe witness whose opening proof needs to be computed
prover_transcriptProver transcript

◆ compute_pairing_points()

template<typename Curve >
static std::array< GroupElement, 2 > proof_system::honk::pcs::kzg::KZG< Curve >::compute_pairing_points ( const OpeningClaim< Curve > &  claim,
const auto &  verifier_transcript 
)
inlinestatic

Computes the input points for the pairing check needed to verify a KZG opening claim of a single polynomial commitment. This reduction is non-interactive and always succeeds.

This is used in the recursive setting where we want to "aggregate" proofs, not verify them.

Parameters
claimOpeningClaim ({r, v}, C)
Returns
{P₀, P₁} where
  • P₀ = C − v⋅[1]₁ + r⋅[W(x)]₁
  • P₁ = [W(x)]₁

◆ verify()

template<typename Curve >
static bool proof_system::honk::pcs::kzg::KZG< Curve >::verify ( const std::shared_ptr< VK > &  vk,
const OpeningClaim< Curve > &  claim,
const std::shared_ptr< BaseTranscript > &  verifier_transcript 
)
inlinestatic

Computes the KZG verification for an opening claim of a single polynomial commitment.

Parameters
vkis the verification key which has a pairing check function
claimOpeningClaim ({r, v}, C)
Returns
e(P₀,[1]₁)e(P₁,[x]₂)≡ [1]ₜ where
  • P₀ = C − v⋅[1]₁ + r⋅[x]₁
  • P₁ = [Q(x)]₁

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