Skip to main content

OpeningProver

Trait OpeningProver 

Source
pub trait OpeningProver<PB: ProverBackend, TS> {
    type OpeningProof: Clone + Send + Sync + Serialize + DeserializeOwned;
    type OpeningPoints;
    type Error: Debug;

    // Required method
    fn prove_openings(
        &self,
        transcript: &mut TS,
        mpk: &DeviceMultiStarkProvingKey<PB>,
        ctx: ProvingContext<PB>,
        common_main_pcs_data: PB::PcsData,
        points: Self::OpeningPoints,
    ) -> Result<Self::OpeningProof, Self::Error>;
}
Expand description

This trait is responsible for proving the evaluation claims of a collection of polynomials at a collection of points. The opening point may be the same across polynomials. The polynomials may be defined over different domains and are hence of “mixed” nature. The polynomials are already committed and provided in their committed form.

Required Associated Types§

Source

type OpeningProof: Clone + Send + Sync + Serialize + DeserializeOwned

PCS opening proof on host. This should not be a reference.

Source

type OpeningPoints

Source

type Error: Debug

Computes the opening proof. The common_main_pcs_data is the PcsData for the collection of common main trace matrices. It is owned by the function and may be mutated. The pre_cached_pcs_data_per_commit is the PcsData for the preprocessed and cached trace matrices. These are specified by their PcsData per commitment.

Required Methods§

Source

fn prove_openings( &self, transcript: &mut TS, mpk: &DeviceMultiStarkProvingKey<PB>, ctx: ProvingContext<PB>, common_main_pcs_data: PB::PcsData, points: Self::OpeningPoints, ) -> Result<Self::OpeningProof, Self::Error>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl<SC, TS> OpeningProver<CpuColMajorBackend<SC>, TS> for ReferenceDevice<SC>
where SC: StarkProtocolConfig, SC::F: Ord, SC::EF: TwoAdicField + ExtensionField<SC::F> + Ord, TS: FiatShamirTranscript<SC>,