sp_pcd_circuits.hpp
Go to the documentation of this file.
160 std::shared_ptr<multipacking_component<FieldType>> unpack_sp_translation_step_pcd_circuit_input;
162 std::shared_ptr<r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable<CurveType>>
192 r1cs_primary_input<typename CurveType::scalar_field_type> get_sp_compliance_step_pcd_circuit_input(
201 r1cs_primary_input<typename CurveType::scalar_field_type> get_sp_translation_step_pcd_circuit_input(
245 incoming_message_payloads[i].allocate(bp, compliance_predicate.outgoing_message_payload_length);
318 sp_translation_step_vk_and_incoming_message_payload_digest_bits.resize(compliance_predicate_arity);
330 verifier_input.emplace_back(sp_translation_step_vk_and_incoming_message_payload_digest_bits[i]);
368 unpack_sp_translation_step_vk_and_incoming_message_payload_digests[i].generate_r1cs_constraints(
420 const r1cs_ppzksnark_verification_key<other_curve<CurveType>> &sp_translation_step_pcd_circuit_vk,
421 const r1cs_pcd_compliance_predicate_primary_input<FieldType> &compliance_predicate_primary_input,
581 r1cs_primary_input<typename CurveType::scalar_field_type> get_sp_compliance_step_pcd_circuit_input(
596 block.insert(block.end(), sp_translation_step_vk_bits.begin(), sp_translation_step_vk_bits.end());
608 r1cs_primary_input<typename CurveType::scalar_field_type> get_sp_translation_step_pcd_circuit_input(
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
Definition: sp_pcd_circuits.hpp:67
std::vector< multipacking_component< FieldType > > unpack_incoming_messages
Definition: sp_pcd_circuits.hpp:109
std::vector< r1cs_ppzksnark_verifier_component< CurveType > > verifiers
Definition: sp_pcd_circuits.hpp:119
blueprint_variable_vector< FieldType > sp_translation_step_vk_bits
Definition: sp_pcd_circuits.hpp:90
r1cs_auxiliary_input< FieldType > get_auxiliary_input() const
Definition: sp_pcd_circuits.hpp:414
sp_compliance_step_pcd_circuit_maker(const r1cs_pcd_compliance_predicate< FieldType > &compliance_predicate)
Definition: sp_pcd_circuits.hpp:207
std::vector< multipacking_component< FieldType > > unpack_sp_translation_step_vk_and_incoming_message_payload_digests
Definition: sp_pcd_circuits.hpp:84
std::shared_ptr< multipacking_component< FieldType > > unpack_outgoing_message
Definition: sp_pcd_circuits.hpp:106
static std::size_t input_capacity_in_bits()
Definition: sp_pcd_circuits.hpp:474
variable< FieldType > verification_result
Definition: sp_pcd_circuits.hpp:118
std::vector< blueprint_variable_vector< FieldType > > padded_translation_step_vk_and_incoming_messages_digests
Definition: sp_pcd_circuits.hpp:114
std::vector< block_variable< FieldType > > blocks_for_incoming_messages
Definition: sp_pcd_circuits.hpp:80
blueprint_variable_vector< FieldType > outgoing_message_vars
Definition: sp_pcd_circuits.hpp:94
void generate_r1cs_witness(const r1cs_ppzksnark_verification_key< other_curve< CurveType >> &translation_step_pcd_circuit_vk, 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 >>> &incoming_proofs)
Definition: sp_pcd_circuits.hpp:419
std::shared_ptr< component_from_r1cs< FieldType > > compliance_predicate_as_component
Definition: sp_pcd_circuits.hpp:103
std::vector< crh_with_field_out_component< FieldType > > hash_incoming_messages
Definition: sp_pcd_circuits.hpp:87
variable< FieldType > arity
Definition: sp_pcd_circuits.hpp:96
static std::size_t input_size_in_elts()
Definition: sp_pcd_circuits.hpp:468
std::vector< variable< FieldType > > incoming_message_types
Definition: sp_pcd_circuits.hpp:97
static std::size_t field_capacity()
Definition: sp_pcd_circuits.hpp:463
CurveType::scalar_field_type FieldType
Definition: sp_pcd_circuits.hpp:69
variable< FieldType > outgoing_message_type
Definition: sp_pcd_circuits.hpp:92
void generate_r1cs_constraints()
Definition: sp_pcd_circuits.hpp:349
std::shared_ptr< crh_with_field_out_component< FieldType > > hash_outgoing_message
Definition: sp_pcd_circuits.hpp:78
r1cs_constraint_system< FieldType > get_circuit() const
Definition: sp_pcd_circuits.hpp:402
blueprint_variable_vector< FieldType > cp_witness
Definition: sp_pcd_circuits.hpp:102
static std::size_t input_size_in_bits()
Definition: sp_pcd_circuits.hpp:479
blueprint_variable_vector< FieldType > outgoing_message_payload
Definition: sp_pcd_circuits.hpp:93
blueprint_variable_vector< FieldType > padded_translation_step_vk_and_outgoing_message_digest
Definition: sp_pcd_circuits.hpp:112
variable< FieldType > zero
Definition: sp_pcd_circuits.hpp:75
blueprint_variable_vector< FieldType > sp_compliance_step_pcd_circuit_input
Definition: sp_pcd_circuits.hpp:111
std::vector< blueprint_variable_vector< FieldType > > verifier_input
Definition: sp_pcd_circuits.hpp:116
std::shared_ptr< block_variable< FieldType > > block_for_outgoing_message
Definition: sp_pcd_circuits.hpp:77
blueprint_variable_vector< FieldType > outgoing_message_bits
Definition: sp_pcd_circuits.hpp:105
std::shared_ptr< r1cs_ppzksnark_verification_key_variable< CurveType > > sp_translation_step_vk
Definition: sp_pcd_circuits.hpp:89
std::vector< r1cs_ppzksnark_proof_variable< CurveType > > proof
Definition: sp_pcd_circuits.hpp:117
std::vector< blueprint_variable_vector< FieldType > > sp_translation_step_vk_and_incoming_message_payload_digest_bits
Definition: sp_pcd_circuits.hpp:86
std::vector< blueprint_variable_vector< FieldType > > incoming_message_payloads
Definition: sp_pcd_circuits.hpp:98
std::vector< blueprint_variable_vector< FieldType > > incoming_message_vars
Definition: sp_pcd_circuits.hpp:99
blueprint< FieldType > bp
Definition: sp_pcd_circuits.hpp:73
static std::size_t field_logsize()
Definition: sp_pcd_circuits.hpp:458
blueprint_variable_vector< FieldType > local_data
Definition: sp_pcd_circuits.hpp:101
std::vector< blueprint_variable_vector< FieldType > > incoming_messages_bits
Definition: sp_pcd_circuits.hpp:108
r1cs_primary_input< FieldType > get_primary_input() const
Definition: sp_pcd_circuits.hpp:408
r1cs_pcd_compliance_predicate< FieldType > compliance_predicate
Definition: sp_pcd_circuits.hpp:71
std::vector< blueprint_variable_vector< FieldType > > sp_translation_step_vk_and_incoming_message_payload_digests
Definition: sp_pcd_circuits.hpp:82
Definition: sp_pcd_circuits.hpp:151
std::shared_ptr< r1cs_ppzksnark_proof_variable< CurveType > > proof
Definition: sp_pcd_circuits.hpp:164
sp_translation_step_pcd_circuit_maker(const r1cs_ppzksnark_verification_key< other_curve< CurveType >> &compliance_step_vk)
Definition: sp_pcd_circuits.hpp:484
void generate_r1cs_witness(const r1cs_primary_input< typename CurveType::scalar_field_type > translation_step_input, const r1cs_ppzksnark_proof< other_curve< CurveType >> &compliance_step_proof)
Definition: sp_pcd_circuits.hpp:529
void generate_r1cs_constraints()
Definition: sp_pcd_circuits.hpp:514
static std::size_t field_logsize()
Definition: sp_pcd_circuits.hpp:554
static std::size_t input_size_in_bits()
Definition: sp_pcd_circuits.hpp:576
std::shared_ptr< r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable< CurveType > > hardcoded_sp_compliance_step_vk
Definition: sp_pcd_circuits.hpp:163
r1cs_primary_input< FieldType > get_primary_input() const
Definition: sp_pcd_circuits.hpp:543
std::shared_ptr< r1cs_ppzksnark_online_verifier_component< CurveType > > online_verifier
Definition: sp_pcd_circuits.hpp:165
static std::size_t input_size_in_elts()
Definition: sp_pcd_circuits.hpp:564
blueprint_variable_vector< FieldType > sp_translation_step_pcd_circuit_input
Definition: sp_pcd_circuits.hpp:157
r1cs_constraint_system< FieldType > get_circuit() const
Definition: sp_pcd_circuits.hpp:524
static std::size_t input_capacity_in_bits()
Definition: sp_pcd_circuits.hpp:571
blueprint< FieldType > bp
Definition: sp_pcd_circuits.hpp:155
blueprint_variable_vector< FieldType > verifier_input
Definition: sp_pcd_circuits.hpp:159
CurveType::scalar_field_type FieldType
Definition: sp_pcd_circuits.hpp:153
std::shared_ptr< multipacking_component< FieldType > > unpack_sp_translation_step_pcd_circuit_input
Definition: sp_pcd_circuits.hpp:160
static std::size_t field_capacity()
Definition: sp_pcd_circuits.hpp:559
r1cs_auxiliary_input< FieldType > get_auxiliary_input() const
Definition: sp_pcd_circuits.hpp:549
blueprint_variable_vector< FieldType > unpacked_sp_translation_step_pcd_circuit_input
Definition: sp_pcd_circuits.hpp:158
vector(T, U...) -> vector< std::enable_if_t<(std::is_same_v< T, U > &&...), T >, 1+sizeof...(U)>
deduction guide for uniform initialization
boost::mpl::apply< AccumulatorSet, tag::block< Mode > >::type::result_type block(const AccumulatorSet &acc)
Definition: accumulators/block.hpp:259
std::vector< typename FieldType::value_type > r1cs_auxiliary_input
Definition: r1cs.hpp:104
r1cs_primary_input< typename CurveType::scalar_field_type > get_sp_translation_step_pcd_circuit_input(const std::vector< bool > &sp_translation_step_vk_bits, const r1cs_pcd_compliance_predicate_primary_input< other_curve< CurveType >::scalar_field_type::value_type > &primary_input)
Definition: sp_pcd_circuits.hpp:608
std::vector< typename FieldType::value_type > r1cs_primary_input
Definition: r1cs.hpp:101
r1cs_primary_input< typename CurveType::scalar_field_type > get_sp_compliance_step_pcd_circuit_input(const std::vector< bool > &sp_translation_step_vk_bits, const r1cs_pcd_compliance_predicate_primary_input< typename CurveType::scalar_field_type > &primary_input)
Definition: sp_pcd_circuits.hpp:581
std::vector< typename FieldType::value_type > r1cs_variable_assignment
Definition: r1cs.hpp:107
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
Definition: variable.hpp:66