Clearmatics Libsnark  0.1
C++ library for zkSNARK proofs
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
libsnark::sp_compliance_step_pcd_circuit_maker< ppT > Class Template Reference

#include <sp_pcd_circuits.hpp>

Public Types

typedef libff::Fr< ppT > FieldT
 

Public Member Functions

 sp_compliance_step_pcd_circuit_maker (const r1cs_pcd_compliance_predicate< FieldT > &compliance_predicate)
 
void generate_r1cs_constraints ()
 
r1cs_constraint_system< FieldTget_circuit () const
 
void generate_r1cs_witness (const r1cs_ppzksnark_verification_key< other_curve< ppT >> &translation_step_pcd_circuit_vk, const r1cs_pcd_compliance_predicate_primary_input< FieldT > &compliance_predicate_primary_input, const r1cs_pcd_compliance_predicate_auxiliary_input< FieldT > &compliance_predicate_auxiliary_input, const std::vector< r1cs_ppzksnark_proof< other_curve< ppT >>> &incoming_proofs)
 
r1cs_primary_input< FieldTget_primary_input () const
 
r1cs_auxiliary_input< FieldTget_auxiliary_input () const
 

Static Public Member Functions

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

Public Attributes

r1cs_pcd_compliance_predicate< FieldTcompliance_predicate
 
protoboard< FieldTpb
 
pb_variable< FieldTzero
 
std::shared_ptr< block_variable< FieldT > > block_for_outgoing_message
 
std::shared_ptr< CRH_with_field_out_gadget< FieldT > > hash_outgoing_message
 
std::vector< block_variable< FieldT > > blocks_for_incoming_messages
 
std::vector< pb_variable_array< FieldT > > sp_translation_step_vk_and_incoming_message_payload_digests
 
std::vector< multipacking_gadget< FieldT > > unpack_sp_translation_step_vk_and_incoming_message_payload_digests
 
std::vector< pb_variable_array< FieldT > > sp_translation_step_vk_and_incoming_message_payload_digest_bits
 
std::vector< CRH_with_field_out_gadget< FieldT > > hash_incoming_messages
 
std::shared_ptr< r1cs_ppzksnark_verification_key_variable< ppT > > sp_translation_step_vk
 
pb_variable_array< FieldTsp_translation_step_vk_bits
 
pb_variable< FieldToutgoing_message_type
 
pb_variable_array< FieldToutgoing_message_payload
 
pb_variable_array< FieldToutgoing_message_vars
 
pb_variable< FieldTarity
 
std::vector< pb_variable< FieldT > > incoming_message_types
 
std::vector< pb_variable_array< FieldT > > incoming_message_payloads
 
std::vector< pb_variable_array< FieldT > > incoming_message_vars
 
pb_variable_array< FieldTlocal_data
 
pb_variable_array< FieldTcp_witness
 
std::shared_ptr< gadget_from_r1cs< FieldT > > compliance_predicate_as_gadget
 
pb_variable_array< FieldToutgoing_message_bits
 
std::shared_ptr< multipacking_gadget< FieldT > > unpack_outgoing_message
 
std::vector< pb_variable_array< FieldT > > incoming_messages_bits
 
std::vector< multipacking_gadget< FieldT > > unpack_incoming_messages
 
pb_variable_array< FieldTsp_compliance_step_pcd_circuit_input
 
pb_variable_array< FieldTpadded_translation_step_vk_and_outgoing_message_digest
 
std::vector< pb_variable_array< FieldT > > padded_translation_step_vk_and_incoming_messages_digests
 
std::vector< pb_variable_array< FieldT > > verifier_input
 
std::vector< r1cs_ppzksnark_proof_variable< ppT > > proof
 
pb_variable< FieldTverification_result
 
std::vector< r1cs_ppzksnark_verifier_gadget< ppT > > verifiers
 

Detailed Description

template<typename ppT>
class libsnark::sp_compliance_step_pcd_circuit_maker< ppT >

A compliance-step PCD circuit.

The circuit is an R1CS that checks compliance (for the given compliance predicate) and validity of previous proofs.

Definition at line 47 of file sp_pcd_circuits.hpp.

