| 
    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_ppzksnark/r1cs_ppzksnark_params.hpp>#include <memory>#include <libsnark/zk_proof_systems/ppzksnark/r1cs_ppzksnark/r1cs_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_ppzksnark_proving_key< ppT > &pk) | 
| template<typename ppT > | |
| std::istream & | libsnark::operator>> (std::istream &in, r1cs_ppzksnark_proving_key< ppT > &pk) | 
| template<typename ppT > | |
| std::ostream & | libsnark::operator<< (std::ostream &out, const r1cs_ppzksnark_verification_key< ppT > &vk) | 
| template<typename ppT > | |
| std::istream & | libsnark::operator>> (std::istream &in, r1cs_ppzksnark_verification_key< ppT > &vk) | 
| template<typename ppT > | |
| std::ostream & | libsnark::operator<< (std::ostream &out, const r1cs_ppzksnark_processed_verification_key< ppT > &pvk) | 
| template<typename ppT > | |
| std::istream & | libsnark::operator>> (std::istream &in, r1cs_ppzksnark_processed_verification_key< ppT > &pvk) | 
| template<typename ppT > | |
| std::ostream & | libsnark::operator<< (std::ostream &out, const r1cs_ppzksnark_proof< ppT > &proof) | 
| template<typename ppT > | |
| std::istream & | libsnark::operator>> (std::istream &in, r1cs_ppzksnark_proof< ppT > &proof) | 
| template<typename ppT , libff::multi_exp_base_form BaseForm = libff::multi_exp_base_form_normal> | |
| r1cs_ppzksnark_keypair< ppT > | libsnark::r1cs_ppzksnark_generator (const r1cs_ppzksnark_constraint_system< ppT > &cs) | 
| template<typename ppT , libff::multi_exp_method Method = libff::multi_exp_method_bos_coster, libff::multi_exp_base_form BaseForm = libff::multi_exp_base_form_normal> | |
| r1cs_ppzksnark_proof< ppT > | libsnark::r1cs_ppzksnark_prover (const r1cs_ppzksnark_proving_key< ppT > &pk, const r1cs_ppzksnark_primary_input< ppT > &primary_input, const r1cs_ppzksnark_auxiliary_input< ppT > &auxiliary_input) | 
| template<typename ppT > | |
| bool | libsnark::r1cs_ppzksnark_verifier_weak_IC (const r1cs_ppzksnark_verification_key< ppT > &vk, const r1cs_ppzksnark_primary_input< ppT > &primary_input, const r1cs_ppzksnark_proof< ppT > &proof) | 
| template<typename ppT > | |
| bool | libsnark::r1cs_ppzksnark_verifier_strong_IC (const r1cs_ppzksnark_verification_key< ppT > &vk, const r1cs_ppzksnark_primary_input< ppT > &primary_input, const r1cs_ppzksnark_proof< ppT > &proof) | 
| template<typename ppT > | |
| r1cs_ppzksnark_processed_verification_key< ppT > | libsnark::r1cs_ppzksnark_verifier_process_vk (const r1cs_ppzksnark_verification_key< ppT > &vk) | 
| template<typename ppT > | |
| bool | libsnark::r1cs_ppzksnark_online_verifier_weak_IC (const r1cs_ppzksnark_processed_verification_key< ppT > &pvk, const r1cs_ppzksnark_primary_input< ppT > &input, const r1cs_ppzksnark_proof< ppT > &proof) | 
| template<typename ppT > | |
| bool | libsnark::r1cs_ppzksnark_online_verifier_strong_IC (const r1cs_ppzksnark_processed_verification_key< ppT > &pvk, const r1cs_ppzksnark_primary_input< ppT > &primary_input, const r1cs_ppzksnark_proof< ppT > &proof) | 
| template<typename ppT > | |
| bool | libsnark::r1cs_ppzksnark_affine_verifier_weak_IC (const r1cs_ppzksnark_verification_key< ppT > &vk, const r1cs_ppzksnark_primary_input< ppT > &primary_input, const r1cs_ppzksnark_proof< ppT > &proof) | 
Declaration of interfaces for a ppzkSNARK for R1CS.
This includes:
The implementation instantiates (a modification of) the protocol of [PGHR13], by following extending, and optimizing the approach described in [BCTV14].
Acronyms:
References:
[BCTV14]: "Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture", Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer, Madars Virza, USENIX Security 2014, http://eprint.iacr.org/2013/879
[PGHR13]: "Pinocchio: Nearly practical verifiable computation", Bryan Parno, Craig Gentry, Jon Howell, Mariana Raykova, IEEE S&P 2013, https://eprint.iacr.org/2013/279
Definition in file r1cs_ppzksnark.hpp.
 1.8.17