This is an educational project aimed at building a Rust implementation of lattice-based folding schemes, progressing through theoretical research, practical code analysis, and hands-on development to better understand lattice folding.
Our plan: 1. theoretical research, 2. practical learning, 3. coding
- Rust (install via rustup)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
- Git
Clone the repo and run the setup script. This will clone reference codebases, download papers, and verify the Rust toolchain.
mkdir baby-lattice-folding && cd baby-lattice-folding
git clone https://github.com/coset-io/baby-lattice-folding.git
cd baby-lattice-folding
./scripts/setup.shOr run individual steps:
# Download papers (gitignored, not committed)
./scripts/download-papers.sh
# Clone reference repos into ../references/
# (latticefold, salsaa, arkworks-algebra, kyber)
# See scripts/setup.sh for detailscargo build
cargo testGoal: Read recent lattice-based folding schemes: Hypernova, Latticefold, Latticefold plus, Neo, SALSAA and Cyclo. Understand how lattice-based folding schemes are designed and the current bottlenecks.
Paper list:
Product: videos or lectures or blogs
-
Hypernova
-
Latticefold
- Notes:
- Video: Latticefold 2026-01-25
-
Latticefold plus
- Notes: Latticefold 2026-02-08
- Video: Latticefold 2026-02-08
-
SALSAA
-
Neo
- Notes:
- Video: SuperNeo 2026-03-15
-
Cyclo
- Notes: Cyclo 2026-04-26
- Video: Cyclo 2026-04-26
Timeline: 2026.01 ~ 2026.04
Goal: We plan to develop baby lattice folding, an educational Rust implementation of the lattice-based folding scheme (SALSAA), building upon existing theoretical and practical foundations.
Outline:
- RoKs:
- join
- batch
- decompose
- rp
- fold
- norm check
- Whole folding chain of the RoKs
- Future:
- R1CS support: currently only support raw
LinRelation. Should have a way to support - Fiat–Shamir
- Precomputed NTT twiddle table for ζ^i —
src/ntt.rsrecomputes powers inside the butterfly; precompute once per(Q, D). -
rayonfor data parallelism — NTT butterflies, Ajtai row sums,Rqmatmul, MLE eval. Behind a feature flag so the educational path stays single-threaded
- R1CS support: currently only support raw
Reference:
- Latticefold: https://github.com/NethermindEth/latticefold
- SALSAA: https://github.com/lattice-arguments/salsaa
- Cyclo: https://github.com/osdnk/cyclo
- Arkworks-Rust: https://github.com/arkworks-rs/algebra
Product: codes
Timeline: 2026.04 ~ 2026.08
