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

precompiles: Implement BLS multi scalar multiplication #1010

Merged
merged 1 commit into from
Sep 18, 2024
Merged

Conversation

rodiazet
Copy link
Collaborator

Implementation of the bls12_g1msm and bls12_g2msm precompiles: multi scalar affine points' multiplication from BLS12-381 curve according to the EIP-2537 spec https://eips.ethereum.org/EIPS/eip-2537#abi-for-g1-msm and https://eips.ethereum.org/EIPS/eip-2537#abi-for-g2-msm.

@rodiazet rodiazet added precompiles Related to EVM precompiles Prague Changes for Prague upgrade labels Sep 17, 2024
@rodiazet rodiazet requested a review from chfast September 17, 2024 12:21
@rodiazet rodiazet force-pushed the bls-msm branch 5 times, most recently from 4c8fe67 to d2a43ca Compare September 17, 2024 12:47
Copy link

codecov bot commented Sep 17, 2024

Codecov Report

Attention: Patch coverage is 98.64865% with 2 lines in your changes missing coverage. Please review.

Project coverage is 94.08%. Comparing base (335d056) to head (1e3d448).

Files with missing lines Patch % Lines
test/state/precompiles.cpp 92.30% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1010      +/-   ##
==========================================
+ Coverage   93.98%   94.08%   +0.09%     
==========================================
  Files         147      147              
  Lines       15588    15728     +140     
==========================================
+ Hits        14651    14797     +146     
+ Misses        937      931       -6     
Flag Coverage Δ
eof_execution_spec_tests 17.39% <0.00%> (-0.16%) ⬇️
ethereum_tests 27.48% <0.00%> (-0.25%) ⬇️
ethereum_tests_silkpre 19.29% <0.00%> (-0.18%) ⬇️
execution_spec_tests 19.94% <70.27%> (+0.48%) ⬆️
unittests 88.88% <75.67%> (-0.09%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
lib/evmone_precompiles/bls.cpp 100.00% <100.00%> (ø)
test/unittests/precompiles_bls_test.cpp 100.00% <100.00%> (ø)
test/state/precompiles.cpp 94.30% <92.30%> (+3.08%) ⬆️

Co-authored-by: Paweł Bylica <pawel@ethereum.org>
@chfast chfast enabled auto-merge (squash) September 18, 2024 09:18
@chfast chfast changed the title precompiles: Implement multi scalar multiplication for P1 and P2 precompiles: Implement BLS multi scalar multiplication Sep 18, 2024
@chfast chfast merged commit d3de72d into master Sep 18, 2024
23 checks passed
@chfast chfast deleted the bls-msm branch September 18, 2024 09:31
chfast pushed a commit that referenced this pull request Sep 18, 2024
…e points (#1012)

Implementation of the `bls12_map_fp_to_g1` and `bls12_map_fp2_to_g2`
precompiles: mapping of `fp` field element to a point on `E1` curve
(BLS12-381) and mapping `fp2` extension field element to a point on `E2`
curve (BLS12-381) according to the EIP-2537 spec
https://eips.ethereum.org/EIPS/eip-2537#abi-for-mapping-fp-element-to-g1-point
and
https://eips.ethereum.org/EIPS/eip-2537#abi-for-mapping-fp2-element-to-g2-point.

Depends on: #1010
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Prague Changes for Prague upgrade precompiles Related to EVM precompiles
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants