sonobe

Experimental folding schemes library implemented in a joint effort by 0xPARC and PSE.

https://github.com/privacy-scaling-explorations/sonobe

Sonobe is a modular library to fold circuit instances in an Incremental Verifiable computation (IVC) style. It features multiple folding schemes and decider setups, allowing users to pick the scheme which best fit their needs.

Sonobe is conceived as an exploratory effort with the aim to push forward the practical side of folding schemes and advancing towards onchain (EVM) verification.

"The Sonobe module is one of the many units used to build modular origami. The popularity of Sonobe modular origami models derives from the simplicity of folding the modules, the sturdy and easy assembly, and the flexibility of the system."

Warning: experimental code, do not use in production.
The code has not been audited. Several optimizations are also pending. Our focus so far has been on implementing the Nova and CycleFold schemes and achieving onchain (EVM) verification.

Schemes implemented

The library uses arkworks, and implements the following folding schemes:

Frontends

Frontends allow to define the circuit to be folded (ie. FCircuit). The recommended frontend is directly implementing the FCircuit trait with the Arkworks constraint system.

Alternatively, experimental frontends for Circom, Noir and Noname can be found at the sonobe/experimental-frontends directory, which have some computational (and time) overhead.

More details about the frontend interface and the experimental frontends can be found at the sonobe-docs/frontend page.