From 79e1e8dbb87f682f02362bc42c2a6b05bd64b0b0 Mon Sep 17 00:00:00 2001 From: iquerejeta Date: Wed, 19 Feb 2025 10:41:30 +0100 Subject: [PATCH 1/2] Remove selectors (leftover) and make byte len fns public. --- src/plonk/keygen.rs | 1 - src/plonk/mod.rs | 23 +++-------------------- 2 files changed, 3 insertions(+), 21 deletions(-) diff --git a/src/plonk/keygen.rs b/src/plonk/keygen.rs index ea74ad22d..facf9285b 100644 --- a/src/plonk/keygen.rs +++ b/src/plonk/keygen.rs @@ -333,7 +333,6 @@ where fixed_commitments, permutation_vk, cs, - assembly.selectors, )) } diff --git a/src/plonk/mod.rs b/src/plonk/mod.rs index d2a78ae42..a207773f3 100644 --- a/src/plonk/mod.rs +++ b/src/plonk/mod.rs @@ -54,7 +54,6 @@ pub struct VerifyingKey> { cs_degree: usize, /// The representative of this `VerifyingKey` in transcripts. transcript_repr: F, - selectors: Vec>, } // Current version of the VK @@ -91,13 +90,6 @@ where } self.permutation.write(writer, format)?; - // write self.selectors - for selector in &self.selectors { - // since `selector` is filled with `bool`, we pack them 8 at a time into bytes and then write - for bits in selector.chunks(8) { - writer.write_all(&[crate::utils::helpers::pack(bits)])?; - } - } Ok(()) } @@ -150,7 +142,6 @@ where let permutation = permutation::VerifyingKey::read(reader, &cs.permutation, format)?; - let selectors = vec![]; // we still need to replace selectors with fixed Expressions in `cs` let fake_selectors = vec![vec![]; cs.num_selectors]; let (cs, _) = cs.directly_convert_selectors_to_fixed(fake_selectors); @@ -160,7 +151,6 @@ where fixed_commitments, permutation, cs, - selectors, )) } @@ -187,15 +177,10 @@ where } impl, CS: PolynomialCommitmentScheme> VerifyingKey { - fn bytes_length(&self, format: SerdeFormat) -> usize { + /// Return the bytes_length of a VerifyingKey + pub fn bytes_length(&self, format: SerdeFormat) -> usize { 10 + (self.fixed_commitments.len() * byte_length::(format)) + self.permutation.bytes_length(format) - + self.selectors.len() - * (self - .selectors - .first() - .map(|selector| (selector.len() + 7) / 8) - .unwrap_or(0)) } fn from_parts( @@ -203,7 +188,6 @@ impl, CS: PolynomialCommitmentScheme> VerifyingK fixed_commitments: Vec, permutation: permutation::VerifyingKey, cs: ConstraintSystem, - selectors: Vec>, ) -> Self where F: FromUniformBytes<64>, @@ -219,7 +203,6 @@ impl, CS: PolynomialCommitmentScheme> VerifyingK cs_degree, // Temporary, this is not pinned. transcript_repr: F::ZERO, - selectors, }; let mut hasher = Blake2bParams::new() @@ -315,7 +298,7 @@ where } /// Gets the total number of bytes in the serialization of `self` - fn bytes_length(&self, format: SerdeFormat) -> usize { + pub fn bytes_length(&self, format: SerdeFormat) -> usize { self.vk.bytes_length(format) + 12 // bytes used for encoding the length(u32) of "l0", "l_last" & "l_active_row" polys + polynomial_slice_byte_length(&self.fixed_values) From 8265e9bdf0962288a902d26a8e245bd99996e659 Mon Sep 17 00:00:00 2001 From: iquerejeta Date: Wed, 19 Feb 2025 12:47:19 +0100 Subject: [PATCH 2/2] Nits --- src/plonk/mod.rs | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/plonk/mod.rs b/src/plonk/mod.rs index a207773f3..79267e3cb 100644 --- a/src/plonk/mod.rs +++ b/src/plonk/mod.rs @@ -146,12 +146,7 @@ where let fake_selectors = vec![vec![]; cs.num_selectors]; let (cs, _) = cs.directly_convert_selectors_to_fixed(fake_selectors); - Ok(Self::from_parts( - domain, - fixed_commitments, - permutation, - cs, - )) + Ok(Self::from_parts(domain, fixed_commitments, permutation, cs)) } /// Writes a verifying key to a vector of bytes using [`Self::write`].