| 
    Clearmatics Libsnark
    0.1
    
   C++ library for zkSNARK proofs 
   | 
 
 
 
 
Go to the documentation of this file.
   25 #ifndef MP_PCD_CIRCUITS_HPP_ 
   26 #define MP_PCD_CIRCUITS_HPP_ 
   61     std::vector<pb_variable_array<FieldT>>
 
   63     std::vector<multipacking_gadget<FieldT>>
 
   65     std::vector<pb_variable_array<FieldT>>
 
   69     std::vector<r1cs_ppzksnark_verification_key_variable<ppT>>
 
   95     std::vector<pb_variable_array<FieldT>>
 
  104     std::vector<set_commitment_gadget<FieldT, CRH_with_bit_out_gadget<FieldT>>>
 
  111     std::vector<r1cs_ppzksnark_proof_variable<ppT>> 
proof;
 
  113     std::vector<r1cs_ppzksnark_verifier_gadget<ppT>> 
verifier;
 
  117         const size_t max_number_of_predicates);
 
  124             &mp_translation_step_pcd_circuit_vks,
 
  125         const std::vector<set_membership_proof> &vk_membership_proofs,
 
  127             &compliance_predicate_primary_input,
 
  129             &compliance_predicate_auxiliary_input,
 
  131             &translation_step_proofs);
 
  159     std::shared_ptr<multipacking_gadget<FieldT>>
 
  166     std::shared_ptr<r1cs_ppzksnark_proof_variable<ppT>> 
proof;
 
  171             &compliance_step_vk);
 
  193 template<
typename ppT>
 
  202 template<
typename ppT>
 
  212 #endif // MP_PCD_CIRCUITS_HPP_ 
  
std::shared_ptr< block_variable< FieldT > > block_for_outgoing_message
 
r1cs_primary_input< libff::Fr< ppT > > get_mp_compliance_step_pcd_circuit_input(const set_commitment &commitment_to_translation_step_r1cs_vks, const r1cs_pcd_compliance_predicate_primary_input< libff::Fr< ppT >> &primary_input)
 
std::vector< r1cs_ppzksnark_proof_variable< ppT > > proof
 
std::shared_ptr< gadget_from_r1cs< FieldT > > compliance_predicate_as_gadget
 
static size_t input_size_in_elts()
 
static size_t input_capacity_in_bits()
 
pb_variable_array< FieldT > outgoing_message_vars
 
std::vector< block_variable< FieldT > > block_for_incoming_messages
 
std::shared_ptr< multipacking_gadget< FieldT > > unpack_outgoing_message
 
void generate_r1cs_witness(const set_commitment &commitment_to_translation_step_r1cs_vks, const std::vector< r1cs_ppzksnark_verification_key< other_curve< ppT >>> &mp_translation_step_pcd_circuit_vks, const std::vector< set_membership_proof > &vk_membership_proofs, const r1cs_pcd_compliance_predicate_primary_input< FieldT > &compliance_predicate_primary_input, const r1cs_pcd_compliance_predicate_auxiliary_input< FieldT > &compliance_predicate_auxiliary_input, const std::vector< r1cs_ppzksnark_proof< other_curve< ppT >>> &translation_step_proofs)
 
static size_t field_logsize()
 
std::shared_ptr< r1cs_ppzksnark_online_verifier_gadget< ppT > > online_verifier
 
libff::bit_vector set_commitment
 
static size_t input_capacity_in_bits()
 
void generate_r1cs_constraints()
 
std::vector< pb_variable_array< FieldT > > incoming_message_vars
 
std::vector< pb_variable_array< FieldT > > commitment_and_incoming_message_digests
 
pb_variable_array< FieldT > outgoing_message_bits
 
std::vector< pb_variable_array< FieldT > > padded_commitment_and_incoming_messages_digest
 
pb_variable_array< FieldT > common_type_check_aux
 
r1cs_primary_input< libff::Fr< ppT > > get_mp_translation_step_pcd_circuit_input(const set_commitment &commitment_to_translation_step_r1cs_vks, const r1cs_pcd_compliance_predicate_primary_input< libff::Fr< other_curve< ppT >>> &primary_input)
 