Member Typedef Documentation

◆ FieldT

template<typename ppT >
typedef libff::Fr<ppT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::FieldT

Definition at line 50 of file sp_pcd_circuits.hpp.

Constructor & Destructor Documentation

◆ sp_compliance_step_pcd_circuit_maker()

Member Function Documentation

◆ field_capacity()

template<typename ppT >
static size_t libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::field_capacity ( )
static

◆ field_logsize()

template<typename ppT >
static size_t libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::field_logsize ( )
static

◆ generate_r1cs_constraints()

template<typename ppT >
void libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::generate_r1cs_constraints ( )

◆ generate_r1cs_witness()

template<typename ppT >
void libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::generate_r1cs_witness ( const r1cs_ppzksnark_verification_key< other_curve< ppT >> &  translation_step_pcd_circuit_vk,
const r1cs_pcd_compliance_predicate_primary_input< FieldT > &  compliance_predicate_primary_input,
const r1cs_pcd_compliance_predicate_auxiliary_input< FieldT > &  compliance_predicate_auxiliary_input,
const std::vector< r1cs_ppzksnark_proof< other_curve< ppT >>> &  incoming_proofs 
)

◆ get_auxiliary_input()

template<typename ppT >
r1cs_auxiliary_input<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::get_auxiliary_input ( ) const

◆ get_circuit()

template<typename ppT >
r1cs_constraint_system<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::get_circuit ( ) const

◆ get_primary_input()

template<typename ppT >
r1cs_primary_input<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::get_primary_input ( ) const

◆ input_capacity_in_bits()

template<typename ppT >
static size_t libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::input_capacity_in_bits ( )
static

◆ input_size_in_bits()

template<typename ppT >
static size_t libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::input_size_in_bits ( )
static

◆ input_size_in_elts()

template<typename ppT >
static size_t libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::input_size_in_elts ( )
static

Member Data Documentation

◆ arity

template<typename ppT >
pb_variable<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::arity

Definition at line 78 of file sp_pcd_circuits.hpp.

◆ block_for_outgoing_message

template<typename ppT >
std::shared_ptr<block_variable<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::block_for_outgoing_message

Definition at line 58 of file sp_pcd_circuits.hpp.

◆ blocks_for_incoming_messages

template<typename ppT >
std::vector<block_variable<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::blocks_for_incoming_messages

Definition at line 61 of file sp_pcd_circuits.hpp.

◆ compliance_predicate

template<typename ppT >
r1cs_pcd_compliance_predicate<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::compliance_predicate

Definition at line 52 of file sp_pcd_circuits.hpp.

◆ compliance_predicate_as_gadget

template<typename ppT >
std::shared_ptr<gadget_from_r1cs<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::compliance_predicate_as_gadget

Definition at line 85 of file sp_pcd_circuits.hpp.

◆ cp_witness

template<typename ppT >
pb_variable_array<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::cp_witness

Definition at line 84 of file sp_pcd_circuits.hpp.

◆ hash_incoming_messages

template<typename ppT >
std::vector<CRH_with_field_out_gadget<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::hash_incoming_messages

Definition at line 68 of file sp_pcd_circuits.hpp.

◆ hash_outgoing_message

template<typename ppT >
std::shared_ptr<CRH_with_field_out_gadget<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::hash_outgoing_message

Definition at line 59 of file sp_pcd_circuits.hpp.

◆ incoming_message_payloads

template<typename ppT >
std::vector<pb_variable_array<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::incoming_message_payloads

Definition at line 80 of file sp_pcd_circuits.hpp.

◆ incoming_message_types

template<typename ppT >
std::vector<pb_variable<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::incoming_message_types

Definition at line 79 of file sp_pcd_circuits.hpp.

◆ incoming_message_vars

template<typename ppT >
std::vector<pb_variable_array<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::incoming_message_vars

Definition at line 81 of file sp_pcd_circuits.hpp.

◆ incoming_messages_bits

template<typename ppT >
std::vector<pb_variable_array<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::incoming_messages_bits

Definition at line 90 of file sp_pcd_circuits.hpp.

◆ local_data

