|
11 | 11 | * [`bls12-377`] / [`bw6-761`] |
12 | 12 | * [`bls24-315`] / [`bw6-633`] |
13 | 13 | * [`bls12-378`] / [`bw6-756`] |
14 | | - * Each of these curve has a [`twistededwards`] sub-package with its companion curve which allow efficient elliptic curve cryptography inside zkSNARK circuits. |
| 14 | + * Each of these curves has a [`twistededwards`] sub-package with its companion curve which allow efficient elliptic curve cryptography inside zkSNARK circuits. |
15 | 15 | * [`field/goff`] - Finite field arithmetic code generator (blazingly fast big.Int) |
16 | 16 | * [`fft`] - Fast Fourier Transform |
17 | 17 | * [`fri`] - FRI (multiplicative) commitment scheme |
|
46 | 46 | go get github.com/consensys/gnark-crypto |
47 | 47 | ``` |
48 | 48 |
|
49 | | -Note if that if you use go modules, in `go.mod` the module path is case sensitive (use `consensys` and not `ConsenSys`). |
| 49 | +Note that if you use go modules, in `go.mod` the module path is case sensitive (use `consensys` and not `ConsenSys`). |
50 | 50 |
|
51 | 51 | ### Development |
52 | 52 |
|
53 | 53 | Most (but not all) of the code is generated from the templates in `internal/generator`. |
54 | 54 |
|
55 | 55 | The generated code contains little to no interfaces and is strongly typed with a field (generated by the `gnark-crypto/field` package). The two main factors driving this design choice are: |
56 | 56 |
|
57 | | -1. Performance: `gnark-crypto` algorithms manipulates millions (if not billions) of field elements. Interface indirection at this level, plus garbage collection indexing takes a heavy toll on perf. |
| 57 | +1. Performance: `gnark-crypto` algorithms manipulate millions (if not billions) of field elements. Interface indirection at this level, plus garbage collection indexing takes a heavy toll on perf. |
58 | 58 | 2. Need to derive (mostly) identical code for various moduli and curves, with consistent APIs. Generics introduce significant performance overhead and are not yet suited for high performance computing. |
59 | 59 |
|
60 | 60 | To regenerate the files, see `internal/generator/main.go`. Run: |
@@ -117,4 +117,4 @@ This project is licensed under the Apache 2 License - see the [LICENSE](LICENSE) |
117 | 117 | [`kzg`]: https://pkg.go.dev/github.com/consensys/gnark-crypto/ecc/bn254/fr/kzg |
118 | 118 | [`plookup`]: https://pkg.go.dev/github.com/consensys/gnark-crypto/ecc/bn254/fr/plookup |
119 | 119 | [`permutation`]: https://pkg.go.dev/github.com/consensys/gnark-crypto/ecc/bn254/fr/permutation |
120 | | -[`fiatshamir`]: https://pkg.go.dev/github.com/consensys/gnark-crypto/fiat-shamir |
| 120 | +[`fiatshamir`]: https://pkg.go.dev/github.com/consensys/gnark-crypto/fiat-shamir |
0 commit comments