Clearmatics Libsnark
0.1
C++ library for zkSNARK proofs
|
Go to the documentation of this file.
38 #ifndef R1CS_MP_PPZKPCD_HPP_
39 #define R1CS_MP_PPZKPCD_HPP_
55 template<
typename PCD_ppT>
59 template<
typename PCD_ppT>
69 typedef typename PCD_ppT::curve_A_pp
A_pp;
70 typedef typename PCD_ppT::curve_B_pp
B_pp;
72 std::vector<r1cs_mp_ppzkpcd_compliance_predicate<PCD_ppT>>
79 std::vector<r1cs_ppzksnark_verification_key<B_pp>>
96 &compliance_step_r1cs_pk,
98 &translation_step_r1cs_pk,
100 &compliance_step_r1cs_vk,
102 &translation_step_r1cs_vk,
104 const std::vector<set_membership_proof>
128 friend std::ostream &operator<<<PCD_ppT>(
130 friend std::istream &
operator>>
138 template<
typename PCD_ppT>
142 template<
typename PCD_ppT>
152 typedef typename PCD_ppT::curve_A_pp
A_pp;
153 typedef typename PCD_ppT::curve_B_pp
B_pp;
156 std::vector<r1cs_ppzksnark_verification_key<B_pp>>
185 friend std::ostream &operator<<<PCD_ppT>(
187 friend std::istream &
operator>><PCD_ppT>(
196 template<
typename PCD_ppT>
201 template<
typename PCD_ppT>
215 typedef typename PCD_ppT::curve_A_pp
A_pp;
216 typedef typename PCD_ppT::curve_B_pp
B_pp;
218 std::vector<r1cs_ppzksnark_processed_verification_key<A_pp>>
220 std::vector<r1cs_ppzksnark_processed_verification_key<B_pp>>
249 friend std::ostream &operator<<<PCD_ppT>(
252 friend std::istream &
operator>><PCD_ppT>(
274 :
pk(std::move(
pk)),
vk(std::move(
vk)){};
281 template<
typename ppT>
285 template<
typename ppT>
309 friend std::ostream &operator<<<PCD_ppT>(
311 friend std::istream &
operator>>
323 template<
typename PCD_ppT>
325 const std::vector<r1cs_mp_ppzkpcd_compliance_predicate<PCD_ppT>>
326 &compliance_predicates);
336 template<
typename PCD_ppT>
338 const r1cs_mp_ppzkpcd_proving_key<PCD_ppT> &pk,
339 const size_t compliance_predicate_name,
340 const r1cs_mp_ppzkpcd_primary_input<PCD_ppT> &primary_input,
341 const r1cs_mp_ppzkpcd_auxiliary_input<PCD_ppT> &auxiliary_input,
342 const std::vector<r1cs_mp_ppzkpcd_proof<PCD_ppT>> &incoming_proofs);
357 template<
typename PCD_ppT>
359 const r1cs_mp_ppzkpcd_verification_key<PCD_ppT> &vk,
360 const r1cs_mp_ppzkpcd_primary_input<PCD_ppT> &primary_input,
361 const r1cs_mp_ppzkpcd_proof<PCD_ppT> &proof);
366 template<
typename PCD_ppT>
368 const r1cs_mp_ppzkpcd_verification_key<PCD_ppT> &vk);
374 template<
typename PCD_ppT>
376 const r1cs_mp_ppzkpcd_processed_verification_key<PCD_ppT> &pvk,
377 const r1cs_mp_ppzkpcd_primary_input<PCD_ppT> &primary_input,
378 const r1cs_mp_ppzkpcd_proof<PCD_ppT> &proof);
384 #endif // R1CS_MP_PPZKPCD_HPP_
size_t size_in_bits() const
std::vector< r1cs_ppzksnark_proving_key< B_pp > > translation_step_r1cs_pks
std::vector< set_membership_proof > compliance_step_r1cs_vk_membership_proofs
std::vector< r1cs_ppzksnark_verification_key< B_pp > > translation_step_r1cs_vks
r1cs_mp_ppzkpcd_keypair(r1cs_mp_ppzkpcd_proving_key< PCD_ppT > &&pk, r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &&vk)
std::map< size_t, size_t > compliance_predicate_name_to_idx
r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > r1cs_mp_ppzkpcd_process_vk(const r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &vk)
bool operator==(const r1cs_mp_ppzkpcd_proving_key< PCD_ppT > &other) const
std::ostream & operator<<(std::ostream &out, const accumulation_vector< T > &v)
std::vector< r1cs_ppzksnark_processed_verification_key< A_pp > > compliance_step_r1cs_pvks
r1cs_mp_ppzkpcd_proof< PCD_ppT > r1cs_mp_ppzkpcd_prover(const r1cs_mp_ppzkpcd_proving_key< PCD_ppT > &pk, const size_t compliance_predicate_name, const r1cs_mp_ppzkpcd_primary_input< PCD_ppT > &primary_input, const r1cs_mp_ppzkpcd_auxiliary_input< PCD_ppT > &auxiliary_input, const std::vector< r1cs_mp_ppzkpcd_proof< PCD_ppT >> &incoming_proofs)
libff::bit_vector set_commitment
r1cs_mp_ppzkpcd_processed_verification_key()=default
std::vector< r1cs_ppzksnark_processed_verification_key< B_pp > > translation_step_r1cs_pvks
std::vector< r1cs_ppzksnark_verification_key< A_pp > > compliance_step_r1cs_vks
r1cs_mp_ppzkpcd_proof()=default
r1cs_mp_ppzkpcd_proving_key< PCD_ppT > & operator=(const r1cs_mp_ppzkpcd_proving_key< PCD_ppT > &other)=default
r1cs_mp_ppzkpcd_verification_key()=default
bool r1cs_mp_ppzkpcd_online_verifier(const r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > &pvk, const r1cs_mp_ppzkpcd_primary_input< PCD_ppT > &primary_input, const r1cs_mp_ppzkpcd_proof< PCD_ppT > &proof)
r1cs_mp_ppzkpcd_proof(const size_t compliance_predicate_idx, const r1cs_ppzksnark_proof< typename PCD_ppT::curve_B_pp > &r1cs_proof)
r1cs_mp_ppzkpcd_verification_key< PCD_ppT > vk
r1cs_mp_ppzkpcd_proving_key()
set_commitment commitment_to_translation_step_r1cs_vks
r1cs_mp_ppzkpcd_verification_key(const std::vector< r1cs_ppzksnark_verification_key< A_pp >> &compliance_step_r1cs_vks, const std::vector< r1cs_ppzksnark_verification_key< B_pp >> &translation_step_r1cs_vks, const set_commitment &commitment_to_translation_step_r1cs_vks)
size_t size_in_bits() const
bool operator==(const r1cs_mp_ppzkpcd_proof< PCD_ppT > &other) const
r1cs_mp_ppzkpcd_keypair()=default
std::vector< r1cs_ppzksnark_proving_key< A_pp > > compliance_step_r1cs_pks
r1cs_mp_ppzkpcd_processed_verification_key(std::vector< r1cs_ppzksnark_processed_verification_key< A_pp >> &&compliance_step_r1cs_pvks, std::vector< r1cs_ppzksnark_processed_verification_key< B_pp >> &&translation_step_r1cs_pvks, const set_commitment &commitment_to_translation_step_r1cs_vks)
bool r1cs_mp_ppzkpcd_verifier(const r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &vk, const r1cs_mp_ppzkpcd_primary_input< PCD_ppT > &primary_input, const r1cs_mp_ppzkpcd_proof< PCD_ppT > &proof)
r1cs_mp_ppzkpcd_keypair< PCD_ppT > r1cs_mp_ppzkpcd_generator(const std::vector< r1cs_mp_ppzkpcd_compliance_predicate< PCD_ppT >> &compliance_predicates)
std::vector< r1cs_mp_ppzkpcd_compliance_predicate< PCD_ppT > > compliance_predicates
size_t size_in_bits() const
std::istream & operator>>(std::istream &in, accumulation_vector< T > &v)
size_t size_in_bits() const
r1cs_mp_ppzkpcd_proving_key(const std::vector< r1cs_mp_ppzkpcd_compliance_predicate< PCD_ppT >> &compliance_predicates, const std::vector< r1cs_ppzksnark_proving_key< A_pp >> &compliance_step_r1cs_pk, const std::vector< r1cs_ppzksnark_proving_key< B_pp >> &translation_step_r1cs_pk, const std::vector< r1cs_ppzksnark_verification_key< A_pp >> &compliance_step_r1cs_vk, const std::vector< r1cs_ppzksnark_verification_key< B_pp >> &translation_step_r1cs_vk, const set_commitment &commitment_to_translation_step_r1cs_vks, const std::vector< set_membership_proof > &compliance_step_r1cs_vk_membership_proofs, const std::map< size_t, size_t > &compliance_predicate_name_to_idx)
r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > & operator=(const r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > &other)=default
std::vector< r1cs_ppzksnark_verification_key< A_pp > > compliance_step_r1cs_vks
set_commitment commitment_to_translation_step_r1cs_vks
std::vector< r1cs_ppzksnark_verification_key< B_pp > > translation_step_r1cs_vks
r1cs_ppzksnark_proof< typename PCD_ppT::curve_B_pp > r1cs_proof
bool operator==(const r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &other) const
size_t compliance_predicate_idx
bool is_well_formed() const
bool operator==(const r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > &other) const
set_commitment commitment_to_translation_step_r1cs_vks
r1cs_mp_ppzkpcd_proving_key< PCD_ppT > pk
r1cs_mp_ppzkpcd_verification_key< PCD_ppT > & operator=(const r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &other)=default