Commit Graph

6 Commits

Author SHA1 Message Date
ashWhiteHat
9a2a1fdd13 Refactor Matrix vectors and Logical operation (#28)
* Refactor Matrix vectors operation

* Refacotr NIFS logical operation
2023-10-10 11:48:33 +00:00
13e471aeaf add error handling to several pending methods (#30) 2023-10-04 13:43:24 +00:00
8256c27609 Port/hypernova multifolding (#10)
* Port HyperNova's multifolding from https://github.com/privacy-scaling-explorations/multifolding-poc adapting and refactoring some of its methods and structs.

Note: adapted mle.rs methods from dense to sparse repr.

Co-authored-by: George Kadianakis <desnacked@riseup.net>

* HyperNova: move CCS struct outside of LCCCS & CCCS

HyperNova nimfs: move CCS structure outside of LCCCS & CCCS, to avoid
carrying around the whole CCS and duplicating data when is not needed.

Also add feature flags for the folding schemes.

---------

Co-authored-by: George Kadianakis <desnacked@riseup.net>
2023-09-11 07:31:23 +00:00
ac913ab573 Add decider circuit RelaxedR1CS (#21)
- Add naive decider circuit `RelaxedR1CSGadget`, which in-circuit checks
  that the given z satisfies the given RelaxedR1CS instance
- Add method to relax the R1CS instance
- Add check_relation (for testing only) to R1CS & RelaxedR1CS
- Migrate from own SparseMatrix to use ark_relations::r1cs::Matrix
- Add frontend helper to use arkworks circuits
2023-09-07 17:21:30 +00:00
d9887af535 Implement Nova's NIFS.Verify circuits (with CycleFold) (#11)
* Implement Nova's NIFS.Verify circuits (with CycleFold)

- Add circuit for NIFS.Verify on the main curve to check the folded `u`
  & `x`
- Add circuit for NIFS.Verify on the CycleFold's auxiliary curve to
  check the folded `cm(E)` & `cm(W)`
- Add transcript.get_challenge_nbits
- Add tests for utils::vec.rs

* replace bls12-377 & bw6-761 by pallas & vesta curves (only affects tests)

We will use pallas & vesta curves (for tests only, the non-tests code
uses generics) for the logic that does not require pairings, and while
Grumpkin is not available
(https://github.com/privacy-scaling-explorations/folding-schemes/issues/12).

* update links to papers to markdown style
2023-09-05 15:17:59 +00:00
240b916ddf Add initial CCS mod: (#6)
- port initial CCS structure with methods from multifolding-poc
- add R1CS helper methods, which will be used in Nova impl
2023-08-23 08:22:25 +00:00