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>
This commit is contained in:
arnaucube
2023-09-11 09:31:23 +02:00
committed by GitHub
parent ac913ab573
commit 8256c27609
19 changed files with 1711 additions and 27 deletions

View File

@@ -26,7 +26,9 @@ ark-vesta = {version="0.4.0"}
ark-crypto-primitives = { version = "^0.4.0", default-features = false, features = ["crh"] }
[features]
default = ["parallel"]
default = ["parallel", "nova", "hypernova"]
hypernova=[]
nova=[]
parallel = [
"ark-std/parallel",