nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier > Class Template Reference
ppzkSNARK for TBCS More...
#include <tbcs_ppzksnark.hpp>
Collaboration diagram for nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier >:
Static Public Member Functions | |
static keypair_type | generate (const circuit_type &circuit) |
static proof_type | prove (const proving_key_type &pk, const primary_input_type &primary_input, const auxiliary_input_type &auxiliary_input) |
template<typename VerificationKey > | |
static bool | verify (const VerificationKey &vk, const primary_input_type &primary_input, const proof_type &proof) |
Detailed Description
template<typename CurveType, typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
class nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier >
ppzkSNARK for TBCS
- Template Parameters
-
CurveType Generator Prover Verifier The implementation is a straightforward combination of: (1) a TBCS-to-USCS reduction, and (2) a ppzkSNARK for USCS.
Acronyms:
- TBCS = "Two-input Boolean Circuit Satisfiability"
- USCS = "Unitary-Square Constraint System"
- ppzkSNARK = "PreProcessing Zero-Knowledge Succinct Non-interactive ARgument of Knowledge"
Member Typedef Documentation
◆ auxiliary_input_type
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
typedef policy_type::auxiliary_input_type nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier >::auxiliary_input_type |
◆ circuit_type
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
typedef policy_type::circuit_type nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier >::circuit_type |
◆ keypair_type
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
typedef policy_type::keypair_type nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier >::keypair_type |
◆ primary_input_type
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
typedef policy_type::primary_input_type nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier >::primary_input_type |
◆ processed_verification_key_type
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
typedef policy_type::processed_verification_key_type nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier >::processed_verification_key_type |
◆ proof_type
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
typedef policy_type::proof_type nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier >::proof_type |
◆ proving_key_type
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
typedef policy_type::proving_key_type nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier >::proving_key_type |
◆ verification_key_type
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
typedef policy_type::verification_key_type nil::crypto3::zk::snark::tbcs_ppzksnark< CurveType, Generator, Prover, Verifier >::verification_key_type |
Member Function Documentation
◆ generate()
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
|
inlinestatic |
◆ prove()
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
|
inlinestatic |
◆ verify()
template<typename CurveType , typename Generator = tbcs_ppzksnark_generator<CurveType>, typename Prover = tbcs_ppzksnark_prover<CurveType>, typename Verifier = tbcs_ppzksnark_verifier_strong_input_consistency<CurveType>>
template<typename VerificationKey >
|
inlinestatic |
The documentation for this class was generated from the following file: