Skip to content

Arithmic/streaming #638

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 63 commits into
base: main
Choose a base branch
from
Open

Conversation

arithmic-ASHISH
Copy link

@arithmic-ASHISH arithmic-ASHISH commented Apr 9, 2025

This PR implements "oracles" to stream the jolt polynomials and Az, Bz, Cz (for uniform Spartan used in Jolt). It also has an implementation of a streaming sum-check prover

Copy link
Collaborator

@moodlezoup moodlezoup left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: s/Oracle/WitnessStream/g

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delete or add to .gitignore

Comment on lines 668 to 679

// pub fn streaming_compute_spartan_Az_Bz_Cz(
// &self,
// flattened_polynomials: &[&[F]], // N variables of (S steps)
// ) -> SpartanInterleavedPolynomial<F> {
// SpartanInterleavedPolynomial::new(
// &self.uniform_builder.constraints,
// &self.offset_equality_constraints,
// flattened_polynomials,
// self.padded_rows_per_step(),
// )
// }
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delete

Comment on lines 15 to 23
pub struct StreamingEqPolynomial<F> {
r: Vec<F>,
num_vars: usize,
ratios: Vec<F>,
idx: usize,
prev_eval: F,
scaling_factor: Option<F>,
}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Since we consider square root space acceptable, let's use a technique similar to SplitEqPolynomial instead of this log-space variant.


let mut witness_eval_for_final_eval = vec![vec![F::zero(); 2]; num_polys];
let num_shards = (1 << num_rounds) / shard_length;
for i in 0..num_rounds {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit:

Suggested change
for i in 0..num_rounds {
for round in 0..num_rounds {

Comment on lines 489 to 490

// pub type StreamingJoltPolynomials<F: JoltField> = JoltStuff<StreamingPolynomial<JoltTraceStep<JoltInstructionSet>, F>>;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: delete

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants