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