r1cs_gg_ppzksnark/ipp2/prover.hpp File Reference
+ Include dependency graph for r1cs_gg_ppzksnark/ipp2/prover.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  nil::crypto3::zk::snark::r1cs_gg_ppzksnark_prover< CurveType, ProvingMode::Aggregate >
 

Namespaces

 nil
 
 nil::crypto3
 
 nil::crypto3::zk
 
 nil::crypto3::zk::snark
 

Functions

template<typename CurveType , typename Hash = hashes::sha2<256>, typename InputTranscriptIncludeIterator , typename InputProofIterator >
std::enable_if< std::is_same< std::uint8_t, typename std::iterator_traits< InputTranscriptIncludeIterator >::value_type >::value &&std::is_same< typename std::iterator_traits< InputProofIterator >::value_type, r1cs_gg_ppzksnark_proof< CurveType > >::value, r1cs_gg_ppzksnark_aggregate_proof< CurveType > >::type nil::crypto3::zk::snark::aggregate_proofs (const r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType > &srs, InputTranscriptIncludeIterator tr_include_first, InputTranscriptIncludeIterator tr_include_last, InputProofIterator proofs_first, InputProofIterator proofs_last)
 Aggregate n zkSnark proofs, where n must be a power of two. More...
 
template<typename CurveType , typename InputRange , typename ValueType = typename std::iterator_traits<typename InputRange::iterator>::value_type>
std::enable_if< std::is_same< typename CurveType::template g1_type<>::value_type, ValueType >::value||std::is_same< typename CurveType::template g2_type<>::value_type, ValueType >::value||std::is_same< typename CurveType::scalar_field_type::value_type, ValueType >::value >::type nil::crypto3::zk::snark::compress (InputRange &vec, std::size_t split, const typename CurveType::scalar_field_type::value_type &scalar)
 
template<typename CurveType , typename Hash = hashes::sha2<256>, typename InputG1Iterator1 , typename InputG2Iterator , typename InputG1Iterator2 , typename InputScalarIterator >
std::enable_if< std::is_same< typename CurveType::template g1_type<>::value_type, typename std::iterator_traits< InputG1Iterator1 >::value_type >::value &&std::is_same< typename CurveType::template g2_type<>::value_type, typename std::iterator_traits< InputG2Iterator >::value_type >::value &&std::is_same< typename CurveType::scalar_field_type::value_type, typename std::iterator_traits< InputScalarIterator >::value_type >::value &&std::is_same< typename CurveType::template g1_type<>::value_type, typename std::iterator_traits< InputG1Iterator2 >::value_type >::value, std::tuple< gipa_proof< CurveType >, std::vector< typename CurveType::scalar_field_type::value_type >, std::vector< typename CurveType::scalar_field_type::value_type > > >::type nil::crypto3::zk::snark::gipa_tipp_mipp (transcript< CurveType, Hash > &tr, InputG1Iterator1 a_first, InputG1Iterator1 a_last, InputG2Iterator b_first, InputG2Iterator b_last, InputG1Iterator2 c_first, InputG1Iterator2 c_last, const r1cs_gg_ppzksnark_ipp2_vkey< CurveType > &vkey_input, const r1cs_gg_ppzksnark_ipp2_wkey< CurveType > &wkey_input, InputScalarIterator r_first, InputScalarIterator r_last)
 
template<typename FieldType , typename InputFieldValueIterator >
std::enable_if< std::is_same< typename std::iterator_traits< InputFieldValueIterator >::value_type, typename FieldType::value_type >::value, std::vector< typename FieldType::value_type > >::type nil::crypto3::zk::snark::polynomial_coefficients_from_transcript (InputFieldValueIterator transcript_first, InputFieldValueIterator transcript_last, const typename FieldType::value_type &r_shift)
 
template<typename FieldType , typename InputFieldValueIterator >
std::enable_if< std::is_same< typename std::iterator_traits< InputFieldValueIterator >::value_type, typename FieldType::value_type >::value, typename FieldType::value_type >::type nil::crypto3::zk::snark::polynomial_evaluation_product_form_from_transcript (InputFieldValueIterator transcript_first, InputFieldValueIterator transcript_last, const typename FieldType::value_type &z, const typename FieldType::value_type &r_shift)
 
