Use `group::Wnaf` to accelerate `sinsemilla::CommitDomain::commit`

Performance improvements:
- Commit^ivk: ~31%
- NoteCommit: ~22%
This commit is contained in:
Jack Grigg 2021-08-12 15:20:16 +01:00
parent 5f0c3b3585
commit 6197a0ef62
1 changed files with 2 additions and 2 deletions

View File

@ -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<Item = bool>,
r: &pallas::Scalar,
) -> CtOption<pallas::Point> {
(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].