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

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)
 

Detailed Description

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

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

Definition in file r1cs_to_qap.hpp.