diff --git a/src/plonk.rs b/src/plonk.rs index 1372157..3ba41ae 100644 --- a/src/plonk.rs +++ b/src/plonk.rs @@ -29,6 +29,7 @@ use domain::EvaluationDomain; #[derive(Debug)] pub struct SRS { domain: EvaluationDomain, + deltaomega: Vec>, fixed_commitments: Vec, fixed_polys: Vec>, fixed_cosets: Vec>, diff --git a/src/plonk/prover.rs b/src/plonk/prover.rs index 9a169ed..86c7bde 100644 --- a/src/plonk/prover.rs +++ b/src/plonk/prover.rs @@ -126,33 +126,6 @@ impl Proof { // Sample x_1 challenge let x_1: C::Scalar = get_challenge_scalar(Challenge(transcript.squeeze().get_lower_128())); - // TODO: maybe put this in SRS? - // Compute [omega^0, omega^1, ..., omega^{params.n - 1}] - let mut omega_powers = Vec::with_capacity(params.n as usize); - { - let mut cur = C::Scalar::one(); - for _ in 0..params.n { - omega_powers.push(cur); - cur *= &srs.domain.get_omega(); - } - } - - // Compute [omega_powers * \delta^0, omega_powers * \delta^1, ..., omega_powers * \delta^m] - let mut deltaomega = Vec::with_capacity(largest_permutation_length); - { - let mut cur = C::Scalar::one(); - for _ in 0..largest_permutation_length { - let mut omega_powers = omega_powers.clone(); - for o in &mut omega_powers { - *o *= &cur; - } - - deltaomega.push(omega_powers); - - cur *= &C::Scalar::DELTA; - } - } - // Compute permutation product polynomial commitment let mut permutation_product_commitments = vec![]; let mut permutation_product_blinds = vec![]; @@ -194,7 +167,7 @@ impl Proof { for ((wire, modified_advice), deltaomega) in wires .iter() .zip(modified_advice.iter_mut()) - .zip(deltaomega.iter()) + .zip(srs.deltaomega.iter()) { // For each row i, we compute // p_j(\omega^i) + \delta^j \omega^i \beta + \gamma diff --git a/src/plonk/srs.rs b/src/plonk/srs.rs index 43b2199..ff26ba4 100644 --- a/src/plonk/srs.rs +++ b/src/plonk/srs.rs @@ -208,6 +208,7 @@ impl SRS { Ok(SRS { domain, + deltaomega, fixed_commitments, fixed_polys, fixed_cosets,