Skip to content

Switch to Pippenger MSM#23

Merged
tarakby merged 6 commits into
mainfrom
tarak/MSM
Mar 25, 2025
Merged

Switch to Pippenger MSM#23
tarakby merged 6 commits into
mainfrom
tarak/MSM

Conversation

@tarakby

@tarakby tarakby commented Mar 20, 2025

Copy link
Copy Markdown
Collaborator

closes #17
Use Pippenger multi scalar multiplication for E1 points for a faster threshold signature reconstruction (40-50% faster depending on the threshold value).

Example of BenchmarkSignatureReconstruction with a threshold of 40 (on an apple M3 arm64):

Naive MSM:

BenchmarkSignatureReconstruction-8           412           2855833 ns/op

Pippenger MSM:

BenchmarkSignatureReconstruction-8           825           1495744 ns/op

Note: computing E2 public keys from the verification vector in Feldman VSS was not updated to use Pippenger MSM in E2. The current method was compared in timing against Pippenger and turns out to be faster. The current method leverages the polynomial particular case where the degree can be incrementally computed. It also takes advantage of the polynomial input being a small scalar (less than 8 bits).

Comment thread bls12381_utils.c Outdated
Base automatically changed from tarak/update-blst to main March 20, 2025 22:53
@tarakby tarakby merged commit 9c466b7 into main Mar 25, 2025
@tarakby tarakby deleted the tarak/MSM branch March 25, 2025 18:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

add Pippenger's multi scalar multiplication

3 participants