Skip to content

feat: map to g2 on BLS12-381 #1477

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

Merged
merged 67 commits into from
Apr 16, 2025
Merged

feat: map to g2 on BLS12-381 #1477

merged 67 commits into from
Apr 16, 2025

Conversation

ivokub
Copy link
Collaborator

@ivokub ivokub commented Apr 14, 2025

Description

This commit cherry-picks only map-to-g2 from #1473. Depends on #1447.

Hash-to-G2 will be worked on in #1473 as requires some modification in other gadgets which could be pushed separately.

Type of change

  • New feature (non-breaking change which adds functionality)

How has this been tested?

  • TestG2Isogeny
  • TestClearCofactorTestSolve
  • TestMapToCurve2
  • TestMapToG2

Checklist:

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • I have added tests that prove my fix is effective or that my feature works
  • I did not modify files generated from templates
  • golangci-lint does not output errors locally
  • New and existing unit tests pass locally with my changes
  • Any dependent changes have been merged and published in downstream modules

@ivokub ivokub self-assigned this Apr 14, 2025
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 34 out of 36 changed files in this pull request and generated no comments.

Files not reviewed (2)
  • go.mod: Language not supported
  • internal/stats/latest_stats.csv: Language not supported
Comments suppressed due to low confidence (3)

std/algebra/emulated/sw_bls12381/g2_test.go:227

  • Verify that the scalar field used in tests (ecc.BN254.ScalarField()) is appropriate for BLS12-381 operations, as an inadvertent mismatch might lead to subtle errors during verification.
err := test.IsSolved(&MultiScalarMulTest{}, &assignment, ecc.BN254.ScalarField())

std/algebra/emulated/sw_bls12381/g1.go:190

  • [nitpick] Consider clarifying the subgroup order check within AssertIsOnG1 with additional inline comments to improve maintainability and ease future reviews.
func (g1 *G1) AssertIsOnG1(P *G1Affine) {

std/algebra/emulated/sw_bls12381/hints.go:345

  • [nitpick] Consider clarifying the function comment regarding the expected order of nativeOutputs in g1SqrtRatioHint to ensure maintainers understand the intended behavior.
func g1SqrtRatioHint(nativeMod *big.Int, nativeInputs, nativeOutputs []*big.Int) error {

@ivokub ivokub requested a review from ThomasPiellard April 16, 2025 09:42
@ivokub ivokub merged commit 117c462 into master Apr 16, 2025
5 checks passed
@ivokub ivokub deleted the feat/clean-map_to_g2 branch April 16, 2025 10:07
AlexandreBelling pushed a commit that referenced this pull request Apr 30, 2025
Co-authored-by: Youssef El Housni <[email protected]>
Co-authored-by: Thomas Piellard <[email protected]>
Co-authored-by: Arya Tabaie <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants