Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <libsnark/relations/arithmetic_programs/qap/qap.hpp>
#include <libsnark/relations/constraint_satisfaction_problems/r1cs/r1cs.hpp>
#include <libsnark/reductions/r1cs_to_qap/r1cs_to_qap.tcc>
Go to the source code of this file.
Namespaces | |
libsnark | |
Functions | |
template<typename FieldT > | |
qap_instance< FieldT > | libsnark::r1cs_to_qap_instance_map (const r1cs_constraint_system< FieldT > &cs, bool force_pow_2_domain=false) |
template<typename FieldT > | |
qap_instance_evaluation< FieldT > | libsnark::r1cs_to_qap_instance_map_with_evaluation (const r1cs_constraint_system< FieldT > &cs, const FieldT &t, bool force_pow_2_domain=false) |
template<typename FieldT > | |
qap_witness< FieldT > | libsnark::r1cs_to_qap_witness_map (const r1cs_constraint_system< FieldT > &cs, const r1cs_primary_input< FieldT > &primary_input, const r1cs_auxiliary_input< FieldT > &auxiliary_input, const FieldT &d1, const FieldT &d2, const FieldT &d3, bool force_pow_2_domain=false) |
Declaration of interfaces for a R1CS-to-QAP reduction, that is, constructing a QAP ("Quadratic Arithmetic Program") from a R1CS ("Rank-1 Constraint System").
QAPs are defined in [GGPR13], and constructed for R1CS also in [GGPR13].
The implementation of the reduction follows, extends, and optimizes the efficient approach described in Appendix E of [BCGTV13].
References:
[BCGTV13] "SNARKs for C: Verifying Program Executions Succinctly and in Zero Knowledge", Eli Ben-Sasson, Alessandro Chiesa, Daniel Genkin, Eran Tromer, Madars Virza, CRYPTO 2013, http://eprint.iacr.org/2013/507
[GGPR13]: "Quadratic span programs and succinct NIZKs without PCPs", Rosario Gennaro, Craig Gentry, Bryan Parno, Mariana Raykova, EUROCRYPT 2013, http://eprint.iacr.org/2012/215
Definition in file r1cs_to_qap.hpp.