void generate_r1cs_constraints()
 
std::vector< pb_variable_array< FieldT > > incoming_message_payloads
 
std::vector< set_commitment_gadget< FieldT, CRH_with_bit_out_gadget< FieldT > > > membership_checkers
 
pb_variable_array< FieldT > mp_translation_step_pcd_circuit_input
 
r1cs_constraint_system< FieldT > get_circuit() const
 
pb_variable_array< FieldT > padded_translation_step_vk_and_outgoing_message_digest
 
std::vector< pb_variable_array< FieldT > > verifier_input
 
std::vector< pb_variable_array< FieldT > > translation_step_vks_bits
 
std::vector< multipacking_gadget< FieldT > > unpack_commitment_and_incoming_message_digests
 
pb_variable_array< FieldT > membership_check_results
 
r1cs_primary_input< FieldT > get_primary_input() const
 
r1cs_primary_input< FieldT > get_primary_input() const
 
std::vector< multipacking_gadget< FieldT > > unpack_incoming_messages
 
pb_variable_array< FieldT > outgoing_message_payload
 
static size_t field_logsize()
 
mp_compliance_step_pcd_circuit_maker(const r1cs_pcd_compliance_predicate< FieldT > &compliance_predicate, const size_t max_number_of_predicates)
 
pb_variable< FieldT > outgoing_message_type
 
r1cs_auxiliary_input< FieldT > get_auxiliary_input() const
 
std::shared_ptr< CRH_with_field_out_gadget< FieldT > > hash_outgoing_message
 
r1cs_pcd_compliance_predicate< FieldT > compliance_predicate
 
pb_variable< FieldT > arity
 
static size_t input_size_in_bits()
 
pb_variable_array< FieldT > mp_compliance_step_pcd_circuit_input
 
std::vector< FieldT > r1cs_auxiliary_input
 
std::vector< pb_variable_array< FieldT > > incoming_messages_bits
 
r1cs_auxiliary_input< FieldT > get_auxiliary_input() const
 
std::vector< r1cs_ppzksnark_verification_key_variable< ppT > > translation_step_vks
 
static size_t field_capacity()
 
pb_variable< FieldT > zero
 
r1cs_constraint_system< FieldT > get_circuit() const
 
std::vector< CRH_with_field_out_gadget< FieldT > > hash_incoming_messages
 
void generate_r1cs_witness(const r1cs_primary_input< libff::Fr< ppT >> translation_step_input, const r1cs_ppzksnark_proof< other_curve< ppT >> &prev_proof)
 
pb_variable< FieldT > common_type
 
static size_t input_size_in_bits()
 
std::vector< set_membership_proof_variable< FieldT, CRH_with_bit_out_gadget< FieldT > > > membership_proofs
 
static size_t field_capacity()
 
typename pairing_selector< ppT >::other_curve_type other_curve
 
pb_variable_array< FieldT > verification_results
 
std::shared_ptr< multipacking_gadget< FieldT > > unpack_mp_translation_step_pcd_circuit_input
 
std::vector< pb_variable_array< FieldT > > commitment_and_incoming_messages_digest_bits
 
mp_translation_step_pcd_circuit_maker(const r1cs_ppzksnark_verification_key< other_curve< ppT >> &compliance_step_vk)
 
static size_t input_size_in_elts()
 
std::shared_ptr< set_commitment_variable< FieldT, CRH_with_bit_out_gadget< FieldT > > > commitment
 
std::shared_ptr< r1cs_ppzksnark_proof_variable< ppT > > proof
 
pb_variable_array< FieldT > unpacked_mp_translation_step_pcd_circuit_input
 
pb_variable_array< FieldT > verifier_input
 
std::vector< r1cs_ppzksnark_verifier_gadget< ppT > > verifier
 
std::vector< pb_variable< FieldT > > incoming_message_types
 
pb_variable_array< FieldT > local_data
 
std::shared_ptr< r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable< ppT > > hardcoded_compliance_step_vk
 
std::vector< FieldT > r1cs_primary_input
 
pb_variable_array< FieldT > cp_witness