Commit Graph

21 Commits

Author SHA1 Message Date
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
e373f4633d edits to address clippy with the latest Rust (#90) 2022-07-13 14:46:13 -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
iontzialla
bf35556b90 Complete addition: handle addition of equal numbers and addition of negation (#78)
* make addition complete. test addition corner cases. optimizations

* optimization and comment

* fix errors

* all tests pass
2022-06-09 11:22:15 -07:00
Srinath Setty
0154358469 Verifier's checks (#73)
* begin adding verification checks

* add verifier checks

* remove unnecessary dead_code
2022-05-18 15:42:02 +05:30
Srinath Setty
1fd4eee2b6 Recursion implementation (#65)
* recursion attempt

* address clippy

* initialize the running instance and witness of the primary correctly

* add asserts for debugging

* fix a bug in AllocatedPoint

* add debug statements

* fix an issue with how we inputize hashes; remove debug statements

* rename

* cleanup

* speedup tests

* require step_circuit implementors to provide a way to execute step computation
2022-05-17 05:59:29 -07:00
Srinath Setty
07b3c4289b Recursion APIs (#62)
* recursion APIs (WIP)

* PublicParams struct and associated new

* fix build

* draft of APIs

* start with tests

* add a test case for the base case of recursion
2022-05-15 12:05:18 +05:30
iontzialla
9f7c12dbc5 Base case for second circuit (#60)
* output the incoming instance as the running instance in one of the circuits

* Make some verifier circuit inputs optional (for base case)
2022-05-14 07:56:57 -07:00
Srinath Setty
562fa71027 move from rug to num-bigint (#53) 2022-05-13 01:50:37 -07:00
Srinath Setty
677fe23673 Switch RO to use the one in the Group trait (#54)
* switch to RO in the Group trait

* simplify compression

* absorb IO as bignum for relaxedR1CS
2022-05-13 01:49:34 -07:00
Srinath Setty
82b7fabd9d absorb running instance separately (for clarity) (#52) 2022-05-12 23:18:53 -07:00
Srinath Setty
706d688a13 add hash(params, U, z0, zi, i) when generating a challenge (#51)
* add hash(params, U, z0, zi, i) when generating a challenge

* address clippy
2022-05-12 22:34:12 -07:00
Srinath Setty
485eb3fac6 fix build (#48)
* fix build

* switch to stable
2022-05-10 23:27:27 -07:00
Arthur Greef
9a466d1467 Change alloc_num_equals arguments to references (#45) 2022-04-30 04:14:38 +05:30
Srinath Setty
751b3434ec make gadgets public, expose coords, cleanup (#39)
* make gadgets public, expose coords, cleanup

* fix clippy
2022-04-25 16:11:56 -07:00
Srinath Setty
fd0b0b787b remove unused where (#38) 2022-04-25 15:58:30 -07:00
iontzialla
4656a7179d Refactor circuit code (#37)
* update crate versions

* refactor

* small tweaks

* run cargo fmt

* fix comments

* remove unused code

* address clippy

Co-authored-by: Srinath Setty <srinath@microsoft.com>
2022-04-25 14:54:53 -07:00
Srinath Setty
866717a8f2 cleanup how points are allocated (#29) 2022-04-15 12:04:52 -07:00
Srinath Setty
c20da2f58c Cleanup (#27)
* VerificationCircuit --> NIFSVerifierCircuit, for clarity

* InnerCircuit --> StepCircuit

* Rename

* cleanup imports

* additional cleanup in the test

* small cleanup
2022-04-13 17:29:48 -07:00
Srinath Setty
cbc3fe81dc cleanup: merge ecc and ecc_circuit (#25) 2022-04-08 14:19:32 -07:00
Srinath Setty
e47b6148f4 Verifier circuit (#23)
* ECC scalar multiplication (first draft)

* fix clippy nits

* start implementing the ro gadget: 1st design Poseidon + truncate

* truncate to 128 bits

* implement add + double in constraints

* finish implementing constraints for ecc

* cargo fmt

* input of smul should be an array of bits

* cleanup ro a bit. Make the challenge returned be a vec of allocated bits

* switch to neptune 6.0

* start implementing high level circuit

* incomplete version of the verifier circuit with many TODOS

* optimize ecc ops. add i ==0 case to the circuit

* fix 0/1 constants at the circuit

* wrap CompressedGroupElement of Pallas and Vesta

* cargo fmt

* generate poseidon constants once instead of every time we call get_challenge

* Implement RO-based poseidon to use outside of circuit. Reorganize the repo

* add inner circuit to verification circuit

* start adding folding of the io. there is an error in the first call to  mult_mod

* add test to check that bellperson-nonnative is compatible with nova

* remove swap file

* add another test that fails

* add inputs to the circuits in tests

* rename q to m in circuit.rs. add more tests in test_bellperson_non_native. change a in test_mult_mod to expose error

* push test for equal_with_carried. fix the issue is src/r1cs.rs

* cargo fmt + update the verifier circuit: add folding of X and update all hashes with X

* make limb_width and n_limbs parameters

* make params part of h1

* allocate the field order as constant. add check that z0 == zi when i == 0

* fix error in test_poseidon_ro

* remove merge error

* small fixes

* small fixes to comments

* clippy lints

* small edits; rename tests

* move inputize before from_num

* _limbs --> _bn

* _limbs --> _bn

Co-authored-by: Ioanna <iontzialla@gmail.com>
2022-04-07 14:53:57 -07:00