Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Classes | Namespaces | Functions
mp_pcd_circuits.hpp File Reference
#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>
Include dependency graph for mp_pcd_circuits.hpp:

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)
 

Detailed Description

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

Author
This file is part of libsnark, developed by SCIPR Lab and contributors (see AUTHORS).

Definition in file mp_pcd_circuits.hpp.