nil::crypto3::zk::snark::r1cs_gg_ppzksnark_verifier_weak_input_consistency< CurveType, ProvingMode::Basic > Class Template Reference

#include <verifier.hpp>

+ Collaboration diagram for nil::crypto3::zk::snark::r1cs_gg_ppzksnark_verifier_weak_input_consistency< CurveType, ProvingMode::Basic >:

Public Types

typedef policy_type::primary_input_type primary_input_type
 
typedef policy_type::processed_verification_key_type processed_verification_key_type
 
typedef policy_type::proof_type proof_type
 
typedef policy_type::verification_key_type verification_key_type
 

Static Public Member Functions

static bool process (const processed_verification_key_type &processed_verification_key, const primary_input_type &primary_input, const proof_type &proof)
 
static bool process (const verification_key_type &verification_key, const primary_input_type &primary_input, const proof_type &proof)
 

Detailed Description

template<typename CurveType>
class nil::crypto3::zk::snark::r1cs_gg_ppzksnark_verifier_weak_input_consistency< CurveType, ProvingMode::Basic >

Below are four variants of verifier algorithm for the R1CS GG-ppzkSNARK.

These are the four cases that arise from the following two choices:

(1) The verifier accepts a (non-processed) verification key or, instead, a processed verification key. In the latter case, we call the algorithm an "online verifier".

(2) The verifier checks for "weak" input consistency or, instead, "strong" input consistency. Strong input consistency requires that |primary_input| = CS.num_inputs, whereas weak input consistency requires that |primary_input| <= CS.num_inputs (and the primary input is implicitly padded with zeros up to length CS.num_inputs).

Member Typedef Documentation

◆ primary_input_type

◆ processed_verification_key_type

◆ proof_type

◆ verification_key_type

Member Function Documentation

◆ process() [1/2]

template<typename CurveType >
static bool nil::crypto3::zk::snark::r1cs_gg_ppzksnark_verifier_weak_input_consistency< CurveType, ProvingMode::Basic >::process ( const processed_verification_key_type processed_verification_key,
const primary_input_type primary_input,
const proof_type proof 
)
inlinestatic

A verifier algorithm for the R1CS GG-ppzkSNARK that: (1) accepts a processed verification key, and (2) has weak input consistency.

◆ process() [2/2]

template<typename CurveType >
static bool nil::crypto3::zk::snark::r1cs_gg_ppzksnark_verifier_weak_input_consistency< CurveType, ProvingMode::Basic >::process ( const verification_key_type verification_key,
const primary_input_type primary_input,
const proof_type proof 
)
inlinestatic

A verifier algorithm for the R1CS GG-ppzkSNARK that: (1) accepts a non-processed verification key, and (2) has weak input consistency.


The documentation for this class was generated from the following file: