Zecale - Reconciling Privacy and Scalability on Smart-Contract Chains  0.5
Reference implementation of the Zecale protocol by Clearmatics
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
libzecale::verification_key_hash_gadget< wppT, nverifierT > Class Template Reference

#include <verification_key_hash_gadget.hpp>

Inheritance diagram for libzecale::verification_key_hash_gadget< wppT, nverifierT >:
Inheritance graph
[legend]
Collaboration diagram for libzecale::verification_key_hash_gadget< wppT, nverifierT >:
Collaboration graph
[legend]

Public Types

using FieldT = libff::Fr< wppT >
 
using compFnT = compression_function_gadget< wppT >
 
using scalarHasherT = libzeth::mimc_input_hasher< FieldT, compFnT >
 
using nsnark = typename nverifierT::snark
 
using verification_key_variable = typename nverifierT::verification_key_variable_gadget
 

Public Member Functions

 verification_key_hash_gadget (libsnark::protoboard< FieldT > &pb, verification_key_variable &verifcation_key, libsnark::pb_variable< FieldT > &verification_key_hash, const std::string &annotation)
 
void generate_r1cs_constraints ()
 
void generate_r1cs_witness ()
 

Static Public Member Functions

static FieldT compute_hash (const typename nsnark::verification_key &vk, size_t num_inputs)
 

Public Attributes

scalarHasherT _hash_gadget
 Gadget to hash vk bits. More...
 

Detailed Description

template<typename wppT, typename nverifierT>
class libzecale::verification_key_hash_gadget< wppT, nverifierT >

Gadget to produce the hash of a verification key for nested proofs. Relies on a hash gadget hashT which operates directly on arrays of scalars, producing digests which are also scalars.

Definition at line 21 of file verification_key_hash_gadget.hpp.

Member Typedef Documentation

◆ compFnT

template<typename wppT , typename nverifierT >
using libzecale::verification_key_hash_gadget< wppT, nverifierT >::compFnT = compression_function_gadget<wppT>

Definition at line 25 of file verification_key_hash_gadget.hpp.

◆ FieldT

template<typename wppT , typename nverifierT >
using libzecale::verification_key_hash_gadget< wppT, nverifierT >::FieldT = libff::Fr<wppT>

Definition at line 24 of file verification_key_hash_gadget.hpp.

◆ nsnark

template<typename wppT , typename nverifierT >
using libzecale::verification_key_hash_gadget< wppT, nverifierT >::nsnark = typename nverifierT::snark

Definition at line 28 of file verification_key_hash_gadget.hpp.

◆ scalarHasherT

template<typename wppT , typename nverifierT >
using libzecale::verification_key_hash_gadget< wppT, nverifierT >::scalarHasherT = libzeth::mimc_input_hasher<FieldT, compFnT>

Definition at line 26 of file verification_key_hash_gadget.hpp.

◆ verification_key_variable

template<typename wppT , typename nverifierT >
using libzecale::verification_key_hash_gadget< wppT, nverifierT >::verification_key_variable = typename nverifierT::verification_key_variable_gadget

Definition at line 30 of file verification_key_hash_gadget.hpp.

Constructor & Destructor Documentation

◆ verification_key_hash_gadget()

template<typename wppT , typename nverifierT >
libzecale::verification_key_hash_gadget< wppT, nverifierT >::verification_key_hash_gadget ( libsnark::protoboard< FieldT > &  pb,
verification_key_variable verifcation_key,
libsnark::pb_variable< FieldT > &  verification_key_hash,
const std::string &  annotation 
)

Member Function Documentation

◆ compute_hash()

template<typename wppT , typename nverifierT >
static FieldT libzecale::verification_key_hash_gadget< wppT, nverifierT >::compute_hash ( const typename nsnark::verification_key &  vk,
size_t  num_inputs 
)
static
Here is the caller graph for this function:

◆ generate_r1cs_constraints()

template<typename wppT , typename nverifierT >
void libzecale::verification_key_hash_gadget< wppT, nverifierT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename wppT , typename nverifierT >
void libzecale::verification_key_hash_gadget< wppT, nverifierT >::generate_r1cs_witness ( )

Member Data Documentation

◆ _hash_gadget

template<typename wppT , typename nverifierT >
scalarHasherT libzecale::verification_key_hash_gadget< wppT, nverifierT >::_hash_gadget

Gadget to hash vk bits.

Definition at line 33 of file verification_key_hash_gadget.hpp.


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