r1cs_mp_ppzkpcd.hpp
Go to the documentation of this file.
146 r1cs_mp_ppzkpcd_verification_key(const r1cs_mp_ppzkpcd_verification_key<PCD_ppT> &other) = default;
312 bool r1cs_mp_ppzkpcd_online_verifier(const r1cs_mp_ppzkpcd_processed_verification_key<PCD_ppT> &pvk,
411 bool r1cs_mp_ppzkpcd_proof<PCD_ppT>::operator==(const r1cs_mp_ppzkpcd_proof<PCD_ppT> &other) const {
599 mp_compliance_step_pcd_circuit.generate_r1cs_witness(pk.commitment_to_translation_step_r1cs_vks,
617 get_mp_compliance_step_pcd_circuit_input<curve_A_pp>(pk.commitment_to_translation_step_r1cs_vks,
658 bool r1cs_mp_ppzkpcd_online_verifier(const r1cs_mp_ppzkpcd_processed_verification_key<PCD_ppT> &pvk,
Definition: mp_pcd_circuits.hpp:65
snark::r1cs_auxiliary_input< FieldType > get_auxiliary_input() const
Definition: mp_pcd_circuits.hpp:524
void generate_r1cs_constraints()
Definition: mp_pcd_circuits.hpp:428
snark::r1cs_primary_input< FieldType > get_primary_input() const
Definition: mp_pcd_circuits.hpp:518
void generate_r1cs_witness(const set_commitment &commitment_to_translation_step_r1cs_vks, const std::vector< r1cs_ppzksnark_verification_key< other_curve< CurveType >>> &mp_translation_step_pcd_circuit_vks, const std::vector< set_membership_proof > &vk_membership_proofs, const r1cs_pcd_compliance_predicate_primary_input< FieldType > &compliance_predicate_primary_input, const r1cs_pcd_compliance_predicate_auxiliary_input< FieldType > &compliance_predicate_auxiliary_input, const std::vector< r1cs_ppzksnark_proof< other_curve< CurveType >>> &translation_step_proofs)
Definition: mp_pcd_circuits.hpp:529
snark::r1cs_constraint_system< FieldType > get_circuit() const
Definition: mp_pcd_circuits.hpp:512
Definition: mp_pcd_circuits.hpp:168
static std::size_t input_size_in_elts()
Definition: mp_pcd_circuits.hpp:718
snark::r1cs_auxiliary_input< FieldType > get_auxiliary_input() const
Definition: mp_pcd_circuits.hpp:703
void generate_r1cs_witness(const snark::r1cs_primary_input< typename CurveType::scalar_field_type > translation_step_input, const r1cs_ppzksnark_proof< other_curve< CurveType >> &prev_proof)
Definition: mp_pcd_circuits.hpp:683
void generate_r1cs_constraints()
Definition: mp_pcd_circuits.hpp:668
snark::r1cs_constraint_system< FieldType > get_circuit() const
Definition: mp_pcd_circuits.hpp:678
Definition: snark/proof.hpp:37
Definition: r1cs_mp_ppzkpcd.hpp:218
r1cs_mp_ppzkpcd_keypair(r1cs_mp_ppzkpcd_keypair< PCD_ppT > &&other)=default
r1cs_mp_ppzkpcd_keypair()=default
r1cs_mp_ppzkpcd_proving_key< PCD_ppT > pk
Definition: r1cs_mp_ppzkpcd.hpp:220
r1cs_mp_ppzkpcd_keypair(r1cs_mp_ppzkpcd_proving_key< PCD_ppT > &&pk, r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &&vk)
Definition: r1cs_mp_ppzkpcd.hpp:225
r1cs_mp_ppzkpcd_verification_key< PCD_ppT > vk
Definition: r1cs_mp_ppzkpcd.hpp:221
Definition: r1cs_mp_ppzkpcd.hpp:177
PCD_ppT::curve_A_pp A_pp
Definition: r1cs_mp_ppzkpcd.hpp:179
bool operator==(const r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > &other) const
Definition: r1cs_mp_ppzkpcd.hpp:402
r1cs_mp_ppzkpcd_processed_verification_key(const r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > &other)=default
std::size_t size_in_bits() const
Definition: r1cs_mp_ppzkpcd.hpp:387
r1cs_mp_ppzkpcd_processed_verification_key()=default
r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > & operator=(const r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > &other)=default
std::vector< typename r1cs_ppzksnark< A_pp >::processed_verification_key_type > compliance_step_r1cs_pvks
Definition: r1cs_mp_ppzkpcd.hpp:183
set_commitment commitment_to_translation_step_r1cs_vks
Definition: r1cs_mp_ppzkpcd.hpp:186
PCD_ppT::curve_B_pp B_pp
Definition: r1cs_mp_ppzkpcd.hpp:180
r1cs_mp_ppzkpcd_processed_verification_key(r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > &&other)=default
std::vector< typename r1cs_ppzksnark< B_pp >::processed_verification_key_type > translation_step_r1cs_pvks
Definition: r1cs_mp_ppzkpcd.hpp:185
r1cs_mp_ppzkpcd_processed_verification_key(std::vector< typename r1cs_ppzksnark< A_pp >::processed_verification_key_type > &&compliance_step_r1cs_pvks, std::vector< typename r1cs_ppzksnark< B_pp >::processed_verification_key_type > &&translation_step_r1cs_pvks, const set_commitment &commitment_to_translation_step_r1cs_vks)
Definition: r1cs_mp_ppzkpcd.hpp:193
Definition: r1cs_mp_ppzkpcd.hpp:237
r1cs_ppzksnark< typename PCD_ppT::curve_B_pp >::proof_type r1cs_proof
Definition: r1cs_mp_ppzkpcd.hpp:240
std::size_t compliance_predicate_idx
Definition: r1cs_mp_ppzkpcd.hpp:239
std::size_t size_in_bits() const
r1cs_mp_ppzkpcd_proof()=default
bool operator==(const r1cs_mp_ppzkpcd_proof< PCD_ppT > &other) const
Definition: r1cs_mp_ppzkpcd.hpp:411
r1cs_mp_ppzkpcd_proof(const std::size_t compliance_predicate_idx, const typename r1cs_ppzksnark< typename PCD_ppT::curve_B_pp >::proof_type &r1cs_proof)
Definition: r1cs_mp_ppzkpcd.hpp:243
Definition: r1cs_mp_ppzkpcd.hpp:78
bool is_well_formed() const
Definition: r1cs_mp_ppzkpcd.hpp:334
std::size_t size_in_bits() const
Definition: r1cs_mp_ppzkpcd.hpp:317
std::vector< typename r1cs_ppzksnark< B_pp >::verification_key_type > translation_step_r1cs_vks
Definition: r1cs_mp_ppzkpcd.hpp:89
r1cs_mp_ppzkpcd_proving_key()
Definition: r1cs_mp_ppzkpcd.hpp:96
std::map< std::size_t, std::size_t > compliance_predicate_name_to_idx
Definition: r1cs_mp_ppzkpcd.hpp:94
r1cs_mp_ppzkpcd_proving_key(r1cs_mp_ppzkpcd_proving_key< PCD_ppT > &&other)=default
bool operator==(const r1cs_mp_ppzkpcd_proving_key< PCD_ppT > &other) const
Definition: r1cs_mp_ppzkpcd.hpp:348
PCD_ppT::curve_B_pp B_pp
Definition: r1cs_mp_ppzkpcd.hpp:81
r1cs_mp_ppzkpcd_proving_key(const std::vector< r1cs_mp_ppzkpcd_compliance_predicate< PCD_ppT >> &compliance_predicates, const std::vector< typename r1cs_ppzksnark< A_pp >::proving_key_type > &compliance_step_r1cs_pk, const std::vector< typename r1cs_ppzksnark< B_pp >::proving_key_type > &translation_step_r1cs_pk, const std::vector< typename r1cs_ppzksnark< A_pp >::verification_key_type > &compliance_step_r1cs_vk, const std::vector< typename r1cs_ppzksnark< B_pp >::verification_key_type > &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< std::size_t, std::size_t > &compliance_predicate_name_to_idx)
Definition: r1cs_mp_ppzkpcd.hpp:99
std::vector< set_membership_proof > compliance_step_r1cs_vk_membership_proofs
Definition: r1cs_mp_ppzkpcd.hpp:92
std::vector< r1cs_mp_ppzkpcd_compliance_predicate< PCD_ppT > > compliance_predicates
Definition: r1cs_mp_ppzkpcd.hpp:83
std::vector< typename r1cs_ppzksnark< B_pp >::proving_key_type > translation_step_r1cs_pks
Definition: r1cs_mp_ppzkpcd.hpp:86
r1cs_mp_ppzkpcd_proving_key(const r1cs_mp_ppzkpcd_proving_key< PCD_ppT > &other)=default
std::vector< typename r1cs_ppzksnark< A_pp >::verification_key_type > compliance_step_r1cs_vks
Definition: r1cs_mp_ppzkpcd.hpp:88
PCD_ppT::curve_A_pp A_pp
Definition: r1cs_mp_ppzkpcd.hpp:80
std::vector< typename r1cs_ppzksnark< A_pp >::proving_key_type > compliance_step_r1cs_pks
Definition: r1cs_mp_ppzkpcd.hpp:85
set_commitment commitment_to_translation_step_r1cs_vks
Definition: r1cs_mp_ppzkpcd.hpp:91
r1cs_mp_ppzkpcd_proving_key< PCD_ppT > & operator=(const r1cs_mp_ppzkpcd_proving_key< PCD_ppT > &other)=default
Definition: r1cs_mp_ppzkpcd.hpp:136
PCD_ppT::curve_B_pp B_pp
Definition: r1cs_mp_ppzkpcd.hpp:139
std::vector< typename r1cs_ppzksnark< B_pp >::verification_key_type > translation_step_r1cs_vks
Definition: r1cs_mp_ppzkpcd.hpp:142
r1cs_mp_ppzkpcd_verification_key(const r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &other)=default
r1cs_mp_ppzkpcd_verification_key()=default
PCD_ppT::curve_A_pp A_pp
Definition: r1cs_mp_ppzkpcd.hpp:138
set_commitment commitment_to_translation_step_r1cs_vks
Definition: r1cs_mp_ppzkpcd.hpp:143
std::size_t size_in_bits() const
Definition: r1cs_mp_ppzkpcd.hpp:363
std::vector< typename r1cs_ppzksnark< A_pp >::verification_key_type > compliance_step_r1cs_vks
Definition: r1cs_mp_ppzkpcd.hpp:141
bool operator==(const r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &other) const
Definition: r1cs_mp_ppzkpcd.hpp:378
r1cs_mp_ppzkpcd_verification_key(const std::vector< typename r1cs_ppzksnark< A_pp >::verification_key_type > &compliance_step_r1cs_vks, const std::vector< typename r1cs_ppzksnark< B_pp >::verification_key_type > &translation_step_r1cs_vks, const set_commitment &commitment_to_translation_step_r1cs_vks)
Definition: r1cs_mp_ppzkpcd.hpp:148
r1cs_mp_ppzkpcd_verification_key(r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &&other)=default
r1cs_mp_ppzkpcd_verification_key< PCD_ppT > & operator=(const r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &other)=default
Definition: r1cs_pcd_params.hpp:54
std::vector< std::shared_ptr< r1cs_pcd_message< FieldType > > > incoming_messages
Definition: r1cs_pcd_params.hpp:56
Definition: r1cs_pcd_params.hpp:40
std::shared_ptr< r1cs_pcd_message< FieldType > > outgoing_message
Definition: r1cs_pcd_params.hpp:42
Definition: compliance_predicate.hpp:123
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_ppzksnark/verification_key.hpp:102
Definition: snark/systems/ppzksnark/r1cs_ppzksnark/proof.hpp:43
policy_type::keypair_type keypair_type
Definition: r1cs_ppzksnark.hpp:86
Definition: blueprint/include/nil/crypto3/zk/components/schemes/snark/set_commitment.hpp:57
void add(const std::vector< bool > &value)
Definition: blueprint/include/nil/crypto3/zk/components/schemes/snark/set_commitment.hpp:75
set_membership_proof get_membership_proof(const std::vector< bool > &value) const
Definition: blueprint/include/nil/crypto3/zk/components/schemes/snark/set_commitment.hpp:95
set_commitment get_commitment() const
Definition: blueprint/include/nil/crypto3/zk/components/schemes/snark/set_commitment.hpp:91
vector(T, U...) -> vector< std::enable_if_t<(std::is_same_v< T, U > &&...), T >, 1+sizeof...(U)>
deduction guide for uniform initialization
OutputIterator move(const SinglePassRange &rng, OutputIterator result)
Definition: move.hpp:45
r1cs_mp_ppzkpcd_proof< PCD_ppT > r1cs_mp_ppzkpcd_prover(const r1cs_mp_ppzkpcd_proving_key< PCD_ppT > &pk, const std::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)
Definition: r1cs_mp_ppzkpcd.hpp:529
r1cs_mp_ppzkpcd_processed_verification_key< PCD_ppT > r1cs_mp_ppzkpcd_process_vk(const r1cs_mp_ppzkpcd_verification_key< PCD_ppT > &vk)
Definition: r1cs_mp_ppzkpcd.hpp:675
std::vector< typename FieldType::value_type > r1cs_auxiliary_input
Definition: r1cs.hpp:104
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)
Definition: r1cs_mp_ppzkpcd.hpp:700
std::pair< typename ZkScheme::proving_key, typename ZkScheme::verification_key > keypair
Definition: keypair.hpp:35
r1cs_mp_ppzkpcd_keypair< PCD_ppT > r1cs_mp_ppzkpcd_generator(const std::vector< r1cs_mp_ppzkpcd_compliance_predicate< PCD_ppT >> &compliance_predicates)
Definition: r1cs_mp_ppzkpcd.hpp:417
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)
Definition: r1cs_mp_ppzkpcd.hpp:658
std::vector< typename FieldType::value_type > r1cs_primary_input
Definition: r1cs.hpp:101
std::vector< bool > set_commitment
Definition: blueprint/include/nil/crypto3/zk/components/schemes/snark/set_commitment.hpp:37
Definition: pair.hpp:31
Definition: r1cs.hpp:124
Definition: blueprint/include/nil/crypto3/zk/components/schemes/snark/set_commitment.hpp:39