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

core/vm, crypto/bls12381, params: add bls12-381 elliptic curve precom… #218

Closed
wants to merge 11 commits into from

Conversation

MatusKysel
Copy link
Contributor

…piles (#21018)

  • crypto: add bls12-381 elliptic curve wrapper

  • params: add bls12-381 precompile gas parameters

  • core/vm: add bls12-381 precompiles

  • core/vm: add bls12-381 precompile tests

  • go.mod, go.sum: use latest bls12381 lib

  • core/vm: move point encode/decode functions to base library

  • crypto/bls12381: introduce bls12-381 library init function

  • crypto/bls12381: import bls12381 elliptic curve implementation

  • go.mod, go.sum: remove bls12-381 library

  • remove unsued frobenious coeffs

supress warning for inp that used in asm

  • add mappings tests for zero inputs

fix swu g2 minus z inverse constant

  • crypto/bls12381: fix typo

  • crypto/bls12381: better comments for bls12381 constants

  • crypto/bls12381: swu, use single conditional for e2

  • crypto/bls12381: utils, delete empty line

  • crypto/bls12381: utils, use FromHex for string to big

  • crypto/bls12381: g1, g2, strict length check for FromBytes

  • crypto/bls12381: field_element, comparision changes

  • crypto/bls12381: change swu, isogeny constants with hex values

  • core/vm: fix point multiplication comments

  • core/vm: fix multiexp gas calculation and lookup for g1 and g2

  • core/vm: simpler imput length check for multiexp and pairing precompiles

  • core/vm: rm empty multiexp result declarations

  • crypto/bls12381: remove modulus type definition

  • crypto/bls12381: use proper init function

  • crypto/bls12381: get rid of new lines at fatal desciprtions

  • crypto/bls12-381: fix no-adx assembly multiplication

  • crypto/bls12-381: remove old config function

  • crypto/bls12381: update multiplication backend

this commit changes mul backend to 6limb eip1962 backend

mul assign operations are dropped

  • core/vm/contracts_tests: externalize test vectors for precompiles

  • core/vm/contracts_test: externalize failure-cases for precompiles

  • core/vm: linting

  • go.mod: tiny up sum file

  • core/vm: fix goimports linter issues

  • crypto/bls12381: build tags for plain ASM or ADX implementation

@MatusKysel MatusKysel requested a review from kstdl January 17, 2024 13:23
MatusKysel and others added 2 commits March 18, 2024 09:06
…piles (#21018)

* crypto: add bls12-381 elliptic curve wrapper

* params: add bls12-381 precompile gas parameters

* core/vm: add bls12-381 precompiles

* core/vm: add bls12-381 precompile tests

* go.mod, go.sum: use latest bls12381 lib

* core/vm: move point encode/decode functions to base library

* crypto/bls12381: introduce bls12-381 library init function

* crypto/bls12381: import bls12381 elliptic curve implementation

* go.mod, go.sum: remove bls12-381 library

* remove unsued frobenious coeffs

supress warning for inp that used in asm

* add mappings tests for zero inputs

fix swu g2 minus z inverse constant

* crypto/bls12381: fix typo

* crypto/bls12381: better comments for bls12381 constants

* crypto/bls12381: swu, use single conditional for e2

* crypto/bls12381: utils, delete empty line

* crypto/bls12381: utils, use FromHex for string to big

* crypto/bls12381: g1, g2, strict length check for FromBytes

* crypto/bls12381: field_element, comparision changes

* crypto/bls12381: change swu, isogeny constants with hex values

* core/vm: fix point multiplication comments

* core/vm: fix multiexp gas calculation and lookup for g1 and g2

* core/vm: simpler imput length check for multiexp and pairing precompiles

* core/vm: rm empty multiexp result declarations

* crypto/bls12381: remove modulus type definition

* crypto/bls12381: use proper init function

* crypto/bls12381: get rid of new lines at fatal desciprtions

* crypto/bls12-381: fix no-adx assembly multiplication

* crypto/bls12-381: remove old config function

* crypto/bls12381: update multiplication backend

this commit changes mul backend to 6limb eip1962 backend

mul assign operations are dropped

* core/vm/contracts_tests: externalize test vectors for precompiles

* core/vm/contracts_test: externalize failure-cases for precompiles

* core/vm: linting

* go.mod: tiny up sum file

* core/vm: fix goimports linter issues

* crypto/bls12381: build tags for plain ASM or ADX implementation

Co-authored-by: Martin Holst Swende <[email protected]>
Co-authored-by: Péter Szilágyi <[email protected]>
@JakubFornadel
Copy link
Contributor

@MatusKysel we can close this PR as I based ficus_hf changes on this branch #232

kstdl and others added 3 commits April 30, 2024 22:25
…#29441)

This PR updates the bls contracts from our internal implementation which is an unmaintained fork of the kilic library to the gnark-crypto library that is actively maintained by consensys.

It also updates the gas-costs according to the EIP
@MatusKysel MatusKysel changed the base branch from develop to ficus_hf May 2, 2024 10:52
@MatusKysel MatusKysel changed the base branch from ficus_hf to master May 2, 2024 11:04
@MatusKysel MatusKysel closed this May 2, 2024
@MatusKysel MatusKysel deleted the bls-precompiled branch May 2, 2024 11:11
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.

5 participants