template<typename ppT >
pb_variable_array<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::local_data

Definition at line 83 of file sp_pcd_circuits.hpp.

◆ outgoing_message_bits

template<typename ppT >
pb_variable_array<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::outgoing_message_bits

Definition at line 87 of file sp_pcd_circuits.hpp.

◆ outgoing_message_payload

template<typename ppT >
pb_variable_array<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::outgoing_message_payload

Definition at line 75 of file sp_pcd_circuits.hpp.

◆ outgoing_message_type

template<typename ppT >
pb_variable<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::outgoing_message_type

Definition at line 74 of file sp_pcd_circuits.hpp.

◆ outgoing_message_vars

template<typename ppT >
pb_variable_array<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::outgoing_message_vars

Definition at line 76 of file sp_pcd_circuits.hpp.

◆ padded_translation_step_vk_and_incoming_messages_digests

template<typename ppT >
std::vector<pb_variable_array<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::padded_translation_step_vk_and_incoming_messages_digests

Definition at line 97 of file sp_pcd_circuits.hpp.

◆ padded_translation_step_vk_and_outgoing_message_digest

template<typename ppT >
pb_variable_array<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::padded_translation_step_vk_and_outgoing_message_digest

Definition at line 95 of file sp_pcd_circuits.hpp.

◆ pb

Definition at line 54 of file sp_pcd_circuits.hpp.

◆ proof

template<typename ppT >
std::vector<r1cs_ppzksnark_proof_variable<ppT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::proof

Definition at line 100 of file sp_pcd_circuits.hpp.

◆ sp_compliance_step_pcd_circuit_input

template<typename ppT >
pb_variable_array<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::sp_compliance_step_pcd_circuit_input

Definition at line 93 of file sp_pcd_circuits.hpp.

◆ sp_translation_step_vk

template<typename ppT >
std::shared_ptr<r1cs_ppzksnark_verification_key_variable<ppT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::sp_translation_step_vk

Definition at line 71 of file sp_pcd_circuits.hpp.

◆ sp_translation_step_vk_and_incoming_message_payload_digest_bits

template<typename ppT >
std::vector<pb_variable_array<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::sp_translation_step_vk_and_incoming_message_payload_digest_bits

Definition at line 67 of file sp_pcd_circuits.hpp.

◆ sp_translation_step_vk_and_incoming_message_payload_digests

template<typename ppT >
std::vector<pb_variable_array<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::sp_translation_step_vk_and_incoming_message_payload_digests

Definition at line 63 of file sp_pcd_circuits.hpp.

◆ sp_translation_step_vk_bits

template<typename ppT >
pb_variable_array<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::sp_translation_step_vk_bits

Definition at line 72 of file sp_pcd_circuits.hpp.

◆ unpack_incoming_messages

template<typename ppT >
std::vector<multipacking_gadget<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::unpack_incoming_messages

Definition at line 91 of file sp_pcd_circuits.hpp.

◆ unpack_outgoing_message

template<typename ppT >
std::shared_ptr<multipacking_gadget<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::unpack_outgoing_message

Definition at line 88 of file sp_pcd_circuits.hpp.

◆ unpack_sp_translation_step_vk_and_incoming_message_payload_digests

template<typename ppT >
std::vector<multipacking_gadget<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::unpack_sp_translation_step_vk_and_incoming_message_payload_digests

Definition at line 65 of file sp_pcd_circuits.hpp.

◆ verification_result

template<typename ppT >
pb_variable<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::verification_result

Definition at line 101 of file sp_pcd_circuits.hpp.

◆ verifier_input

template<typename ppT >
std::vector<pb_variable_array<FieldT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::verifier_input

Definition at line 99 of file sp_pcd_circuits.hpp.

◆ verifiers

template<typename ppT >
std::vector<r1cs_ppzksnark_verifier_gadget<ppT> > libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::verifiers

Definition at line 102 of file sp_pcd_circuits.hpp.

◆ zero

template<typename ppT >
pb_variable<FieldT> libsnark::sp_compliance_step_pcd_circuit_maker< ppT >::zero

Definition at line 56 of file sp_pcd_circuits.hpp.


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