mp_pcd_circuits.hpp
Go to the documentation of this file.
49 #include <nil/crypto3/zk/components/schemes/snark/pcd/r1cs_pcd/compliance_predicate/cp_handler.hpp>
117 std::vector<blueprint_variable_vector<FieldType>> padded_commitment_and_incoming_messages_digest;
177 std::shared_ptr<multipacking_component<FieldType>> unpack_mp_translation_step_pcd_circuit_input;
179 std::shared_ptr<r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable<CurveType>>
189 void generate_r1cs_witness(const snark::r1cs_primary_input<typename CurveType::scalar_field_type>
240 set_commitment_component<FieldType, crh_with_bit_out_component<FieldType>>::root_size_in_bits();
534 const r1cs_pcd_compliance_predicate_primary_input<FieldType> &compliance_predicate_primary_input,
Definition: mp_pcd_circuits.hpp:65
blueprint_variable_vector< FieldType > mp_compliance_step_pcd_circuit_input
Definition: mp_pcd_circuits.hpp:115
std::vector< blueprint_variable_vector< FieldType > > verifier_input
Definition: mp_pcd_circuits.hpp:129
snark::r1cs_auxiliary_input< FieldType > get_auxiliary_input() const
Definition: mp_pcd_circuits.hpp:524
std::vector< r1cs_ppzksnark_verifier_component< CurveType > > verifier
Definition: mp_pcd_circuits.hpp:132
std::vector< blueprint_variable_vector< FieldType > > incoming_messages_bits
Definition: mp_pcd_circuits.hpp:112
std::shared_ptr< block_variable< FieldType > > block_for_outgoing_message
Definition: mp_pcd_circuits.hpp:84
static std::size_t input_size_in_bits()
Definition: mp_pcd_circuits.hpp:632
void generate_r1cs_constraints()
Definition: mp_pcd_circuits.hpp:428
blueprint_variable< FieldType > arity
Definition: mp_pcd_circuits.hpp:100
snark::r1cs_primary_input< FieldType > get_primary_input() const
Definition: mp_pcd_circuits.hpp:518
blueprint_variable< FieldType > common_type
Definition: mp_pcd_circuits.hpp:126
mp_compliance_step_pcd_circuit_maker(const r1cs_pcd_compliance_predicate< FieldType > &compliance_predicate, const std::size_t max_number_of_predicates)
Definition: mp_pcd_circuits.hpp:225
blueprint_variable_vector< FieldType > outgoing_message_bits
Definition: mp_pcd_circuits.hpp:109
blueprint_variable_vector< FieldType > padded_translation_step_vk_and_outgoing_message_digest
Definition: mp_pcd_circuits.hpp:116
std::vector< multipacking_component< FieldType > > unpack_commitment_and_incoming_message_digests
Definition: mp_pcd_circuits.hpp:89
std::vector< blueprint_variable_vector< FieldType > > padded_commitment_and_incoming_messages_digest
Definition: mp_pcd_circuits.hpp:117
std::vector< blueprint_variable< FieldType > > incoming_message_types
Definition: mp_pcd_circuits.hpp:101
static std::size_t field_logsize()
Definition: mp_pcd_circuits.hpp:611
std::vector< block_variable< FieldType > > block_for_incoming_messages
Definition: mp_pcd_circuits.hpp:87
std::vector< set_membership_proof_variable< FieldType, crh_with_bit_out_component< FieldType > > > membership_proofs
Definition: mp_pcd_circuits.hpp:122
static std::size_t field_capacity()
Definition: mp_pcd_circuits.hpp:616
blueprint_variable_vector< FieldType > local_data
Definition: mp_pcd_circuits.hpp:105
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
std::shared_ptr< component_from_r1cs< FieldType > > compliance_predicate_as_component
Definition: mp_pcd_circuits.hpp:107
static std::size_t input_size_in_elts()
Definition: mp_pcd_circuits.hpp:621
std::vector< blueprint_variable_vector< FieldType > > translation_step_vks_bits
Definition: mp_pcd_circuits.hpp:94
blueprint_variable< FieldType > outgoing_message_type
Definition: mp_pcd_circuits.hpp:96
std::vector< blueprint_variable_vector< FieldType > > commitment_and_incoming_messages_digest_bits
Definition: mp_pcd_circuits.hpp:90
std::vector< blueprint_variable_vector< FieldType > > incoming_message_vars
Definition: mp_pcd_circuits.hpp:103
std::vector< crh_with_field_out_component< FieldType > > hash_incoming_messages
Definition: mp_pcd_circuits.hpp:91
std::vector< blueprint_variable_vector< FieldType > > commitment_and_incoming_message_digests
Definition: mp_pcd_circuits.hpp:88
blueprint_variable_vector< FieldType > verification_results
Definition: mp_pcd_circuits.hpp:131
CurveType::scalar_field_type FieldType
Definition: mp_pcd_circuits.hpp:76
blueprint_variable_vector< FieldType > cp_witness
Definition: mp_pcd_circuits.hpp:106
blueprint_variable_vector< FieldType > common_type_check_aux
Definition: mp_pcd_circuits.hpp:127
blueprint_variable< FieldType > zero
Definition: mp_pcd_circuits.hpp:82
std::vector< r1cs_ppzksnark_verification_key_variable< CurveType > > translation_step_vks
Definition: mp_pcd_circuits.hpp:93
r1cs_pcd_compliance_predicate< FieldType > compliance_predicate
Definition: mp_pcd_circuits.hpp:78
std::vector< set_commitment_component< FieldType, crh_with_bit_out_component< FieldType > > > membership_checkers
Definition: mp_pcd_circuits.hpp:124
std::shared_ptr< set_commitment_variable< FieldType, crh_with_bit_out_component< FieldType > > > commitment
Definition: mp_pcd_circuits.hpp:120
static std::size_t input_capacity_in_bits()
Definition: mp_pcd_circuits.hpp:627
blueprint_variable_vector< FieldType > outgoing_message_payload
Definition: mp_pcd_circuits.hpp:97
std::vector< r1cs_ppzksnark_proof_variable< CurveType > > proof
Definition: mp_pcd_circuits.hpp:130
std::vector< blueprint_variable_vector< FieldType > > incoming_message_payloads
Definition: mp_pcd_circuits.hpp:102
std::shared_ptr< crh_with_field_out_component< FieldType > > hash_outgoing_message
Definition: mp_pcd_circuits.hpp:85
std::shared_ptr< multipacking_component< FieldType > > unpack_outgoing_message
Definition: mp_pcd_circuits.hpp:110
blueprint< FieldType > bp
Definition: mp_pcd_circuits.hpp:80
blueprint_variable_vector< FieldType > outgoing_message_vars
Definition: mp_pcd_circuits.hpp:98
snark::r1cs_constraint_system< FieldType > get_circuit() const
Definition: mp_pcd_circuits.hpp:512
std::vector< multipacking_component< FieldType > > unpack_incoming_messages
Definition: mp_pcd_circuits.hpp:113
blueprint_variable_vector< FieldType > membership_check_results
Definition: mp_pcd_circuits.hpp:125
Definition: mp_pcd_circuits.hpp:168
static std::size_t input_size_in_elts()
Definition: mp_pcd_circuits.hpp:718
static std::size_t input_size_in_bits()
Definition: mp_pcd_circuits.hpp:730
blueprint_variable_vector< FieldType > mp_translation_step_pcd_circuit_input
Definition: mp_pcd_circuits.hpp:174
static std::size_t input_capacity_in_bits()
Definition: mp_pcd_circuits.hpp:725
snark::r1cs_auxiliary_input< FieldType > get_auxiliary_input() const
Definition: mp_pcd_circuits.hpp:703
snark::r1cs_primary_input< FieldType > get_primary_input() const
Definition: mp_pcd_circuits.hpp:697
CurveType::scalar_field_type FieldType
Definition: mp_pcd_circuits.hpp:170
static std::size_t field_capacity()
Definition: mp_pcd_circuits.hpp:713
blueprint< FieldType > bp
Definition: mp_pcd_circuits.hpp:172
blueprint_variable_vector< FieldType > verifier_input
Definition: mp_pcd_circuits.hpp:176
static std::size_t field_logsize()
Definition: mp_pcd_circuits.hpp:708
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
std::shared_ptr< r1cs_ppzksnark_online_verifier_component< CurveType > > online_verifier
Definition: mp_pcd_circuits.hpp:182
void generate_r1cs_constraints()
Definition: mp_pcd_circuits.hpp:668
std::shared_ptr< r1cs_ppzksnark_proof_variable< CurveType > > proof
Definition: mp_pcd_circuits.hpp:181
blueprint_variable_vector< FieldType > unpacked_mp_translation_step_pcd_circuit_input
Definition: mp_pcd_circuits.hpp:175
mp_translation_step_pcd_circuit_maker(const r1cs_ppzksnark_verification_key< other_curve< CurveType >> &compliance_step_vk)
Definition: mp_pcd_circuits.hpp:637
snark::r1cs_constraint_system< FieldType > get_circuit() const
Definition: mp_pcd_circuits.hpp:678
std::shared_ptr< multipacking_component< FieldType > > unpack_mp_translation_step_pcd_circuit_input
Definition: mp_pcd_circuits.hpp:177
std::shared_ptr< r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable< CurveType > > hardcoded_compliance_step_vk
Definition: mp_pcd_circuits.hpp:180
Definition: snark/proof.hpp:37
Definition: r1cs_pcd_params.hpp:54
r1cs_auxiliary_input< FieldType > as_r1cs_auxiliary_input(const std::vector< std::size_t > &incoming_message_payload_lengths) const
Definition: r1cs_pcd_params.hpp:68
Definition: r1cs_pcd_params.hpp:40
std::shared_ptr< r1cs_pcd_message< FieldType > > outgoing_message
Definition: r1cs_pcd_params.hpp:42
r1cs_primary_input< FieldType > as_r1cs_primary_input() const
Definition: r1cs_pcd_params.hpp:48
Definition: compliance_predicate.hpp:123
Definition: snark/systems/ppzksnark/r1cs_ppzksnark/proof.hpp:43
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_ppzksnark/verification_key.hpp:42
vector(T, U...) -> vector< std::enable_if_t<(std::is_same_v< T, U > &&...), T >, 1+sizeof...(U)>
deduction guide for uniform initialization
constexpr T max(const vector< T, N > &v)
computes the maximum valued element
Definition: algebra/include/nil/crypto3/algebra/vector/math.hpp:146
boost::mpl::apply< AccumulatorSet, tag::block< Mode > >::type::result_type block(const AccumulatorSet &acc)
Definition: accumulators/block.hpp:259
digest_variable< FieldType > set_commitment_variable
Definition: set_commitment_component.hpp:41
std::vector< typename FieldType::value_type > r1cs_auxiliary_input
Definition: r1cs.hpp:104
snark::r1cs_primary_input< typename CurveType::scalar_field_type > get_mp_compliance_step_pcd_circuit_input(const set_commitment &commitment_to_translation_step_r1cs_vks, const r1cs_pcd_compliance_predicate_primary_input< typename CurveType::scalar_field_type > &primary_input)
Definition: mp_pcd_circuits.hpp:736
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
std::vector< typename FieldType::value_type > r1cs_variable_assignment
Definition: r1cs.hpp:107
snark::r1cs_primary_input< typename CurveType::scalar_field_type > get_mp_translation_step_pcd_circuit_input(const set_commitment &commitment_to_translation_step_r1cs_vks, const r1cs_pcd_compliance_predicate_primary_input< other_curve< CurveType >::scalar_field_type > &primary_input)
boost::container::small_vector< octet_type, DigestBits/octet_bits > digest
Definition: codec/include/nil/crypto3/detail/digest.hpp:71
Definition: pair.hpp:31
Definition: block/include/nil/crypto3/detail/digest.hpp:72
Definition: r1cs.hpp:124
Definition: r1cs.hpp:60