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

Perf: Pairing on BN254 using direct Fp12 extension and non-native Eval() #1339

Merged
merged 30 commits into from
Dec 14, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
c41d12d
perf(sw_bn254): use Eval for E2
yelhousni Nov 27, 2024
0b0f561
Merge branch 'master' into perf/bn254-eval
yelhousni Dec 4, 2024
06898d3
feat: SZ direct Fp12 mul
yelhousni Dec 6, 2024
698d114
feat: SZ direct Fp12 sq, inv, dic
yelhousni Dec 7, 2024
f951982
feat: SZ direct Fp12 frobenius 1,2,3
yelhousni Dec 7, 2024
f3c25c5
feat: add some methods related to pairing using Eval
yelhousni Dec 7, 2024
19fea1d
fix(finalexp): constrain nonresidue to be in direct Fp6
yelhousni Dec 9, 2024
a0956de
feat: add Mul01379By01379
yelhousni Dec 9, 2024
7a19812
feat(bn254): pairing using direct Fp12 w/ Eval
yelhousni Dec 9, 2024
5203e1d
perf(bn254): some more optims in ML
yelhousni Dec 9, 2024
edc115b
feat(sw_bn254): add finalexp
yelhousni Dec 9, 2024
a435596
Merge branch 'master' into perf/bn254-eval
yelhousni Dec 9, 2024
1eade4a
fix: golinter
yelhousni Dec 9, 2024
4fdc8ef
fix: golinter
yelhousni Dec 9, 2024
dcd078e
perf: implement GS cyclo sq
yelhousni Dec 10, 2024
b556369
perf: optimize Granger-Scott square with Eval
yelhousni Dec 10, 2024
6272b24
Merge branch 'master' into perf/bn254-eval
yelhousni Dec 10, 2024
ee0a3ec
refactor: use ToTower and FromTower methods
yelhousni Dec 11, 2024
c8e7fd0
Merge branch 'perf/bn254-eval' of github.com:consensys/gnark into per…
yelhousni Dec 11, 2024
33d1541
refactor: clean code
yelhousni Dec 11, 2024
8db24a1
docs: add doc_test.go
yelhousni Dec 11, 2024
028bb16
test: TestPairFixed and IsMillerLoopAndFinalExpCircui
yelhousni Dec 11, 2024
dc4ea7f
perf(bn254/pairing): some more optims ~56k scs
yelhousni Dec 11, 2024
3eff1cd
chore: update stats
yelhousni Dec 11, 2024
ee93b4c
Merge branch 'master' into perf/bn254-eval
yelhousni Dec 11, 2024
2cc6cfa
perf(bn254): use Eval for G2 subgroup membership
yelhousni Dec 11, 2024
c6230d3
perf(bn254): use Eval for G1 subgroup membership
yelhousni Dec 11, 2024
7ebafbd
docs: correct comment
yelhousni Dec 12, 2024
9908d4d
perf: apply suggested edit
yelhousni Dec 14, 2024
110fa0b
refactor: move AssertFinalExpIsOne to sw_bn254
yelhousni Dec 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions internal/stats/latest_stats.csv
Original file line number Diff line number Diff line change
Expand Up @@ -181,14 +181,14 @@ pairing_bls24315,bls24_315,plonk,0,0
pairing_bls24315,bls24_317,plonk,0,0
pairing_bls24315,bw6_761,plonk,0,0
pairing_bls24315,bw6_633,plonk,141249,141249
pairing_bn254,bn254,groth16,963003,1603091
pairing_bn254,bn254,groth16,604783,990919
pairing_bn254,bls12_377,groth16,0,0
pairing_bn254,bls12_381,groth16,0,0
pairing_bn254,bls24_315,groth16,0,0
pairing_bn254,bls24_317,groth16,0,0
pairing_bn254,bw6_761,groth16,0,0
pairing_bn254,bw6_633,groth16,0,0
pairing_bn254,bn254,plonk,3771397,3534755
pairing_bn254,bn254,plonk,2319665,2030447
pairing_bn254,bls12_377,plonk,0,0
pairing_bn254,bls12_381,plonk,0,0
pairing_bn254,bls24_315,plonk,0,0
Expand Down
6 changes: 5 additions & 1 deletion std/algebra/emulated/fields_bn254/doc.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
// Package fields_bn254 implements the fields arithmetic of the Fp12 tower
// Package fields_bn254 implements the fields arithmetic of the direct 𝔽p¹² extension
// used to compute the pairing over the BN254 curve.
//
// 𝔽p¹²[i] = 𝔽p/i¹²-18i⁶+82
//
// This direct tower is isomorphic to the 2-3-2 tower:
//
// 𝔽p²[u] = 𝔽p/u²+1
// 𝔽p⁶[v] = 𝔽p²/v³-9-u
// 𝔽p¹²[w] = 𝔽p⁶/w²-v
Expand Down
Loading
Loading