Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <libsnark/gadgetlib1/gadgets/routing/as_waksman_routing_gadget.hpp>
#include <libsnark/reductions/ram_to_r1cs/gadgets/memory_checker_gadget.hpp>
#include <libsnark/reductions/ram_to_r1cs/gadgets/trace_lines.hpp>
#include <libsnark/relations/ram_computations/rams/ram_params.hpp>
#include <libsnark/reductions/ram_to_r1cs/gadgets/ram_universal_gadget.tcc>
Go to the source code of this file.
Classes | |
class | libsnark::ram_universal_gadget< ramT > |
Namespaces | |
libsnark | |
Declaration of interfaces for ram_universal_gadget.
Given bounds on a RAM computation size (program size bound, primary input size bound, and time bound), the "RAM universal gadget" checks the correct execution of any RAM computation that fits the bounds.
The implementation follows, extends, and optimizes the approach described in [BCTV14] (itself building on [BCGTV13]). The code is parameterized by the template parameter ramT, in order to support any RAM that fits certain abstract interfaces.
Roughly, the gadget has three main components:
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 2014, http://eprint.iacr.org/2013/507
[BCTV14]: "Succinct Non-Interactive Zero Knowledge for a von Neumann Architecture", Eli Ben-Sasson, Alessandro Chiesa, Eran Tromer, Madars Virza, USENIX Security 2014, http://eprint.iacr.org/2013/879
Definition in file ram_universal_gadget.hpp.