Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
libsnark
gadgetlib1
gadgets
set_commitment
set_membership_proof_variable.hpp
Go to the documentation of this file.
1
8
#ifndef SET_MEMBERSHIP_PROOF_VARIABLE_HPP_
9
#define SET_MEMBERSHIP_PROOF_VARIABLE_HPP_
10
11
#include <
libsnark/common/data_structures/set_commitment.hpp
>
12
#include <
libsnark/gadgetlib1/gadget.hpp
>
13
#include <
libsnark/gadgetlib1/gadgets/hashes/hash_io.hpp
>
14
#include <
libsnark/gadgetlib1/gadgets/merkle_tree/merkle_authentication_path_variable.hpp
>
15
16
namespace
libsnark
17
{
18
19
template
<
typename
FieldT,
typename
HashT>
20
class
set_membership_proof_variable
:
public
gadget
<FieldT>
21
{
22
public
:
23
pb_variable_array<FieldT>
address_bits
;
24
std::shared_ptr<merkle_authentication_path_variable<FieldT, HashT>>
25
merkle_path
;
26
27
const
size_t
max_entries
;
28
const
size_t
tree_depth
;
29
30
set_membership_proof_variable
(
31
protoboard<FieldT>
&
pb
,
32
const
size_t
max_entries
,
33
const
std::string &
annotation_prefix
);
34
35
void
generate_r1cs_constraints
();
36
void
generate_r1cs_witness
(
const
set_membership_proof
&proof);
37
38
set_membership_proof
get_membership_proof
()
const
;
39
40
static
r1cs_variable_assignment<FieldT>
as_r1cs_variable_assignment
(
41
const
set_membership_proof
&proof);
42
};
43
44
}
// namespace libsnark
45
46
#include <
libsnark/gadgetlib1/gadgets/set_commitment/set_membership_proof_variable.tcc
>
47
48
#endif // SET_MEMBERSHIP_PROOF_VARIABLE_HPP
libsnark::gadget::annotation_prefix
const std::string annotation_prefix
Definition:
gadget.hpp:20
libsnark
Definition:
accumulation_vector.hpp:18
libsnark::set_membership_proof_variable::address_bits
pb_variable_array< FieldT > address_bits
Definition:
set_membership_proof_variable.hpp:23
libsnark::set_membership_proof_variable::get_membership_proof
set_membership_proof get_membership_proof() const
libsnark::gadget::pb
protoboard< FieldT > & pb
Definition:
gadget.hpp:19
set_membership_proof_variable.tcc
gadget.hpp
libsnark::set_membership_proof_variable::generate_r1cs_witness
void generate_r1cs_witness(const set_membership_proof &proof)
libsnark::gadget
Definition:
gadget.hpp:16
hash_io.hpp
libsnark::set_membership_proof_variable::generate_r1cs_constraints
void generate_r1cs_constraints()
libsnark::set_membership_proof_variable::as_r1cs_variable_assignment
static r1cs_variable_assignment< FieldT > as_r1cs_variable_assignment(const set_membership_proof &proof)
libsnark::set_membership_proof_variable::merkle_path
std::shared_ptr< merkle_authentication_path_variable< FieldT, HashT > > merkle_path
Definition:
set_membership_proof_variable.hpp:25
set_commitment.hpp
libsnark::set_membership_proof
Definition:
set_commitment.hpp:24
libsnark::set_membership_proof_variable::tree_depth
const size_t tree_depth
Definition:
set_membership_proof_variable.hpp:28
libsnark::set_membership_proof_variable::max_entries
const size_t max_entries
Definition:
set_membership_proof_variable.hpp:27
libsnark::r1cs_variable_assignment
std::vector< FieldT > r1cs_variable_assignment
Definition:
r1cs.hpp:88
merkle_authentication_path_variable.hpp
libsnark::pb_variable_array
Definition:
pb_variable.hpp:44
libsnark::set_membership_proof_variable::set_membership_proof_variable
set_membership_proof_variable(protoboard< FieldT > &pb, const size_t max_entries, const std::string &annotation_prefix)
libsnark::set_membership_proof_variable
Definition:
set_membership_proof_variable.hpp:20
libsnark::protoboard
Definition:
pb_variable.hpp:22
Generated on Wed Jan 25 2023 11:05:58 for Clearmatics Libsnark by
1.8.17