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

#include <aggregator_circuit.hpp>

Public Member Functions

 aggregator_circuit (const size_t inputs_per_nested_proof)
 
 aggregator_circuit (const aggregator_circuit &other)=delete
 
const aggregator_circuitoperator= (const aggregator_circuit &other)=delete
 
wsnarkT::keypair generate_trusted_setup () const
 
size_t num_primary_inputs () const
 
const libsnark::r1cs_constraint_system< libff::Fr< wppT > > & get_constraint_system () const
 
extended_proof< wppT, wsnarkT > prove (const typename nsnark::verification_key &nested_vk, const std::array< const libzeth::extended_proof< npp, nsnark > *, NumProofs > &extended_proofs, const typename wsnarkT::proving_key &aggregator_proving_key)
 Generate a proof and returns an extended proof. More...
 

Detailed Description

template<typename wppT, typename wsnarkT, typename nverifierT, size_t NumProofs>
class libzecale::aggregator_circuit< wppT, wsnarkT, nverifierT, NumProofs >

Creates a circuit for creating a wrapping proof aggregating a batch of nested proofs. Inputs are allocated as follows:

<hash of nested verification key> <packed_results> <nested_inputs[1]> <nested_inputs[2]> ... <nested_inputs[N]>

where: N = NumProofs, packed_results = verification result for all proofs, represented as bits nested_inputs[i][j] = j-th input to i-th proof,

Definition at line 33 of file aggregator_circuit.hpp.

Constructor & Destructor Documentation

◆ aggregator_circuit() [1/2]

template<typename wppT , typename wsnarkT , typename nverifierT , size_t NumProofs>
libzecale::aggregator_circuit< wppT, wsnarkT, nverifierT, NumProofs >::aggregator_circuit ( const size_t  inputs_per_nested_proof)
explicit

◆ aggregator_circuit() [2/2]

template<typename wppT , typename wsnarkT , typename nverifierT , size_t NumProofs>
libzecale::aggregator_circuit< wppT, wsnarkT, nverifierT, NumProofs >::aggregator_circuit ( const aggregator_circuit< wppT, wsnarkT, nverifierT, NumProofs > &  other)
delete

Member Function Documentation

◆ generate_trusted_setup()

template<typename wppT , typename wsnarkT , typename nverifierT , size_t NumProofs>
wsnarkT::keypair libzecale::aggregator_circuit< wppT, wsnarkT, nverifierT, NumProofs >::generate_trusted_setup ( ) const

◆ get_constraint_system()

template<typename wppT , typename wsnarkT , typename nverifierT , size_t NumProofs>
const libsnark::r1cs_constraint_system<libff::Fr<wppT> >& libzecale::aggregator_circuit< wppT, wsnarkT, nverifierT, NumProofs >::get_constraint_system ( ) const

◆ num_primary_inputs()

template<typename wppT , typename wsnarkT , typename nverifierT , size_t NumProofs>
size_t libzecale::aggregator_circuit< wppT, wsnarkT, nverifierT, NumProofs >::num_primary_inputs ( ) const

◆ operator=()

template<typename wppT , typename wsnarkT , typename nverifierT , size_t NumProofs>
const aggregator_circuit& libzecale::aggregator_circuit< wppT, wsnarkT, nverifierT, NumProofs >::operator= ( const aggregator_circuit< wppT, wsnarkT, nverifierT, NumProofs > &  other)
delete

◆ prove()

template<typename wppT , typename wsnarkT , typename nverifierT , size_t NumProofs>
extended_proof<wppT, wsnarkT> libzecale::aggregator_circuit< wppT, wsnarkT, nverifierT, NumProofs >::prove ( const typename nsnark::verification_key &  nested_vk,
const std::array< const libzeth::extended_proof< npp, nsnark > *, NumProofs > &  extended_proofs,
const typename wsnarkT::proving_key &  aggregator_proving_key 
)

Generate a proof and returns an extended proof.


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