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

BLS signature v4 #91

Merged
merged 6 commits into from
Oct 26, 2020
Merged

BLS signature v4 #91

merged 6 commits into from
Oct 26, 2020

Conversation

mratsim
Copy link
Contributor

@mratsim mratsim commented Oct 26, 2020

This upgrades the repo to support the full BLS v04 signatures:

Specs

Public API changes

  • privToPub and secretToPublic out of place proc have been changed to publicFromSecret so that a boolean can be returned and catch invalid secret keys == 0.
  • The aggregate API now returns a boolean to indicate aggregating an empty openarray[Signature] instead of asserting.
    This addresses: [SEC] Infinity Public Key and Signature #76
    Note that we used to have 3 aggregate overloads for the following cases:
    • combine a valid signature with another valid signature
    • combine a valid signature with an array of valid signatures
    • combine an array of valid signatures.
      [SEC] Infinity Public Key and Signature #76 revealed that it wasn't clear that in the first 2 cases
      the aggregation precondition of having a non-empty aggregation was always true.
      This is now mentioned as a comment and the last overload has also been renamed aggregateAll and now has an in-place API + boolean.

Notable changes

A zero secret-key or public key is checked at deserialization (see supranational/blst#11) for discussion.
This slightly differ from KeyValidate in the spec which includes zero-key and subgroup check. (related #42)
The spec does mention that KeyValidate MAY be cached (see #90)

@mratsim mratsim merged commit 3878b9b into master Oct 26, 2020
@mratsim mratsim deleted the BLS-sig-v4 branch December 5, 2020 13:20
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.

1 participant