Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
#include <ram_universal_gadget.hpp>
Public Types | |
typedef ram_base_field< ramT > | FieldT |
Public Member Functions | |
ram_universal_gadget (ram_protoboard< ramT > &pb, const size_t boot_trace_size_bound, const size_t time_bound, const pb_variable_array< FieldT > &packed_input, const std::string &annotation_prefix="") | |
void | generate_r1cs_constraints () |
void | generate_r1cs_witness (const ram_boot_trace< ramT > &boot_trace, const ram_input_tape< ramT > &auxiliary_input) |
void | print_execution_trace () const |
void | print_memory_trace () const |
Static Public Member Functions | |
static size_t | packed_input_element_size (const ram_architecture_params< ramT > &ap) |
static size_t | packed_input_size (const ram_architecture_params< ramT > &ap, const size_t boot_trace_size_bound) |
Public Attributes | |
size_t | num_memory_lines |
std::vector< memory_line_variable_gadget< ramT > > | boot_lines |
std::vector< pb_variable_array< FieldT > > | boot_line_bits |
std::vector< multipacking_gadget< FieldT > > | unpack_boot_lines |
std::vector< memory_line_variable_gadget< ramT > > | load_instruction_lines |
std::vector< execution_line_variable_gadget< ramT > > | execution_lines |
std::vector< memory_line_variable_gadget< ramT > * > | unrouted_memory_lines |
std::vector< memory_line_variable_gadget< ramT > > | routed_memory_lines |
std::vector< ram_cpu_checker< ramT > > | execution_checkers |
std::vector< memory_checker_gadget< ramT > > | memory_checkers |
std::vector< pb_variable_array< FieldT > > | routing_inputs |
std::vector< pb_variable_array< FieldT > > | routing_outputs |
std::shared_ptr< as_waksman_routing_gadget< FieldT > > | routing_network |
size_t | boot_trace_size_bound |
size_t | time_bound |
pb_variable_array< FieldT > | packed_input |
Definition at line 88 of file ram_universal_gadget.hpp.
typedef ram_base_field<ramT> libsnark::ram_universal_gadget< ramT >::FieldT |
Definition at line 91 of file ram_universal_gadget.hpp.
libsnark::ram_universal_gadget< ramT >::ram_universal_gadget | ( | ram_protoboard< ramT > & | pb, |
const size_t | boot_trace_size_bound, | ||
const size_t | time_bound, | ||
const pb_variable_array< FieldT > & | packed_input, | ||
const std::string & | annotation_prefix = "" |
||
) |
void libsnark::ram_universal_gadget< ramT >::generate_r1cs_constraints | ( | ) |
void libsnark::ram_universal_gadget< ramT >::generate_r1cs_witness | ( | const ram_boot_trace< ramT > & | boot_trace, |
const ram_input_tape< ramT > & | auxiliary_input | ||
) |
|
static |
|
static |
void libsnark::ram_universal_gadget< ramT >::print_execution_trace | ( | ) | const |
void libsnark::ram_universal_gadget< ramT >::print_memory_trace | ( | ) | const |
std::vector<pb_variable_array<FieldT> > libsnark::ram_universal_gadget< ramT >::boot_line_bits |
Definition at line 96 of file ram_universal_gadget.hpp.
std::vector<memory_line_variable_gadget<ramT> > libsnark::ram_universal_gadget< ramT >::boot_lines |
Definition at line 95 of file ram_universal_gadget.hpp.
size_t libsnark::ram_universal_gadget< ramT >::boot_trace_size_bound |
Definition at line 115 of file ram_universal_gadget.hpp.
std::vector<ram_cpu_checker<ramT> > libsnark::ram_universal_gadget< ramT >::execution_checkers |
Definition at line 106 of file ram_universal_gadget.hpp.
std::vector<execution_line_variable_gadget<ramT> > libsnark::ram_universal_gadget< ramT >::execution_lines |
Definition at line 101 of file ram_universal_gadget.hpp.
std::vector<memory_line_variable_gadget<ramT> > libsnark::ram_universal_gadget< ramT >::load_instruction_lines |
Definition at line 99 of file ram_universal_gadget.hpp.
std::vector<memory_checker_gadget<ramT> > libsnark::ram_universal_gadget< ramT >::memory_checkers |
Definition at line 107 of file ram_universal_gadget.hpp.
size_t libsnark::ram_universal_gadget< ramT >::num_memory_lines |
Definition at line 93 of file ram_universal_gadget.hpp.
pb_variable_array<FieldT> libsnark::ram_universal_gadget< ramT >::packed_input |
Definition at line 117 of file ram_universal_gadget.hpp.
std::vector<memory_line_variable_gadget<ramT> > libsnark::ram_universal_gadget< ramT >::routed_memory_lines |
Definition at line 104 of file ram_universal_gadget.hpp.
std::vector<pb_variable_array<FieldT> > libsnark::ram_universal_gadget< ramT >::routing_inputs |
Definition at line 109 of file ram_universal_gadget.hpp.
std::shared_ptr<as_waksman_routing_gadget<FieldT> > libsnark::ram_universal_gadget< ramT >::routing_network |
Definition at line 112 of file ram_universal_gadget.hpp.
std::vector<pb_variable_array<FieldT> > libsnark::ram_universal_gadget< ramT >::routing_outputs |
Definition at line 110 of file ram_universal_gadget.hpp.
size_t libsnark::ram_universal_gadget< ramT >::time_bound |
Definition at line 116 of file ram_universal_gadget.hpp.
std::vector<multipacking_gadget<FieldT> > libsnark::ram_universal_gadget< ramT >::unpack_boot_lines |
Definition at line 97 of file ram_universal_gadget.hpp.
std::vector<memory_line_variable_gadget<ramT> *> libsnark::ram_universal_gadget< ramT >::unrouted_memory_lines |
Definition at line 103 of file ram_universal_gadget.hpp.