nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType > Class Template Reference

#include <sp_pcd_circuits.hpp>

+ Collaboration diagram for nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >:

Public Types

typedef CurveType::scalar_field_type FieldType
 

Public Member Functions

void generate_r1cs_constraints ()
 
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)
 
r1cs_auxiliary_input< FieldTypeget_auxiliary_input () const
 
r1cs_constraint_system< FieldTypeget_circuit () const
 
r1cs_primary_input< FieldTypeget_primary_input () const
 
 sp_translation_step_pcd_circuit_maker (const r1cs_ppzksnark_verification_key< other_curve< CurveType >> &compliance_step_vk)
 

Static Public Member Functions

static std::size_t field_capacity ()
 
static std::size_t field_logsize ()
 
static std::size_t input_capacity_in_bits ()
 
static std::size_t input_size_in_bits ()
 
static std::size_t input_size_in_elts ()
 

Public Attributes

blueprint< FieldTypebp
 
std::shared_ptr< r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable< CurveType > > hardcoded_sp_compliance_step_vk
 
std::shared_ptr< r1cs_ppzksnark_online_verifier_component< CurveType > > online_verifier
 
std::shared_ptr< r1cs_ppzksnark_proof_variable< CurveType > > proof
 
blueprint_variable_vector< FieldTypesp_translation_step_pcd_circuit_input
 
std::shared_ptr< multipacking_component< FieldType > > unpack_sp_translation_step_pcd_circuit_input
 
blueprint_variable_vector< FieldTypeunpacked_sp_translation_step_pcd_circuit_input
 
blueprint_variable_vector< FieldTypeverifier_input
 

Detailed Description

template<typename CurveType>
class nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >

A translation-step PCD circuit.

The circuit is an R1CS that checks validity of previous proofs.

Member Typedef Documentation

◆ FieldType

template<typename CurveType >
typedef CurveType::scalar_field_type nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::FieldType

Constructor & Destructor Documentation

◆ sp_translation_step_pcd_circuit_maker()

template<typename CurveType >
nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::sp_translation_step_pcd_circuit_maker ( const r1cs_ppzksnark_verification_key< other_curve< CurveType >> &  compliance_step_vk)

Member Function Documentation

◆ field_capacity()

template<typename CurveType >
std::size_t nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::field_capacity
static

◆ field_logsize()

template<typename CurveType >
std::size_t nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::field_logsize
static

◆ generate_r1cs_constraints()

template<typename CurveType >
void nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::generate_r1cs_constraints

◆ generate_r1cs_witness()

template<typename CurveType >
void nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::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 
)

◆ get_auxiliary_input()

template<typename CurveType >
r1cs_auxiliary_input< typename CurveType::scalar_field_type > nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::get_auxiliary_input

◆ get_circuit()

template<typename CurveType >
r1cs_constraint_system< typename CurveType::scalar_field_type > nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::get_circuit

◆ get_primary_input()

template<typename CurveType >
r1cs_primary_input< typename CurveType::scalar_field_type > nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::get_primary_input

◆ input_capacity_in_bits()

template<typename CurveType >
std::size_t nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::input_capacity_in_bits
static

◆ input_size_in_bits()

template<typename CurveType >
std::size_t nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::input_size_in_bits
static

◆ input_size_in_elts()

template<typename CurveType >
std::size_t nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::input_size_in_elts
static

Member Data Documentation

◆ bp

template<typename CurveType >
blueprint<FieldType> nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::bp

◆ hardcoded_sp_compliance_step_vk

template<typename CurveType >
std::shared_ptr<r1cs_ppzksnark_preprocessed_r1cs_ppzksnark_verification_key_variable<CurveType> > nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::hardcoded_sp_compliance_step_vk

◆ online_verifier

template<typename CurveType >
std::shared_ptr<r1cs_ppzksnark_online_verifier_component<CurveType> > nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::online_verifier

◆ proof

template<typename CurveType >
std::shared_ptr<r1cs_ppzksnark_proof_variable<CurveType> > nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::proof

◆ sp_translation_step_pcd_circuit_input

template<typename CurveType >
blueprint_variable_vector<FieldType> nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::sp_translation_step_pcd_circuit_input

◆ unpack_sp_translation_step_pcd_circuit_input

template<typename CurveType >
std::shared_ptr<multipacking_component<FieldType> > nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::unpack_sp_translation_step_pcd_circuit_input

◆ unpacked_sp_translation_step_pcd_circuit_input

template<typename CurveType >
blueprint_variable_vector<FieldType> nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::unpacked_sp_translation_step_pcd_circuit_input

◆ verifier_input

template<typename CurveType >
blueprint_variable_vector<FieldType> nil::crypto3::zk::snark::sp_translation_step_pcd_circuit_maker< CurveType >::verifier_input

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