From 6197a0ef625f51a489f18104769517c9bf71235d Mon Sep 17 00:00:00 2001 From: Jack Grigg Date: Thu, 12 Aug 2021 15:20:16 +0100 Subject: [PATCH] Use `group::Wnaf` to accelerate `sinsemilla::CommitDomain::commit` Performance improvements: - Commit^ivk: ~31% - NoteCommit: ~22% --- src/primitives/sinsemilla.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/primitives/sinsemilla.rs b/src/primitives/sinsemilla.rs index 80d59ac7..7a7ec162 100644 --- a/src/primitives/sinsemilla.rs +++ b/src/primitives/sinsemilla.rs @@ -1,6 +1,6 @@ //! The Sinsemilla hash function and commitment scheme. -use group::prime::PrimeCurveAffine; +use group::{prime::PrimeCurveAffine, Wnaf}; use halo2::arithmetic::{CurveAffine, CurveExt}; use pasta_curves::pallas; use subtle::CtOption; @@ -174,7 +174,7 @@ impl CommitDomain { msg: impl Iterator, r: &pallas::Scalar, ) -> CtOption { - (self.M.hash_to_point_inner(msg) + self.R * r).into() + (self.M.hash_to_point_inner(msg) + Wnaf::new().scalar(r).base(self.R)).into() } /// $\mathsf{SinsemillaShortCommit}$ from [ยง 5.4.8.4][concretesinsemillacommit].