-
Notifications
You must be signed in to change notification settings - Fork 469
feat: implement BLS signature verification (minimal public key) #1473
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
Open
ivokub
wants to merge
135
commits into
master
Choose a base branch
from
feat/map_to_g2
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
revised G2.addUnified function based on the Brier and Joye algorithm
fixed G2.sgn0 function and associated unit tests for BLS12-381
release: v0.12.0 (#1399)
7866081
to
47cd263
Compare
@yelhousni - I think we're good with it. I have added compatibility tests with Ethereum BLS signature implementation. I think having signature generation in gnark-crypto is nice-to-have, but it requires a bit of thought how to implement nicely (with prehashed messages and configuration). And G1 variant doesn't seem to be much used, we can always add it if anyone asks, but there is lack of test vectors. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR implements a variant of BLS signature verification (minimal public key). For this, we have implemented also:
This PR takes #1447 and #1040 and Consensys/gnark-crypto#674, implementing Map/Hash to G2 over BLS12-381.
There is still some optimizations being done (bytes to emulated element conversion). But this is done during my refactor of #1489 later. And I'll then update the implementation here.
Thanks @weijiguo for the initial PR!
After this is merged, we can close #1040.
Type of change
How has this been tested?
How has this been benchmarked?
Checklist:
golangci-lint
does not output errors locally