From ee178d7e983702d7e9c5c5c3c669d9d9daff2e58 Mon Sep 17 00:00:00 2001 From: arnaucube Date: Tue, 28 Nov 2023 10:32:09 +0100 Subject: [PATCH] Initialize the README.md with a sketch of the structure --- README.md | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000..f177e3a5 --- /dev/null +++ b/README.md @@ -0,0 +1,41 @@ +# folding-schemes +(brief description) + +## Schemes implemented +- [Nova](https://eprint.iacr.org/2021/370.pdf) + [CycleFold](https://eprint.iacr.org/2023/1192.pdf) + +WIP: +- [HyperNova](https://eprint.iacr.org/2023/573.pdf) +- [ProtoGalaxy](https://eprint.iacr.org/2023/1106.pdf) + +### Frontends available +- [arkworks](https://github.com/arkworks-rs) +- [Circom](https://github.com/iden3/circom) + +## Usage + +### Overview +Suppose that the user inputs a circuit that follows the IVC structure, chooses which Folding Scheme to use (eg. Nova), and which Decider (eg. Spartan over Pasta curve). + +Later the user can for example change with few code changes the Folding Scheme being used (eg. switch to ProtoGalaxy) and also the Decider (eg. Groth16 over bn254), so the final proof can be verified in an Ethereum smart contract. + +### Folding the circuit +First let's define our circuit to be folded: +```circom +// +``` + +Now we plug it into the library: +```rust +// +``` + +### Generating the final proof (decider), and verifying it in Ethereum + +### Swapping curves and proving schemes +Additionally, let's suppose that for the final proof (decider), instead of using Groth16 over the BN254 curve, we want to use Marlin+IPA over the Pasta curves, so we can enjoy of not needing a trusted setup. +It just requires few line changes on our previous code [...] + + + +## License