François Garillot
54f758eef3
[test-only] More genericity in tests ( #171 )
...
* refactor: make circuit tests generic wrt curves
- Improve modularity by introducing generic `test_recursive_circuit_with` function in `src/circuit.rs`
- Refactor `test_recursive_circuit` to utilize the new function
- Implement type constraints for `test_recursive_circuit_with` function
* refactor: make bellperson tests generic in type of group
- Introduce `test_alloc_bit_with` function utilizing generic types
- Adapt existing `test_alloc_bit` function to use the new `test_alloc_bit_with` function with correct types
* refactor: make the nifs test generic in the type of group
* refactor: make the ivc tests generic in the type of curve
* refactor: simplify generics in tests
* make the keccak tests generic
* make the poseidon tests generic
* make the spartan tests generic
2023-05-26 13:43:35 -07:00
Srinath Setty
afd7403336
Fix cross-curve check and then eliminate an unnecessary instance on the primary curve ( #167 )
...
* add a cross-curve consistency check
* eliminate the unused instance in RecursiveSNARK
2023-05-18 10:45:08 -07:00
Srinath Setty
b28aaf70a8
hash of public parameters in the transcript ( #168 )
2023-05-18 10:19:44 -07:00
Leo
f16fa1e401
make ecc tests generic ( #165 )
2023-05-10 13:52:05 -07:00
Samuel Burnham
cddd707fad
chore: update to ff/group 0.13 ( #166 )
...
* chore: update to ff/group 0.13 and associated dependencies
Updates:
- zkcrypto/ff, zkcrypto/group to 0.13,
- bellperson to 0.25,
- pasta_curves to 0.5.1, and removes the fil_pasta_curves fork
- pasta-msm should no longer need a fork (WIP)
Adapts source in function, mostly for const usage and API updates.
* expose the portable feature of pasta-MSM
* update pointer to pasta-msm
* Clippy
---------
Co-authored-by: François Garillot <francois@garillot.net >
2023-05-10 12:15:17 -07:00
Srinath Setty
b76d7aa7ea
batch sum-checks ( #161 )
2023-04-10 11:31:04 -07:00
Srinath Setty
21d4092b86
serde for types ( #160 )
2023-04-03 18:54:00 -07:00
Srinath Setty
83f2e079a8
support proving step circuits with final snark ( #159 )
2023-04-03 18:33:38 -07:00
Srinath Setty
3b3ae70db3
A more optimal preprocessing SNARK ( #158 )
...
* a more optimal preprocessing SNARK
* update version
* cleanup; address clippy
2023-03-31 18:54:32 -07:00
Srinath Setty
4aab459050
Batch polynomial evaluations ( #154 )
...
* Ability to collect evaluation claims
* defer polynomial evaluation claims
* address cargo clippy
2023-03-27 17:59:52 -07:00
Srinath Setty
7b1bb44e45
spark-based commitments to R1CS matrices ( #152 )
...
* spark-based commitments to R1CS matrices
* small fixes
2023-03-20 18:16:06 -07:00
Srinath Setty
eb97499907
Fix padding logic ( #151 )
...
* fix padding
* update version
2023-03-13 10:45:35 -07:00
Srinath Setty
cbbc1c6127
Generalize TranscriptRepr implementation for slices ( #150 )
...
* generalize the slice implementation
* bump the version
2023-03-10 09:27:48 -08:00
Srinath Setty
0e86f9acc3
simplify commitmentengine ( #149 )
2023-03-09 14:33:33 -08:00
JunheeLee
6ba204401f
minor typo fix ( #147 )
...
* typo fix
* Comment typos fix
* Update README.md
* Comment typo fix
2023-03-09 14:08:50 -08:00
Srinath Setty
03710dbb97
Simplify TranscriptEngine usage ( #148 )
...
* simplify transcript engine usage
* update version
2023-03-09 13:31:23 -08:00
Srinath Setty
1e4995274b
Separate prover and verifier keys in CompressedSNARK ( #145 )
...
* checkpoint
* simplify further
* checkpoint
* gens --> ck
* update benches
* address clippy
* cleanup
* update version
2023-03-02 18:36:13 -08:00
Srinath Setty
01ae6446a9
pass only one multilinear polynomial to EE ( #144 )
...
* pass only one multilinear polynomial to EE
* update version
2023-03-01 16:31:00 -08:00
Srinath Setty
d53b3e0fc1
simplify trait requirements ( #143 )
...
* simplify trait requirements
* update version
2023-02-28 18:21:25 -08:00
Srinath Setty
b5874df449
Small optimizations ( #142 )
2023-02-13 11:04:35 -08:00
Srinath Setty
c4b07f0925
allow the provider to provide byte representation of a scalar ( #140 )
2023-02-10 12:36:51 -08:00
Srinath Setty
8faffd38ea
Make code generic over a TranscriptEngine ( #139 )
2023-02-09 18:33:48 -08:00
Srinath Setty
b97786d291
move IPA-specific methods to the provider ( #138 )
2023-02-06 18:07:14 -08:00
Srinath Setty
603c1e2a85
traits for a vector commitment engine and a polynomial evaluation engine ( #136 )
...
make spartan generic over the evaluation engine
update version
disable Wasm CI check
2023-02-02 16:21:24 -08:00
Srinath Setty
e7f8d11455
use thiserror ( #135 )
2023-01-31 18:31:34 -08:00
Samuel Burnham
b2adab610a
Clippy formatting ( #131 )
...
* Clippy with Rust 1.67
* Clippy/Rustfmt with Rust 1.66.1
2023-01-31 14:53:15 -08:00
Srinath Setty
74501936c3
parallel and batch_normalize ( #129 )
...
use a macro to remove redundant code
add a test case
2023-01-31 11:03:38 -08:00
Srinath Setty
746af53e08
use serde feature to compute the digest of the shape ( #132 )
2023-01-31 10:32:49 -08:00
Samuel Burnham
13964b6f16
Add serde proof serialization ( #123 )
...
* Bump commit.
* Bump commit.
* (WIP) Add serde support
* Minor fixes
* Use neptune const generics
* Use git patches
* Impl serde for CompressedSNARK
* Update dependencies, revert to typenum
* Formatting
* Update bellperson-nonnative patch
* Cleanup
* Remove bellperson-nonnative fork
* Switch back to fil_pasta_curves
* Update forked dependencies
* Cleanup
* Remove unnecessary patch
* Update to lurk-pasta-msm
---------
Co-authored-by: porcuquine <porcuquine@users.noreply.github.com >
2023-01-31 10:01:08 -08:00
Samuel Burnham
55f6736866
Add Wasm support ( #125 )
...
* Add Wasm support
* Use SeedableRng for Wasm randomness
* Fix tests
* Formatting
2023-01-30 11:31:36 -08:00
Nalin
6c6a8746d6
Speed up MSMs for non-GPU accelerated MSMs and architectures that don't support GPU/semolina ( #126 )
...
* WASM target support
* fast multiexp for WASM
* add parallelisation for MSM
https://github.com/zcash/halo2/blob/main/halo2_proofs/src/arithmetic.rs
2023-01-27 09:51:08 -08:00
Srinath Setty
23178ff54d
A simplified version of the nonnative gadgets ( #122 )
2023-01-18 09:40:54 -08:00
Srinath Setty
6044aff625
Update crate versions ( #119 )
...
* update crate versions
* fix clippy issues
* cargo fmt
2022-11-21 10:42:11 -08:00
Srinath Setty
f9672faf23
Make Nova's ecc gadgets read curve parameters from the group trait ( #115 )
...
* make ecc gadgets defined over Group rather than PrimeField
* use curve parameters from Group trait
2022-09-22 13:31:55 -07:00
Srinath Setty
7ec2f57b84
optimize ECC ops ( #110 )
...
* optimize ECC ops
* update version
2022-08-23 15:05:04 -07:00
Srinath Setty
3c6867390a
optimize point add constraints ( #106 )
...
* optimize add constraints
* optimize double by rewriting a constraint involving an inverted element
2022-08-18 08:25:26 -07:00
Srinath Setty
ccc6ccd4c7
Support for arbitrary arity for step circuit's IO ( #107 )
...
* support for arbitrary arity for F
* revive MinRoot example
* revive tests
* revive ecdsa
* remove unused code
* use None instead of Some(1u32)
* revive benches
* fix clippy warning
2022-08-16 11:35:17 -07:00
Srinath Setty
0a7cbf925f
integrate with neptune's sponge ( #105 )
...
* integrate with neptune's sponge
* fix clippy warning
* add checks to ensure at most one squeeze
* add checks to ensure at most one squeeze
2022-08-11 19:03:44 -07:00
Srinath Setty
c7e8782f11
pad two IPA instances to the same size when folding ( #103 )
2022-07-27 22:21:47 -07:00
Srinath Setty
a56f823ace
optimize the non-native arithmetic and hashing costs by using 4 limbs instead of 8 ( #102 )
2022-07-27 17:09:49 -07:00
Srinath Setty
06192ac3d4
Optimizations ( #100 )
...
* avoid creating commitments to zero vectors
* reduce the number of constraints in each iteration from 4 to 3
2022-07-27 14:07:44 -07:00
Srinath Setty
3dc26fd7e4
Simplifications in Nova's RO ( #98 )
...
* rename methods for better clarity
* rename
* Bump version
2022-07-25 12:22:41 -07:00
Srinath Setty
87a5b07bdd
name changes for improved clarity ( #93 )
2022-07-20 14:09:25 -07:00
Srinath Setty
35cb03f977
reorganize traits into a module; cut boilerplate code ( #91 )
...
use a default implementation for step circuit
2022-07-14 16:15:45 -07:00
Srinath Setty
e373f4633d
edits to address clippy with the latest Rust ( #90 )
2022-07-13 14:46:13 -07:00
Srinath Setty
a04566bb81
MinRoot example improvements ( #88 )
...
* support multiple iterations of MinRoot per Nova step
* small edits to println
* fix declaration
2022-07-11 13:00:42 -07:00
Srinath Setty
63f08c0e4a
Support non-determinism with a minimal API ( #85 )
...
* support non-determinism with small changes to the interface
* update benches to use the new API
* add an example that exercises non-deterministic advice at each step of recursion
* tiny rename
* Address clippy; update version
2022-07-07 12:17:56 -07:00
Srinath Setty
6667d2f8b5
Abstract the RO used in the circuit with traits ( #84 )
...
* cleanup RO usage inside the circuit: use traits
* Add a note
* rename types for clarity
2022-07-05 16:24:12 -07:00
Srinath Setty
0863a732ff
Add asserts for constraint count ( #83 )
...
* Add asserts for constraint count
* switch to Standard strength
2022-07-05 14:50:17 -07:00
Srinath Setty
c29030b2d7
Release Candidate ( #82 )
...
* update version and README
* move tests to bellperson adapter and remove tests folder; make bellperson adapter private
2022-07-01 16:03:19 -07:00