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§
Sourcetype OpeningProof: Clone + Send + Sync + Serialize + DeserializeOwned
type OpeningProof: Clone + Send + Sync + Serialize + DeserializeOwned
PCS opening proof on host. This should not be a reference.
type OpeningPoints
Sourcetype Error: Debug
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§
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".