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

v0.8.0 #237

Merged
merged 38 commits into from
Aug 3, 2022
Merged

v0.8.0 #237

merged 38 commits into from
Aug 3, 2022

Conversation

gbotrel
Copy link
Collaborator

@gbotrel gbotrel commented Aug 3, 2022

[v0.8.0] - 2022-08-03

This version was partially audited by Kudelski Security for the Algorand Foundation. (TODO insert report link).
The scope of the audit covered bn254 and bls12-381 packages (including field arithmetic).

Feat

  • field/goldilocks (more efficient 1-limb modulus arith) (#177)
  • field/generator suppors 1-limb modulus (#175)
  • field.SetRandom zero-alloc uniform sampling
  • E6/E12/E24: GT torus-based batch compression/decompression
  • fri: modified challenge generation so it fits in a snark variable
  • fri: added check of correctness between rounds

Fix

  • Handle edge case in Karabina decompression (#219)
  • check nbTasks config when running msm, test all possible c-bit windows in when testing.Short not set) (#226)
  • element.SetString(_) returns error if invalid input instead of panic
  • expand_msg_xmd copy bug, a few tests (#201)
  • closes #199. Correct bound in eddsa key gen template

Perf

  • remove unecessary inverse in KZG-verify
  • faster GLV scalar decompostion

Refactor & Docs

  • moved consensys/goff into field/goff (#204)
  • clean comments in curves (#193)
  • remove dead code (#230)
  • cosmetic changes (#197)
  • replace modulus generated by constants, add zero-alloc SetRandom (#194)
  • remove uneeded x86 asm and files (#192)
  • polish readme.md with updated godoc subpackage links (#235)
  • acknowledge that inv(0)==0 in comments as a convention (#233)
  • added note in pairing godoc - doesn't check inputs are in correct subgroup (#231)
  • add security estimates of implemented curves in comments

Test

Pull Requests

  • Merge pull request #232 from ConsenSys/docs/comments
  • Merge pull request #229 from ConsenSys/update_deps
  • Merge pull request #227 from ConsenSys/fix/element_setstring
  • Merge pull request #228 from ConsenSys/fix/race/test
  • Merge pull request #224 from ConsenSys/refactor/scalarmul
  • Merge pull request #220 from ConsenSys/perf/kzg-verify
  • Merge pull request #223 from ConsenSys/doc/security-estimates-curves
  • Merge pull request #216 from ConsenSys/feat/poly
  • Merge pull request #217 from ConsenSys/string-utils
  • Merge pull request #213 from ConsenSys/perf/glv
  • Merge pull request #129 from ConsenSys/feat/GT-compression
  • Merge pull request #209 from ConsenSys/codegen/svdw-not-e4
  • Merge pull request #203 from ConsenSys/tests/bn254-vectors
  • Merge pull request #196 from ConsenSys/patch/hashToFpGeneric
  • Merge pull request #202 from ConsenSys/gbotrel/issue199
  • Merge pull request #200 from tyGavinZJU/develop
  • Merge pull request #85 from ConsenSys/feat/fri

Tabaie and others added 30 commits June 30, 2022 19:10
[docs] Add security estimates of implemented curves in comments
refactor: restore ScalarMultiplication (from ScalarMul name change in previous merge)
fix: remove supportAdx race condition in internal/fptower)
element.SetString() returns error instead of panic if invalid input)
…indows in when testing.Short not set) (#226)

* fix: if config.NbTasks > 1024 in multiExp call, error

* docs: updated MultiExp godoc

* test: test all possible c-bit window of msm when testing.Short is not set

* fix: for G2 msm test, don't test for large values of c-bit windows
* fix(Fp12): handle edge case g3==0 in Karabina decompression

* fix(Fp24): handle edge case g3==0 in Karabina decompression

* fix(Fp6): handle edge case g3==0 in Karabina decompression + faster Expt
yelhousni and others added 8 commits July 27, 2022 16:15
* fix: throw an error when inverse by 0 in BatchCompressTorus

* fix(bls24-317): throw an error when inverse by 0 in BatchCompressTorus

* docs: prettify doc

Co-authored-by: Gautam Botrel <gautam.botrel@gmail.com>
…+ test (#225)

* test(all): test Batch aff conv. + explicitly out (0,0) when point at inf

* fix: avoid out-of-bounds access in batch point conversion

* fix: since results is allocated in BatchJacobianToAffine, inf -> inf is implicit

Co-authored-by: Gautam Botrel <gautam.botrel@gmail.com>
docs: correct some typos in comments
* docs: updated README.md

* docs: start updating readme.md

* docs: polish readme.md with updated godoc links

* docs: godoc for bn254 package

* docs: godoc package level for all ecc/ curves

* docs: updated field/goff godoc
* style: acknowledge sqrtRatio and A!=0 findings

* refactor: SSWU fewer todos. TODO (:p) no isogeny case for A coeff

* style: updated svdw standard reference, no change since previous version

* style: sswu references, no change since latest implementation

* style: update reference for sqrt_ratio q = 3 mod 4, no change

* style: update sqrt_ratio refs for any field, no change

* style: update sgn0 ref and prettify

* style: update hash and encode to curve refs

* style: more reference updates and pretty squaring

* style: decision made to keep variables local to function when possible

* style: more exponent prettification
@gbotrel gbotrel merged commit cda6700 into master Aug 3, 2022
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.

MultiExp bench seems a bit "optimistic" Endian issue in handling eddsa private key scalar
3 participants