FiloSottile / FiloSottile/edwards25519
Add function analogous to ScalarBaseMult for any Point
- Dominant language
- Go
- Stars
- 188
- Forks
- 39
- PR merge metrics
- No merged PRs in 30d
Description
ScalarBaseMult uses a precomputed table, basepointTable, to speed up multiplications. It precomputes the table once when it is called the first time. Since multiplying the base point by a scalar is so frequent, it makes sense to perform this optimization.
There are other projects out there which frequently reuse other points. Monero is an example. In addition to the base point, it uses H to make Pedersen commitments. Upcoming protocol changes use even more such points.
It would be very helpful if a generic version of ScalarBaseMult existed. Perhaps it could be called ScalarMultPrecompute.
How I see this function working, is it would take a Point and a Scalar as its arguments. It would have a map of all previously precomputed points. It would check if the Point had been already precomputed and if not it would precompute it and add it to the map.
I use your library in a project of mine. While I have been able to do many things merely importing your project (and not forking it), this is one thing I cannot do (without forking it).
I would greatly prefer not to fork anything so fundamental as an ed25519 library.
Contributor guide
Assessment
This issue has not been assessed yet.