Zeth - Zerocash on Ethereum  0.8
Reference implementation of the Zeth protocol by Clearmatics
Public Member Functions | Public Attributes | List of all members
libzeth::merkle_path_authenticator< FieldT, HashTreeT > Class Template Reference

Merkle path authenticator, verifies computed root matches expected result. More...

#include <merkle_path_authenticator.hpp>

Inheritance diagram for libzeth::merkle_path_authenticator< FieldT, HashTreeT >:
Inheritance graph
[legend]
Collaboration diagram for libzeth::merkle_path_authenticator< FieldT, HashTreeT >:
Collaboration graph
[legend]

Public Member Functions

 merkle_path_authenticator (libsnark::protoboard< FieldT > &pb, const size_t depth, const libsnark::pb_variable_array< FieldT > &address_bits, const libsnark::pb_variable< FieldT > leaf, const libsnark::pb_variable< FieldT > expected_root, const libsnark::pb_variable_array< FieldT > &path, const libsnark::pb_variable< FieldT > &bool_enforce, const std::string &annotation_prefix)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
bool is_valid ()
 
- Public Member Functions inherited from libzeth::merkle_path_compute< FieldT, HashTreeT >
 merkle_path_compute (libsnark::protoboard< FieldT > &pb, const size_t depth, const libsnark::pb_variable_array< FieldT > &address_bits, const libsnark::pb_variable< FieldT > leaf, const libsnark::pb_variable_array< FieldT > &path, const std::string &annotation_prefix)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 
const libsnark::pb_variable< FieldT > result ()
 

Public Attributes

const libsnark::pb_variable< FieldT > m_expected_root
 
const libsnark::pb_variable< FieldT > value_enforce
 
- Public Attributes inherited from libzeth::merkle_path_compute< FieldT, HashTreeT >
const size_t depth
 
const libsnark::pb_variable_array< FieldT > address_bits
 
const libsnark::pb_variable< FieldT > leaf
 
const libsnark::pb_variable_array< FieldT > path
 
libsnark::pb_variable_array< FieldT > digests
 
std::vector< merkle_path_selector< FieldT > > selectors
 
std::vector< HashTreeThashers
 

Detailed Description

template<typename FieldT, typename HashTreeT>
class libzeth::merkle_path_authenticator< FieldT, HashTreeT >

Merkle path authenticator, verifies computed root matches expected result.

Definition at line 16 of file merkle_path_authenticator.hpp.

Constructor & Destructor Documentation

◆ merkle_path_authenticator()

template<typename FieldT , typename HashTreeT >
libzeth::merkle_path_authenticator< FieldT, HashTreeT >::merkle_path_authenticator ( libsnark::protoboard< FieldT > &  pb,
const size_t  depth,
const libsnark::pb_variable_array< FieldT > &  address_bits,
const libsnark::pb_variable< FieldT >  leaf,
const libsnark::pb_variable< FieldT >  expected_root,
const libsnark::pb_variable_array< FieldT > &  path,
const libsnark::pb_variable< FieldT > &  bool_enforce,
const std::string &  annotation_prefix 
)

Member Function Documentation

◆ generate_r1cs_constraints()

template<typename FieldT , typename HashTreeT >
void libzeth::merkle_path_authenticator< FieldT, HashTreeT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename FieldT , typename HashTreeT >
void libzeth::merkle_path_authenticator< FieldT, HashTreeT >::generate_r1cs_witness ( )

◆ is_valid()

template<typename FieldT , typename HashTreeT >
bool libzeth::merkle_path_authenticator< FieldT, HashTreeT >::is_valid ( )

Member Data Documentation

◆ m_expected_root

template<typename FieldT , typename HashTreeT >
const libsnark::pb_variable<FieldT> libzeth::merkle_path_authenticator< FieldT, HashTreeT >::m_expected_root

Definition at line 20 of file merkle_path_authenticator.hpp.

◆ value_enforce

template<typename FieldT , typename HashTreeT >
const libsnark::pb_variable<FieldT> libzeth::merkle_path_authenticator< FieldT, HashTreeT >::value_enforce

Definition at line 24 of file merkle_path_authenticator.hpp.


The documentation for this class was generated from the following file: