| Zeth - Zerocash on Ethereum
    0.8
    Reference implementation of the Zeth protocol by Clearmatics | 
 
 
 
Go to the documentation of this file.
    5 #ifndef __ZETH_MPC_GROTH16_PHASE2_HPP__ 
    6 #define __ZETH_MPC_GROTH16_PHASE2_HPP__ 
   33 template<
typename ppT> 
class srs_powersoftau;
 
   34 template<
typename ppT> 
class srs_mpc_layer_L1;
 
   54     libff::G1_vector<ppT> 
H_g1;
 
   57     libff::G1_vector<ppT> 
L_g1;
 
   63         libff::G1_vector<ppT> &&
H_g1,
 
   64         libff::G1_vector<ppT> &&
L_g1);
 
   68     void write(std::ostream &out) 
const;
 
   97         const libff::G1<ppT> &
s_g1,
 
  103     void write(std::ostream &out) 
const;
 
  122     void write(std::ostream &out) 
const;
 
  140     void write(std::ostream &out) 
const;
 
  146 template<mp_
size_t n, const libff::big
int<n> &modulus>
 
  148     const mpc_hash_t transcript_digest, libff::Fp_model<n, modulus> &out_fr);
 
  150 template<
typename ppT>
 
  156 template<
typename ppT>
 
  164 template<
typename ppT>
 
  167     const libff::G1<ppT> &last_delta,
 
  168     const libff::Fr<ppT> &secret);
 
  174 template<
typename ppT>
 
  176     const libff::G1<ppT> last_delta_g1,
 
  182 template<
typename ppT>
 
  185     const libff::Fr<ppT> &delta_j);
 
  195 template<
typename ppT>
 
  206 template<
typename ppT>
 
  214 template<
typename ppT>
 
  222 template<
typename ppT>
 
  225     const libff::Fr<ppT> &delta_j);
 
  230 template<
typename ppT>
 
  239 template<
typename ppT>
 
  258 template<
typename ppT, 
bool enable_contribution_check = true>
 
  261     const libff::G1<ppT> &initial_delta,
 
  263     std::istream &transcript_stream,
 
  264     libff::G1<ppT> &out_final_delta,
 
  266     bool &out_contribution_found);
 
  270 template<
typename ppT>
 
  273     const libff::G1<ppT> &initial_delta,
 
  274     std::istream &transcript_stream,
 
  275     libff::G1<ppT> &out_final_delta,
 
  282 template<
typename ppT>
 
  285     const libff::Fr<ppT> &delta,
 
  296     libff::multi_exp_base_form BaseForm = libff::multi_exp_base_form_normal>
 
  301     libsnark::r1cs_constraint_system<libff::Fr<ppT>> &&cs,
 
  302     const libsnark::qap_instance<libff::Fr<ppT>> &qap);
 
  308 #endif // __ZETH_MPC_GROTH16_PHASE2_HPP__ 
  
libff::G2< ppT > delta_g2
srs_mpc_phase2_accumulator< ppT > srs_mpc_phase2_begin(const mpc_hash_t cs_hash, const srs_mpc_layer_L1< ppT > &layer_L1, size_t num_inputs)
static srs_mpc_phase2_response< ppT > read(std::istream &in)
bool operator==(const srs_mpc_phase2_response< ppT > &other) const
void write(std::ostream &out) const
srs_mpc_phase2_publickey< ppT > srs_mpc_phase2_compute_public_key(const mpc_hash_t transcript_digest, const libff::G1< ppT > &last_delta, const libff::Fr< ppT > &secret)
void write_compressed(std::ostream &out) const
bool srs_mpc_phase2_verify_publickey(const libff::G1< ppT > last_delta_g1, const srs_mpc_phase2_publickey< ppT > &publickey)
srs_mpc_phase2_accumulator< ppT > accumulator
libsnark::r1cs_gg_ppzksnark_keypair< ppT > 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)
libff::G1_vector< ppT > H_g1
void write(std::ostream &out) const
bool 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)
libff::G1< ppT > s_delta_j_g1
libff::G1_vector< ppT > L_g1
bool is_well_formed() const
void srs_mpc_digest_to_fp(const mpc_hash_t transcript_digest, libff::Fp_model< n, modulus > &out_fr)
mpc_hash_t transcript_digest
libff::G1< ppT > delta_g1
bool is_well_formed() const
libff::G2< ppT > srs_mpc_digest_to_g2(const mpc_hash_t digest)
srs_mpc_phase2_accumulator< ppT > srs_mpc_phase2_update_accumulator(const srs_mpc_phase2_accumulator< ppT > &last_accum, const libff::Fr< ppT > &delta_j)
static srs_mpc_phase2_challenge< ppT > read(std::istream &in)
srs_mpc_phase2_accumulator(const mpc_hash_t cs_hash, const libff::G1< ppT > &delta_g1, const libff::G2< ppT > &delta_g2, libff::G1_vector< ppT > &&H_g1, libff::G1_vector< ppT > &&L_g1)
bool is_well_formed() const
static srs_mpc_phase2_accumulator< ppT > read(std::istream &in)
static srs_mpc_phase2_accumulator< ppT > read_compressed(std::istream &in)
bool operator==(const srs_mpc_phase2_publickey< ppT > &other) const
bool 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)
bool is_well_formed() const
bool operator==(const srs_mpc_phase2_accumulator< ppT > &other) const
size_t[MPC_HASH_ARRAY_LENGTH] mpc_hash_t
srs_mpc_phase2_response< ppT > srs_mpc_phase2_compute_response(const srs_mpc_phase2_challenge< ppT > &challenge, const libff::Fr< ppT > &delta_j)
bool srs_mpc_phase2_verify_response(const srs_mpc_phase2_challenge< ppT > &challenge, const srs_mpc_phase2_response< ppT > &response)
srs_mpc_phase2_publickey(const mpc_hash_t transcript_digest, const libff::G1< ppT > &new_delta_g1, const libff::G1< ppT > &s_g1, const libff::G1< ppT > &s_delta_j_g1, const libff::G2< ppT > &r_delta_j_g2)
static srs_mpc_phase2_publickey< ppT > read(std::istream &in)
void write(std::ostream &out) const
srs_mpc_phase2_accumulator< ppT > new_accumulator
mpc_hash_t transcript_digest
srs_mpc_phase2_challenge< ppT > srs_mpc_phase2_initial_challenge(srs_mpc_phase2_accumulator< ppT > &&initial_accumulator)
srs_mpc_phase2_challenge< ppT > srs_mpc_phase2_compute_challenge(srs_mpc_phase2_response< ppT > &&response)
srs_mpc_phase2_publickey< ppT > publickey
srs_mpc_phase2_challenge< ppT > srs_mpc_dummy_phase2(const srs_mpc_layer_L1< ppT > &layer1, const libff::Fr< ppT > &delta, size_t num_inputs)
libff::G1< ppT > new_delta_g1
srs_mpc_phase2_response(srs_mpc_phase2_accumulator< ppT > &&new_accumulator, srs_mpc_phase2_publickey< ppT > &&publickey)
srs_mpc_phase2_challenge(const mpc_hash_t transcript_digest, srs_mpc_phase2_accumulator< ppT > &&accumulator)
void write(std::ostream &out) const
bool srs_mpc_phase2_update_is_consistent(const srs_mpc_phase2_accumulator< ppT > &last, const srs_mpc_phase2_accumulator< ppT > &updated)
libff::G2< ppT > r_delta_j_g2
bool operator==(const srs_mpc_phase2_challenge< ppT > &other) const
void compute_digest(mpc_hash_t out_digest) const