Skip to main content

StarkGenericConfig

Trait StarkGenericConfig 

Source
pub trait StarkGenericConfig: Clone {
    type Pcs: Pcs<Self::Challenge, Self::Challenger>;
    type Challenge: ExtensionField<<<Self::Pcs as Pcs<Self::Challenge, Self::Challenger>>::Domain as PolynomialSpace>::Val>;
    type Challenger: FieldChallenger<<<Self::Pcs as Pcs<Self::Challenge, Self::Challenger>>::Domain as PolynomialSpace>::Val> + CanObserve<<Self::Pcs as Pcs<Self::Challenge, Self::Challenger>>::Commitment> + CanSample<Self::Challenge>;

    // Required methods
    fn pcs(&self) -> &Self::Pcs;
    fn initialise_challenger(&self) -> Self::Challenger;

    // Provided method
    fn is_zk(&self) -> usize { ... }
}

Required Associated Types§

Source

type Pcs: Pcs<Self::Challenge, Self::Challenger>

The Pcs implementation used to commit to trace polynomials.

Source

type Challenge: ExtensionField<<<Self::Pcs as Pcs<Self::Challenge, Self::Challenger>>::Domain as PolynomialSpace>::Val>

The ExtensionField from which most random challenges are drawn.

Source

type Challenger: FieldChallenger<<<Self::Pcs as Pcs<Self::Challenge, Self::Challenger>>::Domain as PolynomialSpace>::Val> + CanObserve<<Self::Pcs as Pcs<Self::Challenge, Self::Challenger>>::Commitment> + CanSample<Self::Challenge>

The FieldChallenger (Fiat-Shamir) implementation used.

Required Methods§

Source

fn pcs(&self) -> &Self::Pcs

Get a reference to the Pcs used by this proof configuration.

Source

fn initialise_challenger(&self) -> Self::Challenger

Get an initialisation of the FieldChallenger used by this proof configuration.

Provided Methods§

Source

fn is_zk(&self) -> usize

Returns 1 if the Pcs is zero-knowledge, 0 otherwise.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<Pcs, Challenge, Challenger> StarkGenericConfig for StarkConfig<Pcs, Challenge, Challenger>
where Challenge: ExtensionField<<<Pcs as Pcs<Challenge, Challenger>>::Domain as PolynomialSpace>::Val> + Clone, Pcs: Pcs<Challenge, Challenger> + Clone, Challenger: FieldChallenger<<<Pcs as Pcs<Challenge, Challenger>>::Domain as PolynomialSpace>::Val> + CanObserve<<Pcs as Pcs<Challenge, Challenger>>::Commitment> + CanSample<Challenge> + Clone,

Source§

type Pcs = Pcs

Source§

type Challenge = Challenge

Source§

type Challenger = Challenger