Commit Graph

35 Commits

Author SHA1 Message Date
Mara Mihali
fcd93fa932 remove unnecessary dependencies and change package name 2023-01-12 18:40:04 +01:00
Mara Mihali
adf96ae8bc fix transcript inconsistency 2023-01-09 17:32:56 +01:00
Mara Mihali
f88d29fb0c first version of PST 2022-12-12 16:35:55 +02:00
maramihali
923c8a727f update workflows for testudo 2022-11-12 00:47:04 +00:00
Mara Mihali
869bed65f4 implement spartan verifier as a circuit and verify it with groth16 2022-11-12 00:47:04 +00:00
Mara Mihali
c76f136006 implement spartan verifier as a circuit and verify it with groth16 2022-11-11 15:42:16 +00:00
Mara Mihali
e7242a7b54 implement alternative transcript with poseidon backend 2022-11-11 14:37:20 +00:00
Mara Mihali
09251a9439 remove zero knowledge from spartan r1cs-sat proof and verification 2022-11-11 14:35:42 +00:00
Mara Mihali
632b95b4c8 turn shake into poseidon 2022-11-11 14:27:11 +00:00
Mara Mihali
b085c670be migrate codebase to arkworks and change curve to bls12-377 2022-11-11 14:26:40 +00:00
Srinath Setty
0013f81a6e optimize the computation of digest of A/B/C matrices (#55)
* optimize the computation of digest of A/B/C matrices

* update version

* address clippy

* address clippy
2022-11-11 14:23:03 +00:00
Ethan-000
cb6e5613ed fix comment (#49)
Co-authored-by: ethan_000 <yuhuili@Yuhuis-MacBook-Air.local>
2022-11-11 14:23:03 +00:00
Srinath Setty
4f56acf724 support for stable Rust (#51)
* support for stable Rust

* add no default to stable

* add no default to stable

* update CI
2022-11-11 14:23:03 +00:00
Srinath Setty
e1383ff248 clippy fixes (#50)
* clippy fixes

* remove warning

* fix clippy
2022-11-11 14:23:03 +00:00
Mara Mihali
1e9930ae79 refactor r1csproof to non-zk sumcheck 2022-10-12 19:14:07 -04:00
Mara Mihali
732566c1ae turn shake into poseidon 2022-10-12 19:14:07 -04:00
Mara Mihali
cc345b6451 arkworks migration to bls12377 2022-10-12 19:13:39 -04:00
Mara Mihali
dda7a6fb46 stuff 2022-07-20 16:47:57 +01:00
Srinath Setty
cecc2f1b62 Transcript (#46)
* add items to transcript

* add additional items to transcript

* fix benches

* cargo fmt
2022-05-12 01:16:05 -07:00
Srinath Setty
6722e6c6ad remove asserts; return result objects (#45)
* remove asserts; return result objects

* bump version

* clippy
2022-05-04 08:20:57 +05:30
Srinath Setty
19d1d63703 Update to latest Rust and fix Clippy warnings (#37)
* Update to latest Rust and fix Clippy warnings

* cleanup
2021-10-14 16:11:19 -07:00
Lef Ioannidis
7bbc366e5d Arbitrary number of variables and contraints (#34)
* This commit makes adding an arbitrary number of variables and inputs possible and removes the
  implementation leaking to the interface for

  num_inps + 1 <= num_vars, num_vars: a power of 2, num_cons: a power of 2, but not 1.

  1. When creating a new R1CS Instance throught the public interface,
     it is required # constraints and # of vars be a power of 2. I remove
     that requirement by padding with dummy constraints and vars until the nearest
     power of 2.
  2. The sumcheck protocol in src/sumcheck.rs does not work for 1 constraint, even
     though 1 is a power of 2. I have to pad to a minimum of two constraints.
  3. Added a test in src/r1csproof.rs called test_padded_constraints.

* Move test to src/lib.rs

* Remove padding metadata

* remove unused use

* Simplify padding to power of 2

* run cargo fmt

* Fix indexing bug

* Rayon is optional, depending on 'multicore' feature

* Update rust toolchain

* cargo fmt

* cleaner to track num_vars_padded and num_cons_padded

* cleanup

* further cleanup

* Cleanup & comments

* small fixes

* adjust code for padding constraints

* fix a bug with pad call

* add comment about num_nz_entries

* extend padding to NIZK methods

extend padding to NIZK methods

Co-authored-by: Lef Ioannidis <elefthei@seas.upenn.edu>
Co-authored-by: Srinath Setty <srinath@microsoft.com>
2021-04-22 10:27:54 -07:00
3for
5b59893903 annotation typo (#29) 2020-12-15 12:34:51 -08:00
François Garillot
075ada9c29 Fold panics in the enclosing Error case (#27) 2020-10-16 15:28:25 -07:00
François Garillot
9e4c166edb Refactor to idiomatic Result/Option patterns (#25)
This:
- introduces a small [thiserror](https://github.com/dtolnay/thiserror)-powered enum to improve ProofVerifyError's messages,
- refactors point decompression errors into a variant of that enum, thereby suppressing the panics which occur when decompresison fails.
- folds other panics into the Error cases of their enclosing `Result` return
2020-09-29 15:18:43 -07:00
Srinath Setty
1bb98a36b1 additional error checking 2020-09-01 10:13:53 -07:00
Srinath Setty
2d22bff71f Add APIs to specify an R1CS Instance (#24) 2020-08-31 14:11:42 -07:00
Daniel Lubarov
15a9826e3c Some minor tweaks (#21)
Minor tweaks
2020-08-03 11:55:21 -07:00
Srinath Setty
c24a6abe99 Reduce the number of public APIs smaller and add more detailed documentation 2020-07-24 15:25:11 -07:00
Srinath Setty
2bfc333896 Address Clippy warnings 2020-07-24 14:42:09 -07:00
Srinath Setty
eb969d5dcf Pub (#14)
limit public APIs
2020-07-24 14:42:09 -07:00
Srinath Setty
290bbc0897 organize nizk and scalar modules 2020-07-24 14:42:09 -07:00
Srinath Setty
958e9450db introduce a separate type RandomTape atop Transcript (#13) 2020-07-24 14:42:08 -07:00
Srinath Setty
456970e710 introduce APIs for NIZK and SNARK proof systems (#11) 2020-07-24 14:42:08 -07:00
Srinath Setty
95b9ad35a6 initial commit 2020-07-24 14:41:48 -07:00