| 
    Clearmatics Libsnark
    0.1
    
   C++ library for zkSNARK proofs 
   | 
 
 
 
 
Go to the documentation of this file.
   26 #ifndef SP_PCD_CIRCUITS_HPP_ 
   27 #define SP_PCD_CIRCUITS_HPP_ 
   62     std::vector<pb_variable_array<FieldT>>
 
   64     std::vector<multipacking_gadget<FieldT>>
 
   66     std::vector<pb_variable_array<FieldT>>
 
   70     std::shared_ptr<r1cs_ppzksnark_verification_key_variable<ppT>>
 
   96     std::vector<pb_variable_array<FieldT>>
 
  100     std::vector<r1cs_ppzksnark_proof_variable<ppT>> 
proof;
 
  102     std::vector<r1cs_ppzksnark_verifier_gadget<ppT>> 
verifiers;
 
  111             &translation_step_pcd_circuit_vk,
 
  113             &compliance_predicate_primary_input,
 
  115             &compliance_predicate_auxiliary_input,
 
  145     std::shared_ptr<multipacking_gadget<FieldT>>
 
  152     std::shared_ptr<r1cs_ppzksnark_proof_variable<ppT>> 
proof;
 
  157             &compliance_step_vk);
 
  179 template<
typename ppT>
 
  181     const libff::bit_vector &sp_translation_step_vk_bits,
 
  188 template<
typename ppT>
 
  190     const libff::bit_vector &sp_translation_step_vk_bits,
 
  198 #endif // SP_PCD_CIRCUITS_HPP_ 
  
std::vector< r1cs_ppzksnark_proof_variable< ppT > > proof
 
pb_variable< FieldT > verification_result
 
std::shared_ptr< gadget_from_r1cs< FieldT > > compliance_predicate_as_gadget
 
std::vector< pb_variable_array< FieldT > > verifier_input
 
sp_translation_step_pcd_circuit_maker(const r1cs_ppzksnark_verification_key< other_curve< ppT >> &compliance_step_vk)
 
std::shared_ptr< block_variable< FieldT > > block_for_outgoing_message
 
static size_t input_size_in_bits()
 
std::shared_ptr< r1cs_ppzksnark_verification_key_variable< ppT > > sp_translation_step_vk
 
std::shared_ptr< multipacking_gadget< FieldT > > unpack_outgoing_message
 
pb_variable_array< FieldT > outgoing_message_payload
 
std::vector< pb_variable_array< FieldT > > incoming_messages_bits
 
std::shared_ptr< r1cs_ppzksnark_proof_variable< ppT > > proof
 
std::shared_ptr< r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable< ppT > > hardcoded_sp_compliance_step_vk
 
static size_t input_size_in_elts()
 
pb_variable_array< FieldT > outgoing_message_vars
 
void generate_r1cs_constraints()
 
std::vector< r1cs_ppzksnark_verifier_gadget< ppT > > verifiers
 
pb_variable_array< FieldT > padded_translation_step_vk_and_outgoing_message_digest
 
r1cs_auxiliary_input< FieldT > get_auxiliary_input() const
 
pb_variable_array< FieldT > cp_witness
 
std::vector< pb_variable_array< FieldT > > padded_translation_step_vk_and_incoming_messages_digests
 
std::vector< pb_variable_array< FieldT > > sp_translation_step_vk_and_incoming_message_payload_digest_bits
 
static size_t input_size_in_elts()
 
pb_variable< FieldT > outgoing_message_type
 
static size_t field_capacity()
 
r1cs_primary_input< FieldT > get_primary_input() const
 
std::vector< pb_variable< FieldT > > incoming_message_types
 
pb_variable< FieldT > arity
 
sp_compliance_step_pcd_circuit_maker(const r1cs_pcd_compliance_predicate< FieldT > &compliance_predicate)
 
static size_t input_size_in_bits()
 
std::vector< pb_variable_array< FieldT > > incoming_message_payloads
 
static size_t field_logsize()
 
void generate_r1cs_constraints()
 
pb_variable_array< FieldT > unpacked_sp_translation_step_pcd_circuit_input
 
std::vector< multipacking_gadget< FieldT > > unpack_sp_translation_step_vk_and_incoming_message_payload_digests
 
static size_t field_logsize()
 
r1cs_constraint_system< FieldT > get_circuit() const
 
pb_variable_array< FieldT > sp_translation_step_vk_bits
 
static size_t input_capacity_in_bits()
 
r1cs_primary_input< libff::Fr< ppT > > get_sp_compliance_step_pcd_circuit_input(const libff::bit_vector &sp_translation_step_vk_bits, const r1cs_pcd_compliance_predicate_primary_input< libff::Fr< ppT >> &primary_input)
 
std::shared_ptr< r1cs_ppzksnark_online_verifier_gadget< ppT > > online_verifier
 
void generate_r1cs_witness(const r1cs_ppzksnark_verification_key< other_curve< ppT >> &translation_step_pcd_circuit_vk, 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 >>> &incoming_proofs)
 
pb_variable_array< FieldT > sp_translation_step_pcd_circuit_input
 
std::vector< FieldT > r1cs_auxiliary_input
 
pb_variable_array< FieldT > local_data
 
pb_variable< FieldT > zero
 
std::shared_ptr< multipacking_gadget< FieldT > > unpack_sp_translation_step_pcd_circuit_input
 
r1cs_auxiliary_input< FieldT > get_auxiliary_input() const
 
r1cs_pcd_compliance_predicate< FieldT > compliance_predicate
 
std::vector< multipacking_gadget< FieldT > > unpack_incoming_messages
 
std::shared_ptr< CRH_with_field_out_gadget< FieldT > > hash_outgoing_message
 
r1cs_primary_input< libff::Fr< ppT > > get_sp_translation_step_pcd_circuit_input(const libff::bit_vector &sp_translation_step_vk_bits, const r1cs_pcd_compliance_predicate_primary_input< libff::Fr< other_curve< ppT >>> &primary_input)
 
typename pairing_selector< ppT >::other_curve_type other_curve
 
std::vector< CRH_with_field_out_gadget< FieldT > > hash_incoming_messages
 
std::vector< block_variable< FieldT > > blocks_for_incoming_messages
 
std::vector< pb_variable_array< FieldT > > sp_translation_step_vk_and_incoming_message_payload_digests
 
r1cs_constraint_system< FieldT > get_circuit() const
 
static size_t input_capacity_in_bits()
 
pb_variable_array< FieldT > outgoing_message_bits
 
pb_variable_array< FieldT > verifier_input
 
r1cs_primary_input< FieldT > get_primary_input() const
 
static size_t field_capacity()
 
pb_variable_array< FieldT > sp_compliance_step_pcd_circuit_input
 
void generate_r1cs_witness(const r1cs_primary_input< libff::Fr< ppT >> translation_step_input, const r1cs_ppzksnark_proof< other_curve< ppT >> &compliance_step_proof)
 
std::vector< pb_variable_array< FieldT > > incoming_message_vars
 
std::vector< FieldT > r1cs_primary_input