nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment_key< GroupType > Struct Template Reference
#include <commitment.hpp>

Public Types | |
typedef group_type::curve_type | curve_type |
typedef curve_type::scalar_field_type | field_type |
typedef field_type::value_type | field_value_type |
typedef GroupType | group_type |
typedef group_type::value_type | group_value_type |
Public Member Functions | |
r1cs_gg_ppzksnark_ipp2_commitment_key< group_type > | compress (const r1cs_gg_ppzksnark_ipp2_commitment_key< group_type > &right, const field_value_type &scale) const |
std::pair< group_value_type, group_value_type > | first () const |
bool | has_correct_len (std::size_t n) const |
template<typename InputIterator , typename ValueType = typename std::iterator_traits<InputIterator>::value_type, typename std::enable_if< std::is_same< field_value_type, ValueType >::value, bool >::type = true> | |
r1cs_gg_ppzksnark_ipp2_commitment_key< group_type > | scale (InputIterator s_first, InputIterator s_last) const |
std::pair< r1cs_gg_ppzksnark_ipp2_commitment_key< group_type >, r1cs_gg_ppzksnark_ipp2_commitment_key< group_type > > | split (std::size_t at) const |
Returns the left and right commitment key part. It makes copy. More... | |
Public Attributes | |
std::vector< group_value_type > | a |
Exponent is a. More... | |
std::vector< group_value_type > | b |
Exponent is b. More... | |
Detailed Description
template<typename GroupType>
struct nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment_key< GroupType >
Key is a generic commitment key that is instantiated with g and h as basis, and a and b as powers.
Member Typedef Documentation
◆ curve_type
template<typename GroupType >
typedef group_type::curve_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment_key< GroupType >::curve_type |
◆ field_type
template<typename GroupType >
typedef curve_type::scalar_field_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment_key< GroupType >::field_type |
◆ field_value_type
template<typename GroupType >
typedef field_type::value_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment_key< GroupType >::field_value_type |
◆ group_type
template<typename GroupType >
typedef GroupType nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment_key< GroupType >::group_type |
◆ group_value_type
template<typename GroupType >
typedef group_type::value_type nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment_key< GroupType >::group_value_type |
Member Function Documentation
◆ compress()
template<typename GroupType >
|
inline |
Takes a left and right commitment key and returns a commitment key $left \circ right^{scale} = (left_i*right_i^{scale} ...)$. This is required step during GIPA recursion.
◆ first()
template<typename GroupType >
|
inline |
Returns the first values in the vector of v1 and v2 (respectively w1 and w2). When commitment key is of size one, it's a proxy to get the final values.
◆ has_correct_len()
template<typename GroupType >
|
inline |
Returns true if commitment keys have the exact required length. It is necessary for the IPP scheme to work that commitment key have the exact same number of arguments as the number of proofs to aggregate.
◆ scale()
template<typename GroupType >
template<typename InputIterator , typename ValueType = typename std::iterator_traits<InputIterator>::value_type, typename std::enable_if< std::is_same< field_value_type, ValueType >::value, bool >::type = true>
|
inline |
$
◆ split()
template<typename GroupType >
|
inline |
Returns the left and right commitment key part. It makes copy.
Member Data Documentation
◆ a
template<typename GroupType >
std::vector<group_value_type> nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment_key< GroupType >::a |
Exponent is a.
◆ b
template<typename GroupType >
std::vector<group_value_type> nil::crypto3::zk::snark::r1cs_gg_ppzksnark_ipp2_commitment_key< GroupType >::b |
Exponent is b.
The documentation for this struct was generated from the following file: