Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <libff/algebra/curves/public_params.hpp>
#include <libsnark/common/data_structures/accumulation_vector.hpp>
#include <libsnark/knowledge_commitment/knowledge_commitment.hpp>
#include <libsnark/relations/constraint_satisfaction_problems/r1cs/r1cs.hpp>
#include <libsnark/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/r1cs_gg_ppzksnark_params.hpp>
#include <memory>
#include <libsnark/zk_proof_systems/ppzksnark/r1cs_gg_ppzksnark/r1cs_gg_ppzksnark.tcc>
Go to the source code of this file.
Namespaces | |
libsnark | |
Functions | |
template<typename ppT > | |
std::ostream & | libsnark::operator<< (std::ostream &out, const r1cs_gg_ppzksnark_proving_key< ppT > &pk) |
template<typename ppT > | |
std::istream & | libsnark::operator>> (std::istream &in, r1cs_gg_ppzksnark_proving_key< ppT > &pk) |
template<typename ppT > | |
std::ostream & | libsnark::operator<< (std::ostream &out, const r1cs_gg_ppzksnark_verification_key< ppT > &vk) |
template<typename ppT > | |
std::istream & | libsnark::operator>> (std::istream &in, r1cs_gg_ppzksnark_verification_key< ppT > &vk) |
template<typename ppT > | |
std::ostream & | libsnark::operator<< (std::ostream &out, const r1cs_gg_ppzksnark_processed_verification_key< ppT > &pvk) |
template<typename ppT > | |
std::istream & | libsnark::operator>> (std::istream &in, r1cs_gg_ppzksnark_processed_verification_key< ppT > &pvk) |
template<typename ppT > | |
std::ostream & | libsnark::operator<< (std::ostream &out, const r1cs_gg_ppzksnark_proof< ppT > &proof) |
template<typename ppT > | |
std::istream & | libsnark::operator>> (std::istream &in, r1cs_gg_ppzksnark_proof< ppT > &proof) |
template<typename ppT , libff::multi_exp_base_form BaseForm = libff::multi_exp_base_form_special> | |
r1cs_gg_ppzksnark_keypair< ppT > | libsnark::r1cs_gg_ppzksnark_generator_from_secrets (const r1cs_gg_ppzksnark_constraint_system< ppT > &cs, const libff::Fr< ppT > &t, const libff::Fr< ppT > &alpha, const libff::Fr< ppT > &beta, const libff::Fr< ppT > &delta, const libff::G1< ppT > &g1_generator, const libff::G2< ppT > &g2_generator, bool force_pow_2_domain=false) |
template<typename ppT , libff::multi_exp_base_form BaseForm = libff::multi_exp_base_form_special> | |
r1cs_gg_ppzksnark_keypair< ppT > | libsnark::r1cs_gg_ppzksnark_generator (const r1cs_gg_ppzksnark_constraint_system< ppT > &cs, bool force_pow_2_domain=false) |
template<typename ppT , libff::multi_exp_method Method = libff::multi_exp_method_BDLO12_signed, libff::multi_exp_base_form BaseForm = libff::multi_exp_base_form_special> | |
r1cs_gg_ppzksnark_proof< ppT > | libsnark::r1cs_gg_ppzksnark_prover (const r1cs_gg_ppzksnark_proving_key< ppT > &pk, const r1cs_gg_ppzksnark_primary_input< ppT > &primary_input, const r1cs_gg_ppzksnark_auxiliary_input< ppT > &auxiliary_input, bool force_pow_2_domain=false) |
template<typename ppT > | |
bool | libsnark::r1cs_gg_ppzksnark_verifier_weak_IC (const r1cs_gg_ppzksnark_verification_key< ppT > &vk, const r1cs_gg_ppzksnark_primary_input< ppT > &primary_input, const r1cs_gg_ppzksnark_proof< ppT > &proof) |
template<typename ppT > | |
bool | libsnark::r1cs_gg_ppzksnark_verifier_strong_IC (const r1cs_gg_ppzksnark_verification_key< ppT > &vk, const r1cs_gg_ppzksnark_primary_input< ppT > &primary_input, const r1cs_gg_ppzksnark_proof< ppT > &proof) |
template<typename ppT > | |
r1cs_gg_ppzksnark_processed_verification_key< ppT > | libsnark::r1cs_gg_ppzksnark_verifier_process_vk (const r1cs_gg_ppzksnark_verification_key< ppT > &vk) |
template<typename ppT > | |
bool | libsnark::r1cs_gg_ppzksnark_online_verifier_weak_IC (const r1cs_gg_ppzksnark_processed_verification_key< ppT > &pvk, const r1cs_gg_ppzksnark_primary_input< ppT > &input, const r1cs_gg_ppzksnark_proof< ppT > &proof) |
template<typename ppT > | |
bool | libsnark::r1cs_gg_ppzksnark_online_verifier_strong_IC (const r1cs_gg_ppzksnark_processed_verification_key< ppT > &pvk, const r1cs_gg_ppzksnark_primary_input< ppT > &primary_input, const r1cs_gg_ppzksnark_proof< ppT > &proof) |
template<typename ppT > | |
bool | libsnark::r1cs_gg_ppzksnark_affine_verifier_weak_IC (const r1cs_gg_ppzksnark_verification_key< ppT > &vk, const r1cs_gg_ppzksnark_primary_input< ppT > &primary_input, const r1cs_gg_ppzksnark_proof< ppT > &proof) |
Declaration of interfaces for a ppzkSNARK for R1CS with a security proof in the generic group (GG) model.
This includes:
The implementation instantiates the protocol of [Gro16].
Acronyms:
References:
[Gro16]: "On the Size of Pairing-based Non-interactive Arguments", Jens Groth, EUROCRYPT 2016, https://eprint.iacr.org/2016/260
[BoweGM17]: "Scalable Multi-party Computation for zk-SNARK Parameters in the Random Beacon Model" Sean Bowe and Ariel Gabizon and Ian Miers, IACR Cryptology ePrint Archive 2017, http://eprint.iacr.org/2017/1050
Definition in file r1cs_gg_ppzksnark.hpp.