Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <libsnark/relations/circuit_satisfaction_problems/bacs/bacs.hpp>
#include <libsnark/relations/constraint_satisfaction_problems/r1cs/r1cs.hpp>
#include <libsnark/reductions/bacs_to_r1cs/bacs_to_r1cs.tcc>
Go to the source code of this file.
Namespaces | |
libsnark | |
Functions | |
template<typename FieldT > | |
r1cs_constraint_system< FieldT > | libsnark::bacs_to_r1cs_instance_map (const bacs_circuit< FieldT > &circuit) |
template<typename FieldT > | |
r1cs_variable_assignment< FieldT > | libsnark::bacs_to_r1cs_witness_map (const bacs_circuit< FieldT > &circuit, const bacs_primary_input< FieldT > &primary_input, const bacs_auxiliary_input< FieldT > &auxiliary_input) |
Declaration of interfaces for a BACS-to-R1CS reduction, that is, constructing a R1CS ("Rank-1 Constraint System") from a BACS ("Bilinear Arithmetic Circuit Satisfiability").
The reduction is straightforward: each bilinear gate gives rises to a corresponding R1CS constraint that enforces correct computation of the gate; also, each output gives rise to a corresponding R1CS constraint that enforces that the output is zero.
Definition in file bacs_to_r1cs.hpp.