r1cs_gg_ppzksnark.hpp
Go to the documentation of this file.
41 #include <nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/encrypted_input/generator.hpp>
63 std::is_same<r1cs_gg_ppzksnark_generator<CurveType, ProvingMode::Aggregate>, Generator>::value &&
65 std::is_same<r1cs_gg_ppzksnark_verifier_strong_input_consistency<CurveType, ProvingMode::Aggregate>,
152 typename std::enable_if<is_aggregate_mode<CurveType, Generator, Prover, Verifier>::value>::type> {
155 typedef detail::r1cs_gg_ppzksnark_basic_policy<CurveType, ProvingMode::Basic> basic_policy_type;
243 typedef detail::r1cs_gg_ppzksnark_basic_policy<CurveType, ProvingMode::EncryptedInput> policy_type;
244 typedef detail::r1cs_gg_ppzksnark_basic_policy<CurveType, ProvingMode::Basic> basic_policy_type;
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:248
basic_policy::primary_input_type primary_input_type
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:263
basic_policy::extended_keypair_type keypair_type
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:288
basic_policy::auxiliary_input_type auxiliary_input_type
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:265
Definition: snark/proof.hpp:37
policy_type::proving_srs_type proving_srs_type
Definition: r1cs_gg_ppzksnark.hpp:167
policy_type::keypair_type keypair_type
Definition: r1cs_gg_ppzksnark.hpp:170
policy_type::auxiliary_input_type auxiliary_input_type
Definition: r1cs_gg_ppzksnark.hpp:161
static keypair_type generate(const constraint_system_type &constraint_system)
Definition: r1cs_gg_ppzksnark.hpp:179
policy_type::primary_input_type primary_input_type
Definition: r1cs_gg_ppzksnark.hpp:160
static basic_proof_type prove(const proving_key_type &pk, const primary_input_type &primary_input, const auxiliary_input_type &auxiliary_input)
Definition: r1cs_gg_ppzksnark.hpp:193
static proof_type prove(const proving_srs_type &srs, InputTranscriptIncludeIterator transcript_include_first, InputTranscriptIncludeIterator transcript_include_last, InputProofIterator proofs_first, InputProofIterator proofs_last)
Definition: r1cs_gg_ppzksnark.hpp:202
static bool verify(const verification_srs_type &ip_verifier_srs, const verification_key_type &pvk, const InputPrimaryInputRange &public_inputs, const proof_type &proof, InputIterator transcript_include_first, InputIterator transcript_include_last)
Definition: r1cs_gg_ppzksnark.hpp:226
policy_type::srs_type srs_type
Definition: r1cs_gg_ppzksnark.hpp:166
policy_type::srs_pair_type srs_pair_type
Definition: r1cs_gg_ppzksnark.hpp:171
policy_type::proof_type proof_type
Definition: r1cs_gg_ppzksnark.hpp:173
policy_type::constraint_system_type constraint_system_type
Definition: r1cs_gg_ppzksnark.hpp:159
static bool verify(const VerificationKey &vk, const primary_input_type &primary_input, const basic_proof_type &proof)
Definition: r1cs_gg_ppzksnark.hpp:215
policy_type::proving_key_type proving_key_type
Definition: r1cs_gg_ppzksnark.hpp:163
policy_type::verification_key_type verification_key_type
Definition: r1cs_gg_ppzksnark.hpp:164
policy_type::verification_srs_type verification_srs_type
Definition: r1cs_gg_ppzksnark.hpp:168
static srs_pair_type generate(std::size_t num_proofs)
Definition: r1cs_gg_ppzksnark.hpp:187
static KeyPairType generate(const constraint_system_type &constraint_system)
Definition: r1cs_gg_ppzksnark.hpp:130
policy_type::proving_key_type proving_key_type
Definition: r1cs_gg_ppzksnark.hpp:122
policy_type::primary_input_type primary_input_type
Definition: r1cs_gg_ppzksnark.hpp:119
policy_type::proof_type proof_type
Definition: r1cs_gg_ppzksnark.hpp:127
policy_type::verification_key_type verification_key_type
Definition: r1cs_gg_ppzksnark.hpp:123
static bool verify(const VerificationKey &vk, const primary_input_type &primary_input, const proof_type &proof)
Definition: r1cs_gg_ppzksnark.hpp:142
policy_type::keypair_type keypair_type
Definition: r1cs_gg_ppzksnark.hpp:126
policy_type::auxiliary_input_type auxiliary_input_type
Definition: r1cs_gg_ppzksnark.hpp:120
policy_type::processed_verification_key_type processed_verification_key_type
Definition: r1cs_gg_ppzksnark.hpp:124
policy_type::constraint_system_type constraint_system_type
Definition: r1cs_gg_ppzksnark.hpp:118
static proof_type prove(const proving_key_type &pk, const primary_input_type &primary_input, const auxiliary_input_type &auxiliary_input)
Definition: r1cs_gg_ppzksnark.hpp:134
policy_type::proving_key_type proving_key_type
Definition: r1cs_gg_ppzksnark.hpp:252
policy_type::auxiliary_input_type auxiliary_input_type
Definition: r1cs_gg_ppzksnark.hpp:250
policy_type::keypair_type keypair_type
Definition: r1cs_gg_ppzksnark.hpp:254
policy_type::proof_type proof_type
Definition: r1cs_gg_ppzksnark.hpp:255
policy_type::verification_key_type verification_key_type
Definition: r1cs_gg_ppzksnark.hpp:253
static bool verify(CipherTextIterator first, CipherTextIterator last, const verification_key_type &vk, const PublicKey &pubkey, const primary_input_type &unencrypted_primary_input, const proof_type &proof)
Definition: r1cs_gg_ppzksnark.hpp:279
policy_type::constraint_system_type constraint_system_type
Definition: r1cs_gg_ppzksnark.hpp:248
static KeyPairType generate(const constraint_system_type &constraint_system)
Definition: r1cs_gg_ppzksnark.hpp:262
static proof_type prove(const proving_key_type &pk, const PublicKey &pubkey, const primary_input_type &primary_input, const auxiliary_input_type &auxiliary_input, const typename CurveType::scalar_field_type::value_type &r)
Definition: r1cs_gg_ppzksnark.hpp:269
policy_type::primary_input_type primary_input_type
Definition: r1cs_gg_ppzksnark.hpp:249
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/encrypted_input/verifier.hpp:60
ppzkSNARK for R1CS with a security proof in the generic group (GG) model
Definition: r1cs_gg_ppzksnark.hpp:109
boost::mpl::apply< AccumulatorSet, tag::pubkey< ProcessingMode > >::type::result_type pubkey(const AccumulatorSet &acc)
Definition: accumulators/pubkey.hpp:106
typename std::bool_constant< std::is_same< r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::EncryptedInput >, Generator >::value &&std::is_same< r1cs_gg_ppzksnark_prover< CurveType, ProvingMode::EncryptedInput >, Prover >::value &&std::is_same< r1cs_gg_ppzksnark_verifier_strong_input_consistency< CurveType, ProvingMode::EncryptedInput >, Verifier >::value > is_encrypted_input_mode
Definition: r1cs_gg_ppzksnark.hpp:75
typename std::bool_constant< std::is_same< r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Basic >, Generator >::value &&std::is_same< r1cs_gg_ppzksnark_prover< CurveType, ProvingMode::Basic >, Prover >::value &&(std::is_same< r1cs_gg_ppzksnark_verifier_weak_input_consistency< CurveType, ProvingMode::Basic >, Verifier >::value||std::is_same< r1cs_gg_ppzksnark_verifier_strong_input_consistency< CurveType, ProvingMode::Basic >, Verifier >::value)> is_basic_mode
Definition: r1cs_gg_ppzksnark.hpp:59
@ EncryptedInput
typename std::bool_constant< std::is_same< r1cs_gg_ppzksnark_generator< CurveType, ProvingMode::Aggregate >, Generator >::value &&std::is_same< r1cs_gg_ppzksnark_prover< CurveType, ProvingMode::Aggregate >, Prover >::value &&std::is_same< r1cs_gg_ppzksnark_verifier_strong_input_consistency< CurveType, ProvingMode::Aggregate >, Verifier >::value > is_aggregate_mode
Definition: r1cs_gg_ppzksnark.hpp:66
Definition: pair.hpp:31
nil::crypto3::zk::snark::detail::r1cs_gg_ppzksnark_basic_policy< CurveType, ProvingMode::Aggregate >
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:168
r1cs_gg_ppzksnark_keypair< proving_key_type, verification_key_type > keypair_type
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:204
r1cs_auxiliary_input< typename curve_type::scalar_field_type > auxiliary_input_type
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:182
r1cs_primary_input< typename curve_type::scalar_field_type > primary_input_type
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:180
srs_type::srs_pair_type srs_pair_type
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:233
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:78
r1cs_gg_ppzksnark_keypair< proving_key_type, verification_key_type > keypair_type
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:135
r1cs_auxiliary_input< typename curve_type::scalar_field_type > auxiliary_input_type
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:92
r1cs_primary_input< typename curve_type::scalar_field_type > primary_input_type
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/detail/basic_policy.hpp:90
Definition: r1cs.hpp:124
Definition: snark/systems/ppzksnark/r1cs_gg_ppzksnark/ipp2/proof.hpp:96
Definition: srs.hpp:61
Definition: srs.hpp:121
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/ipp2/verification_key.hpp:38
Definition: srs.hpp:101
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/verification_key.hpp:121
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/verification_key.hpp:102
Definition: snark/systems/ppzksnark/r1cs_gg_ppzksnark/proof.hpp:40
Definition: systems/ppzksnark/r1cs_gg_ppzksnark/proving_key.hpp:39
Definition: zk/include/nil/crypto3/zk/snark/systems/ppzksnark/r1cs_gg_ppzksnark/verification_key.hpp:47