nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment< CurveType > Struct Template Reference

#include <commitment.hpp>

+ Collaboration diagram for nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment< CurveType >:

Public Types

typedef CurveType curve_type
 
typedef wkey_type::group_value_type g1_value_type
 
typedef vkey_type::group_value_type g2_value_type
 
typedef curve_type::gt_type::value_type gt_value_type
 
typedef r1cs_gg_ppzksnark_ipp2_commitment_output< curve_typeoutput_type
 
typedef algebra::pairing::pairing_policy< curve_typepairing
 
typedef r1cs_gg_ppzksnark_ipp2_vkey< curve_typevkey_type
 
typedef r1cs_gg_ppzksnark_ipp2_wkey< curve_typewkey_type
 

Static Public Member Functions

template<typename InputG1Iterator , typename InputG2Iterator , typename ValueType1 = typename std::iterator_traits<InputG1Iterator>::value_type, typename ValueType2 = typename std::iterator_traits<InputG2Iterator>::value_type, typename std::enable_if< std::is_same< g1_value_type, ValueType1 >::value, bool >::type = true, typename std::enable_if< std::is_same< g2_value_type, ValueType2 >::value, bool >::type = true>
static output_type pair (const vkey_type &vkey, const wkey_type &wkey, InputG1Iterator a_first, InputG1Iterator a_last, InputG2Iterator b_first, InputG2Iterator b_last)
 
template<typename InputG1Iterator , typename ValueType1 = typename std::iterator_traits<InputG1Iterator>::value_type, typename std::enable_if< std::is_same< g1_value_type, ValueType1 >::value, bool >::type = true>
static output_type single (const vkey_type &vkey, InputG1Iterator a_first, InputG1Iterator a_last)
 

Member Typedef Documentation

◆ curve_type

template<typename CurveType >
typedef CurveType nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment< CurveType >::curve_type

◆ g1_value_type

◆ g2_value_type

◆ gt_value_type

template<typename CurveType >
typedef curve_type::gt_type::value_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment< CurveType >::gt_value_type

◆ output_type

◆ pairing

◆ vkey_type

◆ wkey_type

Member Function Documentation

◆ pair()

template<typename CurveType >
template<typename InputG1Iterator , typename InputG2Iterator , typename ValueType1 = typename std::iterator_traits<InputG1Iterator>::value_type, typename ValueType2 = typename std::iterator_traits<InputG2Iterator>::value_type, typename std::enable_if< std::is_same< g1_value_type, ValueType1 >::value, bool >::type = true, typename std::enable_if< std::is_same< g2_value_type, ValueType2 >::value, bool >::type = true>
static output_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment< CurveType >::pair ( const vkey_type vkey,
const wkey_type wkey,
InputG1Iterator  a_first,
InputG1Iterator  a_last,
InputG2Iterator  b_first,
InputG2Iterator  b_last 
)
inlinestatic

Commits to a tuple of G1 vector and G2 vector in the following way: $T = \prod_{i=0}^n e(A_i, v_{1,i})e(B_i,w_{1,i})$ $U = \prod_{i=0}^n e(A_i, v_{2,i})e(B_i,w_{2,i})$ Output is $(T,U)$

◆ single()

template<typename CurveType >
template<typename InputG1Iterator , typename ValueType1 = typename std::iterator_traits<InputG1Iterator>::value_type, typename std::enable_if< std::is_same< g1_value_type, ValueType1 >::value, bool >::type = true>
static output_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment< CurveType >::single ( const vkey_type vkey,
InputG1Iterator  a_first,
InputG1Iterator  a_last 
)
inlinestatic

Commits to a single vector of G1 elements in the following way: $T = \prod_{i=0}^n e(A_i, v_{1,i})$ $U = \prod_{i=0}^n e(A_i, v_{2,i})$ Output is $(T,U)$


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