Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <libsnark/gadgetlib1/gadget.hpp>
#include <libsnark/gadgetlib1/gadgets/gadget_from_r1cs.hpp>
#include <libsnark/gadgetlib1/gadgets/hashes/crh_gadget.hpp>
#include <libsnark/gadgetlib1/gadgets/set_commitment/set_commitment_gadget.hpp>
#include <libsnark/gadgetlib1/gadgets/verifiers/r1cs_ppzksnark_verifier_gadget.hpp>
#include <libsnark/zk_proof_systems/pcd/r1cs_pcd/compliance_predicate/cp_handler.hpp>
#include <libsnark/zk_proof_systems/pcd/r1cs_pcd/r1cs_mp_ppzkpcd/mp_pcd_circuits.tcc>
Go to the source code of this file.
Classes | |
class | libsnark::mp_compliance_step_pcd_circuit_maker< ppT > |
class | libsnark::mp_translation_step_pcd_circuit_maker< ppT > |
Namespaces | |
libsnark | |
Functions | |
template<typename ppT > | |
r1cs_primary_input< libff::Fr< ppT > > | libsnark::get_mp_compliance_step_pcd_circuit_input (const set_commitment &commitment_to_translation_step_r1cs_vks, const r1cs_pcd_compliance_predicate_primary_input< libff::Fr< ppT >> &primary_input) |
template<typename ppT > | |
r1cs_primary_input< libff::Fr< ppT > > | libsnark::get_mp_translation_step_pcd_circuit_input (const set_commitment &commitment_to_translation_step_r1cs_vks, const r1cs_pcd_compliance_predicate_primary_input< libff::Fr< other_curve< ppT >>> &primary_input) |
Declaration of functionality for creating and using the two PCD circuits in a multi-predicate PCD construction.
The implementation follows, extends, and optimizes the approach described in [CTV15]. At high level, there is a "compliance step" circuit and a "translation step" circuit, for each compliance predicate. For more details, see [CTV15].
References:
[CTV15]: "Cluster Computing in Zero Knowledge", Alessandro Chiesa, Eran Tromer, Madars Virza
Definition in file mp_pcd_circuits.hpp.