Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <libsnark/gadgetlib1/gadgets/gadget_from_r1cs.hpp>
#include <libsnark/gadgetlib1/gadgets/hashes/crh_gadget.hpp>
#include <libsnark/gadgetlib1/gadgets/pairing/pairing_params.hpp>
#include <libsnark/gadgetlib1/gadgets/verifiers/r1cs_ppzksnark_verifier_gadget.hpp>
#include <libsnark/gadgetlib1/protoboard.hpp>
#include <libsnark/zk_proof_systems/pcd/r1cs_pcd/compliance_predicate/cp_handler.hpp>
#include <libsnark/zk_proof_systems/pcd/r1cs_pcd/r1cs_sp_ppzkpcd/sp_pcd_circuits.tcc>
Go to the source code of this file.
Classes | |
class | libsnark::sp_compliance_step_pcd_circuit_maker< ppT > |
class | libsnark::sp_translation_step_pcd_circuit_maker< ppT > |
Namespaces | |
libsnark | |
Functions | |
template<typename ppT > | |
r1cs_primary_input< libff::Fr< ppT > > | libsnark::get_sp_compliance_step_pcd_circuit_input (const libff::bit_vector &sp_translation_step_vk_bits, const r1cs_pcd_compliance_predicate_primary_input< libff::Fr< ppT >> &primary_input) |
template<typename ppT > | |
r1cs_primary_input< libff::Fr< ppT > > | libsnark::get_sp_translation_step_pcd_circuit_input (const libff::bit_vector &sp_translation_step_vk_bits, 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 single-predicate PCD construction.
The implementation follows, extends, and optimizes the approach described in [BCTV14]. At high level, there is a "compliance step" circuit and a "translation step" circuit. For more details see Section 4 of [BCTV14].
References:
[BCTV14]: "Scalable Zero Knowledge via Cycles of Elliptic Curves", Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer, Madars Virza, CRYPTO 2014, http://eprint.iacr.org/2014/595
Definition in file sp_pcd_circuits.hpp.