Skip to content

sgns::GeniusProver

Prover class of SuperGenius.

#include <GeniusProver.hpp>

Public Classes

Name
struct GeniusProof

Public Types

Name
enum class ProverError
using crypto3::zk::snark::placeholder_proof< BlueprintFieldType, PlaceholderParams > ProofSnarkType
using crypto3::marshalling::types::placeholder_proof< nil::marshalling::field_type< ProverEndianess >, ProofSnarkType > ProofType
using crypto3::marshalling::types::plonk_constraint_system< nil::marshalling::field_type< ProverEndianess >, ConstraintSystemType > ConstraintMarshallingType
using crypto3::marshalling::types::plonk_assignment_table< nil::marshalling::field_type< ProverEndianess >, AssignmentTableType > PlonkMarshalledTableType
using std::vector< BlueprintFieldType::value_type > ParameterType

Public Functions

Name
GeniusProver()
Constructs a GeniusProver with default settings.
outcome::result< GeniusProof > CreateProof(const GeniusAssigner::AssignerOutput & assigner_outputs) const
outcome::result< GeniusProof > CreateProof(const std::string & circuit_file, const std::string & assignment_table_file) const
bool WriteProofToFile(const ProofType & proof, const std::string & path) const
std::vector< uint8_t > WriteProofToVector(const ProofType & proof) const
bool VerifyProof(const GeniusProof & proof)
bool VerifyProof(const ProofType & proof, const GeniusAssigner::AssignerOutput & assigner_outputs)
bool VerifyProof(const ProofSnarkType & proof, const PublicPreprocessedData & public_data, const TableDescriptionType & desc, const ConstraintSystemType & constrains_sys, const LpcScheme & scheme, std::vector< ParameterType > pub_parameters)

Public Types Documentation

enum ProverError

Enumerator Value Description
INVALID_PROOF_GENERATED 0
TABLE_PATH_ERROR
CIRCUIT_PATH_ERROR
PROOF_PATH_ERROR
EMPTY_PROOF

using ProofSnarkType

using sgns::GeniusProver::ProofSnarkType = crypto3::zk::snark::placeholder_proof<BlueprintFieldType, PlaceholderParams>;

using ProofType

using sgns::GeniusProver::ProofType = crypto3::marshalling::types::placeholder_proof<nil::marshalling::field_type<ProverEndianess>,
                                                                        ProofSnarkType>;

using ConstraintMarshallingType

using sgns::GeniusProver::ConstraintMarshallingType = 
crypto3::marshalling::types::plonk_constraint_system<nil::marshalling::field_type<ProverEndianess>,
                                                     ConstraintSystemType>;

using PlonkMarshalledTableType

using sgns::GeniusProver::PlonkMarshalledTableType = 
crypto3::marshalling::types::plonk_assignment_table<nil::marshalling::field_type<ProverEndianess>,
                                                    AssignmentTableType>;

using ParameterType

using sgns::GeniusProver::ParameterType = std::vector<BlueprintFieldType::value_type>;

Public Functions Documentation

function GeniusProver

inline GeniusProver()

Constructs a GeniusProver with default settings.

function CreateProof

outcome::result< GeniusProof > CreateProof(
    const GeniusAssigner::AssignerOutput & assigner_outputs
) const

function CreateProof

outcome::result< GeniusProof > CreateProof(
    const std::string & circuit_file,
    const std::string & assignment_table_file
) const

function WriteProofToFile

bool WriteProofToFile(
    const ProofType & proof,
    const std::string & path
) const

function WriteProofToVector

std::vector< uint8_t > WriteProofToVector(
    const ProofType & proof
) const

function VerifyProof

static bool VerifyProof(
    const GeniusProof & proof
)

function VerifyProof

static bool VerifyProof(
    const ProofType & proof,
    const GeniusAssigner::AssignerOutput & assigner_outputs
)

function VerifyProof

static bool VerifyProof(
    const ProofSnarkType & proof,
    const PublicPreprocessedData & public_data,
    const TableDescriptionType & desc,
    const ConstraintSystemType & constrains_sys,
    const LpcScheme & scheme,
    std::vector< ParameterType > pub_parameters
)

Updated on 2026-03-04 at 13:10:43 -0800