From bb8f388091cfc9c62cb84d6581ef5ca318b87c05 Mon Sep 17 00:00:00 2001 From: Robin Salen <30937548+Nashtare@users.noreply.github.com> Date: Wed, 21 Aug 2024 19:07:04 -0400 Subject: [PATCH] chore: remove compressed StarkProof variant (#1618) --- starky/src/get_challenges.rs | 108 ----------------------------------- starky/src/proof.rs | 32 +---------- 2 files changed, 1 insertion(+), 139 deletions(-) diff --git a/starky/src/get_challenges.rs b/starky/src/get_challenges.rs index e8904ffc..6e8f4bc7 100644 --- a/starky/src/get_challenges.rs +++ b/starky/src/get_challenges.rs @@ -308,111 +308,3 @@ impl StarkProofWithPublicInputsTarget { .get_challenges::(builder, challenger, challenges, ignore_trace_cap, config) } } - -// TODO: Deal with the compressed stuff. -// impl, C: GenericConfig, const D: usize> -// CompressedProofWithPublicInputs -// { -// /// Computes all Fiat-Shamir challenges used in the Plonk proof. -// pub(crate) fn get_challenges( -// &self, -// common_data: &CommonCircuitData, -// ) -> anyhow::Result> { -// let CompressedProof { -// wires_cap, -// plonk_zs_partial_products_cap, -// quotient_polys_cap, -// openings, -// opening_proof: -// CompressedFriProof { -// commit_phase_merkle_caps, -// final_poly, -// pow_witness, -// .. -// }, -// } = &self.proof; -// -// get_challenges( -// self.get_public_inputs_hash(), -// wires_cap, -// plonk_zs_partial_products_cap, -// quotient_polys_cap, -// openings, -// commit_phase_merkle_caps, -// final_poly, -// *pow_witness, -// common_data, -// ) -// } -// -// /// Computes all coset elements that can be inferred in the FRI reduction steps. -// pub(crate) fn get_inferred_elements( -// &self, -// challenges: &ProofChallenges, -// common_data: &CommonCircuitData, -// ) -> FriInferredElements { -// let ProofChallenges { -// plonk_zeta, -// fri_alpha, -// fri_betas, -// fri_query_indices, -// .. -// } = challenges; -// let mut fri_inferred_elements = Vec::new(); -// // Holds the indices that have already been seen at each reduction depth. -// let mut seen_indices_by_depth = -// vec![HashSet::new(); common_data.fri_params.reduction_arity_bits.len()]; -// let precomputed_reduced_evals = PrecomputedReducedOpenings::from_os_and_alpha( -// &self.proof.openings.to_fri_openings(), -// *fri_alpha, -// ); -// let log_n = common_data.degree_bits + common_data.config.fri_config.rate_bits; -// // Simulate the proof verification and collect the inferred elements. -// // The content of the loop is basically the same as the `fri_verifier_query_round` function. -// for &(mut x_index) in fri_query_indices { -// let mut subgroup_x = F::MULTIPLICATIVE_GROUP_GENERATOR -// * F::primitive_root_of_unity(log_n).exp_u64(reverse_bits(x_index, log_n) as u64); -// let mut old_eval = fri_combine_initial::( -// &common_data.get_fri_instance(*plonk_zeta), -// &self -// .proof -// .opening_proof -// .query_round_proofs -// .initial_trees_proofs[&x_index], -// *fri_alpha, -// subgroup_x, -// &precomputed_reduced_evals, -// &common_data.fri_params, -// ); -// for (i, &arity_bits) in common_data -// .fri_params -// .reduction_arity_bits -// .iter() -// .enumerate() -// { -// let coset_index = x_index >> arity_bits; -// if !seen_indices_by_depth[i].insert(coset_index) { -// // If this index has already been seen, we can skip the rest of the reductions. -// break; -// } -// fri_inferred_elements.push(old_eval); -// let arity = 1 << arity_bits; -// let mut evals = self.proof.opening_proof.query_round_proofs.steps[i][&coset_index] -// .evals -// .clone(); -// let x_index_within_coset = x_index & (arity - 1); -// evals.insert(x_index_within_coset, old_eval); -// old_eval = compute_evaluation( -// subgroup_x, -// x_index_within_coset, -// arity_bits, -// &evals, -// fri_betas[i], -// ); -// subgroup_x = subgroup_x.exp_power_of_2(arity_bits); -// x_index = coset_index; -// } -// } -// FriInferredElements(fri_inferred_elements) -// } -// } diff --git a/starky/src/proof.rs b/starky/src/proof.rs index d521be02..09d3822d 100644 --- a/starky/src/proof.rs +++ b/starky/src/proof.rs @@ -8,9 +8,7 @@ use alloc::{vec, vec::Vec}; use itertools::Itertools; use plonky2::field::extension::{Extendable, FieldExtension}; use plonky2::fri::oracle::PolynomialBatch; -use plonky2::fri::proof::{ - CompressedFriProof, FriChallenges, FriChallengesTarget, FriProof, FriProofTarget, -}; +use plonky2::fri::proof::{FriChallenges, FriChallengesTarget, FriProof, FriProofTarget}; use plonky2::fri::structure::{ FriOpeningBatch, FriOpeningBatchTarget, FriOpenings, FriOpeningsTarget, }; @@ -144,34 +142,6 @@ pub struct StarkProofWithPublicInputsTarget { pub public_inputs: Vec, } -/// A compressed proof format of a single STARK. -#[derive(Debug, Clone)] -pub struct CompressedStarkProof< - F: RichField + Extendable, - C: GenericConfig, - const D: usize, -> { - /// Merkle cap of LDEs of trace values. - pub trace_cap: MerkleCap, - /// Purported values of each polynomial at the challenge point. - pub openings: StarkOpeningSet, - /// A batch FRI argument for all openings. - pub opening_proof: CompressedFriProof, -} - -/// A compressed [`StarkProof`] format of a single STARK with its public inputs. -#[derive(Debug, Clone)] -pub struct CompressedStarkProofWithPublicInputs< - F: RichField + Extendable, - C: GenericConfig, - const D: usize, -> { - /// A compressed STARK proof. - pub proof: CompressedStarkProof, - /// Public inputs for this compressed STARK proof. - pub public_inputs: Vec, -} - /// A [`StarkProof`] along with metadata about the initial Fiat-Shamir state, which is used when /// creating a recursive wrapper proof around a STARK proof. #[derive(Debug, Clone)]