Srinath Setty
bfbd786570
remove a padded witness ( #187 )
1 year ago
François Garillot
1e6bf942e2
[refactorings] Leftovers (pot-pourri?) ( #184 )
* test: compute_path
* refactor: path computation
- Improve path concatenation by utilizing built-in `join` method
* refactor: replace `PartialEq` with derived instance
- Derive `PartialEq` for `SatisfyingAssignment` struct
- Remove redundant manual implementation of `PartialEq`
Cargo-expand generates:
```
#[automatically_derived]
impl<G: ::core::cmp::PartialEq + Group> ::core::cmp::PartialEq
for SatisfyingAssignment<G>
where
G::Scalar: PrimeField,
G::Scalar: ::core::cmp::PartialEq,
G::Scalar: ::core::cmp::PartialEq,
G::Scalar: ::core::cmp::PartialEq,
G::Scalar: ::core::cmp::PartialEq,
G::Scalar: ::core::cmp::PartialEq,
{
#[inline]
fn eq(&self, other: &SatisfyingAssignment<G>) -> bool {
self.a_aux_density == other.a_aux_density
&& self.b_input_density == other.b_input_density
&& self.b_aux_density == other.b_aux_density && self.a == other.a
&& self.b == other.b && self.c == other.c
&& self.input_assignment == other.input_assignment
&& self.aux_assignment == other.aux_assignment
}
}
```
* refactor: avoid default for PhantomData Unit type
* refactor: replace fold with sum where applicable
- Simplify code by replacing `fold` with `sum` in various instances
* refactor: decompression method in sumcheck.rs
* refactor: test functions to use slice instead of vector conversion
* refactor: use more references in functions
- Update parameter types to use references instead of owned values in various functions that do not need them
- Replace cloning instances with references
1 year ago
François Garillot
ff0370f506
Add the ability to profile the benchmarks w/ a flamegraph feature ( #183 )
* feat: Integrate flamegraph profiling in benchmarks
- Introduce "flamegraph" feature flag for optional profiling integration
- Add benchmark profiling support in `compressed_snark` and `recursive_snark` groups
- Update Cargo.toml with `pprof` and `cfg-if` dependencies
* ci: Build benches to make sure they don't bit-rot
- Integrate bench build step into GitHub Actions workflow
1 year ago
Chiro Hiro
af886d6ce7
Improve performance of recursive ( #163 )
* Improve performance of recursive
* Fix the test after rebase
* Fix CI/CD warnings
* Update benchmark to work with new interface of RecursiveSNARK
* Fix example to make sure step 1 is correct
* refactor: Removes unneeded pass-by value in verification
- Update function arguments to use borrowing instead of passing ownership
* Resolve the conflict with upstream branch
* refactor: Avoid extra input cloning in RecursiveSNARK::new
* Update criterion to 0.5.1 to prevent the panic with its plot
* Fix benchmark issue with new recursive_snark instance
* Fix CI/CD warning with
* refactor: Make mutation easier to observe
- Utilize mutable references to Points for better memory management
* chore: Downgrade clippy dependency for compatibility
---------
Co-authored-by: François Garillot <francois@garillot.net>
1 year ago
François Garillot
031738de51
Remove Zlib compression in public parameter computation ( #182 )
* test: add test for pp computation
* bench: add a digest computation bench
* refactor: Optimize digest computation and update tests
- Remove flate2 dependency from codebase
- Replace ZlibEncoder with bincode::serialize in compute_digest function
- Update test_pp_digest expected results to align with compute_digest changes
Bench results:
```
compute_digest time: [1.4451 s 1.4571 s 1.4689 s]
change: [-29.357% -27.854% -26.573%] (p = 0.00 < 0.05)
Performance has improved.
```
1 year ago
François Garillot
bef42262d6
[test, chore]: Fix clippy and genericize one more test ( #180 )
* genericize test_tiny_r1cs
* chore: remove redundant clone in scalar_mul
Makes clippy happy
1 year ago
Michele Orrù
7193483628
Update README.md with release flag ( #173 )
1 year ago
François Garillot
261fd19057
chore: Update neptune dependency ( #172 )
- Update neptune dependency to version 10.0.0
1 year ago
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
1 year ago
Srinath Setty
58fc746c0b
release candidate ( #169 )
1 year ago
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
1 year ago
Srinath Setty
b28aaf70a8
hash of public parameters in the transcript ( #168 )
1 year ago
Leo
f16fa1e401
make ecc tests generic ( #165 )
1 year ago
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>
1 year ago
Srinath Setty
b76d7aa7ea
batch sum-checks ( #161 )
1 year ago
Srinath Setty
21d4092b86
serde for types ( #160 )
1 year ago
Srinath Setty
83f2e079a8
support proving step circuits with final snark ( #159 )
1 year ago
Srinath Setty
3b3ae70db3
A more optimal preprocessing SNARK ( #158 )
* a more optimal preprocessing SNARK
* update version
* cleanup; address clippy
1 year ago
Srinath Setty
4aab459050
Batch polynomial evaluations ( #154 )
* Ability to collect evaluation claims
* defer polynomial evaluation claims
* address cargo clippy
1 year ago
Srinath Setty
7b1bb44e45
spark-based commitments to R1CS matrices ( #152 )
* spark-based commitments to R1CS matrices
* small fixes
1 year ago
Srinath Setty
eb97499907
Fix padding logic ( #151 )
* fix padding
* update version
1 year ago
Srinath Setty
cbbc1c6127
Generalize TranscriptRepr implementation for slices ( #150 )
* generalize the slice implementation
* bump the version
1 year ago
Srinath Setty
0e86f9acc3
simplify commitmentengine ( #149 )
1 year ago
JunheeLee
6ba204401f
minor typo fix ( #147 )
* typo fix
* Comment typos fix
* Update README.md
* Comment typo fix
1 year ago
Srinath Setty
03710dbb97
Simplify TranscriptEngine usage ( #148 )
* simplify transcript engine usage
* update version
1 year ago
Srinath Setty
1e4995274b
Separate prover and verifier keys in CompressedSNARK ( #145 )
* checkpoint
* simplify further
* checkpoint
* gens --> ck
* update benches
* address clippy
* cleanup
* update version
1 year ago
Srinath Setty
01ae6446a9
pass only one multilinear polynomial to EE ( #144 )
* pass only one multilinear polynomial to EE
* update version
1 year ago
Srinath Setty
d53b3e0fc1
simplify trait requirements ( #143 )
* simplify trait requirements
* update version
1 year ago
Nalin
621fda5c9e
Feature to enable Neptune GPU Poseidon ( #141 )
* enable neptune gpu hashing
* Disable clippy on GPU
1 year ago
Srinath Setty
b5874df449
Small optimizations ( #142 )
1 year ago
Srinath Setty
c4b07f0925
allow the provider to provide byte representation of a scalar ( #140 )
1 year ago
Srinath Setty
8faffd38ea
Make code generic over a TranscriptEngine ( #139 )
1 year ago
Srinath Setty
b97786d291
move IPA-specific methods to the provider ( #138 )
1 year ago
Srinath Setty
0315bd1198
fix wasm build ( #137 )
1 year ago
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
1 year ago
Srinath Setty
e7f8d11455
use thiserror ( #135 )
1 year ago
Srinath Setty
0ae8d15953
add Wasm build to CI ( #134 )
1 year ago
Srinath Setty
4163665f52
release candidate ( #133 )
1 year ago
Samuel Burnham
b2adab610a
Clippy formatting ( #131 )
* Clippy with Rust 1.67
* Clippy/Rustfmt with Rust 1.66.1
1 year ago
Srinath Setty
74501936c3
parallel and batch_normalize ( #129 )
use a macro to remove redundant code
add a test case
1 year ago
Srinath Setty
746af53e08
use serde feature to compute the digest of the shape ( #132 )
1 year ago
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>
1 year ago
Srinath Setty
0b2b984fd1
release version ( #130 )
1 year ago
Samuel Burnham
55f6736866
Add Wasm support ( #125 )
* Add Wasm support
* Use SeedableRng for Wasm randomness
* Fix tests
* Formatting
1 year ago
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
1 year ago
Srinath Setty
d35604fe15
release version ( #124 )
1 year ago
Srinath Setty
23178ff54d
A simplified version of the nonnative gadgets ( #122 )
1 year ago
Nalin
fa9064a3f7
Delete outdated comment to avoid confusion ( #117 )
2 years ago
Srinath Setty
6044aff625
Update crate versions ( #119 )
* update crate versions
* fix clippy issues
* cargo fmt
2 years ago
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
2 years ago