From 8a9f8218e9318dcb832236cf77444e171a7a57fd Mon Sep 17 00:00:00 2001 From: therealyingtong Date: Fri, 9 Jul 2021 10:23:40 +0800 Subject: [PATCH] mul_fixed::base_field_elem: Remove double-enable of base_field_fixed_mul. Co-authored-by: Jack Grigg --- src/circuit/gadget/ecc/chip/mul.rs | 3 ++- src/circuit/gadget/ecc/chip/mul_fixed/base_field_elem.rs | 9 +++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/circuit/gadget/ecc/chip/mul.rs b/src/circuit/gadget/ecc/chip/mul.rs index f6e59db7..c54d38bb 100644 --- a/src/circuit/gadget/ecc/chip/mul.rs +++ b/src/circuit/gadget/ecc/chip/mul.rs @@ -464,7 +464,8 @@ pub mod tests { scalar_val: pallas::Base, result: Point, ) -> Result<(), Error> { - // Case scalar from base field into scalar field + // Move scalar from base field into scalar field (which always fits + // for Pallas). let scalar = pallas::Scalar::from_bytes(&scalar_val.to_bytes()).unwrap(); let expected = Point::new( chip, diff --git a/src/circuit/gadget/ecc/chip/mul_fixed/base_field_elem.rs b/src/circuit/gadget/ecc/chip/mul_fixed/base_field_elem.rs index 2183ca1c..5f7579b7 100644 --- a/src/circuit/gadget/ecc/chip/mul_fixed/base_field_elem.rs +++ b/src/circuit/gadget/ecc/chip/mul_fixed/base_field_elem.rs @@ -1,4 +1,5 @@ use super::super::{EccBaseFieldElemFixed, EccConfig, EccPoint, OrchardFixedBasesFull}; +use super::H_BASE; use crate::{ circuit::gadget::utilities::{ @@ -167,7 +168,7 @@ impl Config { z_44_alpha.clone() - z_84_alpha * two_pow_120 }; // a_43 = z_43 - (2^3)z_44 - let a_43 = z_43_alpha - z_44_alpha * pallas::Base::from_u64(1 << 3); + let a_43 = z_43_alpha - z_44_alpha * *H_BASE; std::iter::empty() .chain(Some(("MSB = 1 => alpha_1 = 0", alpha_2.clone() * alpha_1))) @@ -456,10 +457,6 @@ impl Config { &self.super_config.perm, )?; - for idx in 0..words.len() { - self.base_field_fixed_mul.enable(region, offset + idx)?; - } - let offset = offset + 1; let eight_inv = pallas::Base::TWO_INV.square() * pallas::Base::TWO_INV; @@ -581,7 +578,7 @@ pub mod tests { scalar_val: pallas::Base, result: Point, ) -> Result<(), Error> { - // Case scalar from base field into scalar field + // Move scalar from base field into scalar field (which always fits for Pallas). let scalar = pallas::Scalar::from_bytes(&scalar_val.to_bytes()).unwrap(); let expected = Point::new( chip,