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

Add support for BLS12-381 #4036

Closed
jannotti opened this issue May 24, 2022 · 2 comments
Closed

Add support for BLS12-381 #4036

jannotti opened this issue May 24, 2022 · 2 comments
Labels
new-feature-request Feature request that needs triage Team Scytale

Comments

@jannotti
Copy link
Contributor

jannotti commented May 24, 2022

Tentative support for bn256 was recently added in #4013 . BLS12-381 should also be supported. Further, there should be support for (at least) the nine opcodes of https://eips.ethereum.org/EIPS/eip-2537 rather than just the three done for bn256.

The extra 6 opcodes from eip 2537 ought to be done bn256 too, just for parity.

There is an additional opcode beyond EIP 2537 that is also likely to be valuable. @fabrice102 can probably remember what it is an comment.

Implementation should be done with gnark-crypto the same library used for bn256, which is in the process of undergoing audit.

@jannotti jannotti added new-feature-request Feature request that needs triage Team Scytale labels May 24, 2022
@algorand algorand deleted a comment May 29, 2022
@fabrice102
Copy link
Contributor

We were thinking whether we want to include operations in GT.

One main drawback of including such operations is that it forces to select a representation of GT and prevents any easy change. In addition, it would mean that the product of pairing operation need not checking equality to 1 but actually returning the value of the pairing.
In Groth16, multiplication in GT would remove the need of one pairing. It is unclear how much of a benefit it is in practice, since pairings are amortized.

Another question is whether to explicitly provide scalar group operations. Those operations can easily be done with current opcode (b+, b*, b%) but it may be cleaner to have explicit opcode for those.

@jannotti
Copy link
Contributor Author

jannotti commented Oct 7, 2023

This is merged (though still in vFuture)

@jannotti jannotti closed this as completed Oct 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new-feature-request Feature request that needs triage Team Scytale
Projects
None yet
Development

No branches or pull requests

4 participants
@jannotti @fabrice102 @iten-alg and others