-
Notifications
You must be signed in to change notification settings - Fork 420
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
merged gnark master into this branch
- Loading branch information
Showing
406 changed files
with
16,582 additions
and
16,796 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,7 +5,7 @@ | |
[](https://pkg.go.dev/mod/github.com/consensys/gnark) | ||
[][`gnark` User Documentation] [](https://doi.org/10.5281/zenodo.5819104) | ||
|
||
`gnark` is a fast zk-SNARK library that offers a high-level API to design circuits. The library is open source and developed under the Apache 2.0 license. | ||
`gnark` is a fast zk-SNARK library that offers a high-level API to design circuits. The library is open-source and developed under the Apache 2.0 license. | ||
|
||
`gnark` uses [`gnark-crypto`] for the finite-field arithmetic and out-circuit implementation of cryptographic algorithms. | ||
|
||
|
@@ -29,7 +29,7 @@ Checkout the [online playground][`gnark` Playground] to compile circuits and vis | |
|
||
## Security | ||
|
||
**`gnark` and [`gnark-crypto`] have been [extensively audited](#audits), but are provided as-is, we make no guarantees or warranties to its safety and reliability. In particular, `gnark` makes no security guarantees such as constant time implementation or side-channel attack resistance.** | ||
**`gnark` and [`gnark-crypto`] have been [extensively audited](#audits), but are provided as-is, we make no guarantees or warranties to their safety and reliability. In particular, `gnark` makes no security guarantees such as constant time implementation or side-channel attack resistance.** | ||
|
||
**To report a security bug, please refer to [`gnark` Security Policy](SECURITY.md).** | ||
|
||
|
@@ -56,7 +56,7 @@ The tests are automatically run during every PR and merge commit. We run full te | |
|
||
## Performance | ||
|
||
`gnark` and `gnark-crypto` packages are optimized for 64bits architectures (x86 `amd64`) using assembly operations. We have generic implementation of the same arithmetic algorithms for ARM backends (`arm64`). We do not implement vector operations. | ||
`gnark` and `gnark-crypto` packages are optimized for 64bits architectures (x86 `amd64`) using assembly operations. We have a generic implementation of the same arithmetic algorithms for ARM backends (`arm64`). We do not implement vector operations. | ||
|
||
## Backwards compatibility | ||
|
||
|
@@ -86,6 +86,7 @@ You can also get in touch directly: [email protected] | |
* [ZKSecurity.xyz - May 2024 - gnark standard library](audits/2024-05%20-%20zksecurity%20-%20gnark%20std.pdf) | ||
* [OpenZeppelin - June 2024 - gnark PLONK prover and verifier](https://blog.openzeppelin.com/linea-prover-audit) | ||
* [LeastAuthority - September 2024 - gnark general and GKR](audits/2024-09%20-%20Least%20Authority%20-%20arithm%20and%20GKR.pdf) | ||
* [LeastAuthority - November 2024 - Linea zkEVM](audits/2024-11%20-%20Least%20Authority%20-%20Linea%20zkEVM.pdf) | ||
|
||
## Proving schemes and curves | ||
|
||
|
@@ -195,9 +196,9 @@ assert.ProverSucceeded(&mimcCircuit, &Circuit{ | |
go test github.com/consensys/gnark/examples/mimc -tags=prover_checks,zeknox | ||
``` | ||
|
||
#### Icicle Library | ||
#### ICICLE Library | ||
|
||
The following schemes and curves support experimental use of Ingonyama's Icicle GPU library for low level zk-SNARK primitives such as MSM, NTT, and polynomial operations: | ||
The following schemes and curves support experimental use of Ingonyama's ICICLE GPU library for low level zk-SNARK primitives such as MSM, NTT, and polynomial operations: | ||
|
||
- [x] [Groth16](https://eprint.iacr.org/2016/260) | ||
|
||
|
@@ -217,25 +218,25 @@ You can then toggle on or off icicle acceleration by providing the `WithIcicleAc | |
proof, err := groth16.Prove(ccs, pk, secretWitness) | ||
``` | ||
|
||
For more information about prerequisites see the [Icicle repo](https://github.com/ingonyama-zk/icicle). | ||
For more information about prerequisites see the [ICICLE repo](https://github.com/ingonyama-zk/icicle). **NB! ICICLE CUDA kernels are covered by a special license for now. Follow the instructions to download and set up the kernels.** | ||
|
||
## Citing | ||
|
||
If you use `gnark` in your research a citation would be appreciated. | ||
Please use the following BibTeX to cite the most recent release. | ||
|
||
```bib | ||
@software{gnark-v0.11.0, | ||
@software{gnark-v0.12.0, | ||
author = {Gautam Botrel and | ||
Thomas Piellard and | ||
Youssef El Housni and | ||
Ivo Kubjas and | ||
Arya Tabaie}, | ||
title = {ConsenSys/gnark: v0.11.0}, | ||
month = sep, | ||
year = 2024, | ||
title = {Consensys/gnark: v0.12.0}, | ||
month = jan, | ||
year = 2025, | ||
publisher = {Zenodo}, | ||
version = {v0.11.0}, | ||
version = {v0.12.0}, | ||
doi = {10.5281/zenodo.5819104}, | ||
url = {https://doi.org/10.5281/zenodo.5819104} | ||
} | ||
|
@@ -247,18 +248,18 @@ Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our [code of condu | |
|
||
## Versioning | ||
|
||
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/consensys/gnark/tags). | ||
We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/Consensys/gnark/tags). | ||
|
||
## License | ||
|
||
This project is licensed under the Apache 2 License - see the [LICENSE](LICENSE) file for details | ||
|
||
[`gnark` Issues]: https://github.com/consensys/gnark/issues | ||
[`gnark` Issues]: https://github.com/Consensys/gnark/issues | ||
[`gnark` Playground]: https://play.gnark.io | ||
[`gnark` User Documentation]: https://docs.gnark.consensys.net/ | ||
[GitHub discussions]: https://github.com/ConsenSys/gnark/discussions | ||
[GitHub discussions]: https://github.com/Consensys/gnark/discussions | ||
[Proving schemes and curves]: https://docs.gnark.consensys.net/Concepts/schemes_curves | ||
[`gnark-announce`]: https://groups.google.com/g/gnark-announce | ||
[@gnark_team]: https://twitter.com/gnark_team | ||
[`gnark-crypto`]: https://github.com/Consensys/gnark-crypto | ||
[`gnark-solidity-checker`]: https://github.com/Consensys/gnark-solidity-checker | ||
[`gnark-solidity-checker`]: https://github.com/Consensys/gnark-solidity-checker |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
Oops, something went wrong.