Zeth - Zerocash on Ethereum  0.8
Reference implementation of the Zeth protocol by Clearmatics
Classes | Namespaces | Functions
phase2.hpp File Reference
#include "libzeth/mpc/groth16/mpc_hash.hpp"
#include "libzeth/snarks/groth16/groth16_snark.hpp"
#include "libzeth/mpc/groth16/phase2.tcc"
Include dependency graph for phase2.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  libzeth::srs_powersoftau< ppT >
 
class  libzeth::srs_mpc_layer_L1< ppT >
 
class  libzeth::srs_mpc_phase2_accumulator< ppT >
 
class  libzeth::srs_mpc_phase2_publickey< ppT >
 
class  libzeth::srs_mpc_phase2_challenge< ppT >
 
class  libzeth::srs_mpc_phase2_response< ppT >
 

Namespaces

 libzeth
 

Functions

template<mp_size_t n, const libff::bigint< n > & modulus>
void libzeth::srs_mpc_digest_to_fp (const mpc_hash_t transcript_digest, libff::Fp_model< n, modulus > &out_fr)
 
template<typename ppT >
libff::G2< ppT > libzeth::srs_mpc_digest_to_g2 (const mpc_hash_t digest)
 
template<typename ppT >
srs_mpc_phase2_accumulator< ppT > libzeth::srs_mpc_phase2_begin (const mpc_hash_t cs_hash, const srs_mpc_layer_L1< ppT > &layer_L1, size_t num_inputs)
 
template<typename ppT >
srs_mpc_phase2_publickey< ppT > libzeth::srs_mpc_phase2_compute_public_key (const mpc_hash_t transcript_digest, const libff::G1< ppT > &last_delta, const libff::Fr< ppT > &secret)
 
template<typename ppT >
bool libzeth::srs_mpc_phase2_verify_publickey (const libff::G1< ppT > last_delta_g1, const srs_mpc_phase2_publickey< ppT > &publickey)
 
template<typename ppT >
srs_mpc_phase2_accumulator< ppT > libzeth::srs_mpc_phase2_update_accumulator (const srs_mpc_phase2_accumulator< ppT > &last_accum, const libff::Fr< ppT > &delta_j)
 
template<typename ppT >
bool libzeth::srs_mpc_phase2_update_is_consistent (const srs_mpc_phase2_accumulator< ppT > &last, const srs_mpc_phase2_accumulator< ppT > &updated)
 
template<typename ppT >
bool libzeth::srs_mpc_phase2_verify_update (const srs_mpc_phase2_accumulator< ppT > &last, const srs_mpc_phase2_accumulator< ppT > &updated, const srs_mpc_phase2_publickey< ppT > &publickey)
 
template<typename ppT >
srs_mpc_phase2_challenge< ppT > libzeth::srs_mpc_phase2_initial_challenge (srs_mpc_phase2_accumulator< ppT > &&initial_accumulator)
 
template<typename ppT >
srs_mpc_phase2_response< ppT > libzeth::srs_mpc_phase2_compute_response (const srs_mpc_phase2_challenge< ppT > &challenge, const libff::Fr< ppT > &delta_j)
 
template<typename ppT >
bool libzeth::srs_mpc_phase2_verify_response (const srs_mpc_phase2_challenge< ppT > &challenge, const srs_mpc_phase2_response< ppT > &response)
 
template<typename ppT >
srs_mpc_phase2_challenge< ppT > libzeth::srs_mpc_phase2_compute_challenge (srs_mpc_phase2_response< ppT > &&response)
 
template<typename ppT , bool enable_contribution_check = true>
bool libzeth::srs_mpc_phase2_verify_transcript (const mpc_hash_t initial_transcript_digest, const libff::G1< ppT > &initial_delta, const mpc_hash_t check_for_contribution, std::istream &transcript_stream, libff::G1< ppT > &out_final_delta, mpc_hash_t out_final_transcript_digest, bool &out_contribution_found)
 
template<typename ppT >
bool libzeth::srs_mpc_phase2_verify_transcript (const mpc_hash_t initial_transcript_digest, const libff::G1< ppT > &initial_delta, std::istream &transcript_stream, libff::G1< ppT > &out_final_delta, mpc_hash_t out_final_transcript_digest)
 
template<typename ppT >
srs_mpc_phase2_challenge< ppT > libzeth::srs_mpc_dummy_phase2 (const srs_mpc_layer_L1< ppT > &layer1, const libff::Fr< ppT > &delta, size_t num_inputs)
 
template<typename ppT , libff::multi_exp_base_form BaseForm = libff::multi_exp_base_form_normal>
libsnark::r1cs_gg_ppzksnark_keypair< ppT > libzeth::mpc_create_key_pair (srs_powersoftau< ppT > &&pot, srs_mpc_layer_L1< ppT > &&layer1, srs_mpc_phase2_accumulator< ppT > &&layer2, libsnark::r1cs_constraint_system< libff::Fr< ppT >> &&cs, const libsnark::qap_instance< libff::Fr< ppT >> &qap)