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