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

In-circuit Pedersen commitment implementation. More...

#include <pedersen.hpp>

Static Public Member Functions

static cycle_group commit (const std::vector< field_t > &inputs, GeneratorContext context={})
 Compute a Pedersen commitment to the provided inputs.
 

Private Types

using field_t = stdlib::field_t< Builder >
 
using cycle_group = stdlib::cycle_group< Builder >
 
using EmbeddedCurve = typename cycle_group::Curve
 
using cycle_scalar = typename cycle_group::cycle_scalar
 
using GeneratorContext = crypto::GeneratorContext< EmbeddedCurve >
 

Detailed Description

template<typename Builder>
class bb::stdlib::pedersen_commitment< Builder >

In-circuit Pedersen commitment implementation.

Template Parameters
Builder

Definition at line 19 of file pedersen.hpp.

Member Typedef Documentation

◆ cycle_group

template<typename Builder >
using bb::stdlib::pedersen_commitment< Builder >::cycle_group = stdlib::cycle_group<Builder>
private

Definition at line 22 of file pedersen.hpp.

◆ cycle_scalar

template<typename Builder >
using bb::stdlib::pedersen_commitment< Builder >::cycle_scalar = typename cycle_group::cycle_scalar
private

Definition at line 24 of file pedersen.hpp.

◆ EmbeddedCurve

template<typename Builder >
using bb::stdlib::pedersen_commitment< Builder >::EmbeddedCurve = typename cycle_group::Curve
private

Definition at line 23 of file pedersen.hpp.

◆ field_t

Definition at line 21 of file pedersen.hpp.

◆ GeneratorContext

template<typename Builder >
using bb::stdlib::pedersen_commitment< Builder >::GeneratorContext = crypto::GeneratorContext<EmbeddedCurve>
private

Definition at line 25 of file pedersen.hpp.

Member Function Documentation

◆ commit()

template<typename Builder >
cycle_group< Builder > bb::stdlib::pedersen_commitment< Builder >::commit ( const std::vector< field_t > &  inputs,
GeneratorContext  context = {} 
)
static

Compute a Pedersen commitment to the provided inputs.

Computes commit(inputs) = sum_i inputs[i] * G_i where G_i are Grumpkin curve generators derived from the provided GeneratorContext. The inputs are converted from field_t (circuit representation of BN254 scalars) to cycle_scalar (circuit representation of Grumpkin scalars) in order to perform the batch multiplication.

Template Parameters
Builder
Parameters
inputsVector of BN254 scalar field elements to commit to
contextGenerator configuration specifying offset and domain separator for deterministic generator selection
Returns
cycle_group The resulting Pedersen commitment as a Grumpkin curve point

Definition at line 26 of file pedersen.cpp.


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