template<typename GroupType , typename InputGroupIterator , typename InputScalarRange >
std::enable_if< std::is_same< typename GroupType::value_type, typename std::iterator_traits< InputGroupIterator >::value_type >::value &&std::is_same< typename GroupType::curve_type::scalar_field_type::value_type, typename std::iterator_traits< typename InputScalarRange::iterator >::value_type >::value, kzg_opening< GroupType > >::type nil::crypto3::zk::snark::prove_commitment_key_kzg_opening (InputGroupIterator srs_powers_alpha_first, InputGroupIterator srs_powers_alpha_last, InputGroupIterator srs_powers_beta_first, InputGroupIterator srs_powers_beta_last, const InputScalarRange &poly, const typename GroupType::curve_type::scalar_field_type::value_type &eval_poly, const typename GroupType::curve_type::scalar_field_type::value_type &kzg_challenge)
 
template<typename CurveType , typename InputG2Iterator , typename InputScalarIterator >
std::enable_if< std::is_same< typename CurveType::template g2_type<>::value_type, typename std::iterator_traits< InputG2Iterator >::value_type >::value &&std::is_same< typename CurveType::scalar_field_type::value_type, typename std::iterator_traits< InputScalarIterator >::value_type >::value, kzg_opening< typename CurveType::template g2_type<> > >::type nil::crypto3::zk::snark::prove_commitment_v (InputG2Iterator srs_powers_alpha_first, InputG2Iterator srs_powers_alpha_last, InputG2Iterator srs_powers_beta_first, InputG2Iterator srs_powers_beta_last, InputScalarIterator transcript_first, InputScalarIterator transcript_last, const typename CurveType::scalar_field_type::value_type &kzg_challenge)
 
template<typename CurveType , typename InputG1Iterator , typename InputScalarIterator >
std::enable_if< std::is_same< typename CurveType::template g1_type<>::value_type, typename std::iterator_traits< InputG1Iterator >::value_type >::value &&std::is_same< typename CurveType::scalar_field_type::value_type, typename std::iterator_traits< InputScalarIterator >::value_type >::value, kzg_opening< typename CurveType::template g1_type<> > >::type nil::crypto3::zk::snark::prove_commitment_w (InputG1Iterator srs_powers_alpha_first, InputG1Iterator srs_powers_alpha_last, InputG1Iterator srs_powers_beta_first, InputG1Iterator srs_powers_beta_last, InputScalarIterator transcript_first, InputScalarIterator transcript_last, typename CurveType::scalar_field_type::value_type r_shift, const typename CurveType::scalar_field_type::value_type &kzg_challenge)
 
template<typename CurveType , typename Hash = hashes::sha2<256>, typename InputG1Iterator1 , typename InputG2Iterator , typename InputG1Iterator2 , typename InputScalarIterator >
std::enable_if< std::is_same< typename CurveType::template g1_type<>::value_type, typename std::iterator_traits< InputG1Iterator1 >::value_type >::value &&std::is_same< typename CurveType::template g2_type<>::value_type, typename std::iterator_traits< InputG2Iterator >::value_type >::value &&std::is_same< typename CurveType::template g1_type<>::value_type, typename std::iterator_traits< InputG1Iterator2 >::value_type >::value &&std::is_same< typename CurveType::scalar_field_type::value_type, typename std::iterator_traits< InputScalarIterator >::value_type >::value, tipp_mipp_proof< CurveType > >::type nil::crypto3::zk::snark::prove_tipp_mipp (const r1cs_gg_ppzksnark_aggregate_proving_srs< CurveType > &srs, transcript< CurveType, Hash > &tr, InputG1Iterator1 a_first, InputG1Iterator1 a_last, InputG2Iterator b_first, InputG2Iterator b_last, InputG1Iterator2 c_first, InputG1Iterator2 c_last, const r1cs_gg_ppzksnark_ipp2_wkey< CurveType > &wkey, InputScalarIterator r_first, InputScalarIterator r_last)
 
template<typename FieldType >
std::vector< typename FieldType::value_type > nil::crypto3::zk::snark::structured_scalar_power (std::size_t num, const typename FieldType::value_type &s)