Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cached group checks #99

Merged
merged 1 commit into from
Dec 5, 2020
Merged

Cached group checks #99

merged 1 commit into from
Dec 5, 2020

Conversation

mratsim
Copy link
Contributor

@mratsim mratsim commented Dec 5, 2020

This uses the new primitives mentioned in #92 for cached group checks.

Now we check at deserialization:

  • if a pubkey is infinity or not in the subgroup
  • if a signature is not in the subgroup (we may deserialize empty signatures)

Instead of checking that at verification time. Since public keys are reused multiple time this is a significant performance improvement.

New perf
image

In #97 we had
image

So we cumulated a total of (4025212-4588537)/(4588537) = 12.2% perf improvement compared to the current BLST in Nimbus.

Closes #42 as well

@mratsim mratsim closed this Dec 5, 2020
@mratsim mratsim force-pushed the cached-group-checks branch from fe28063 to c925b0c Compare December 5, 2020 15:39
@mratsim
Copy link
Contributor Author

mratsim commented Dec 5, 2020

okay so I broke the PR ... I didn't close it ... nor did I merge it

@mratsim mratsim reopened this Dec 5, 2020
@mratsim mratsim merged commit 4a0f354 into master Dec 5, 2020
@mratsim mratsim deleted the cached-group-checks branch December 9, 2020 15:45
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 KeyValidate + Sanity checks
1 participant