tldr: "Developing efficient zero-knowledge proving systems for mobile devices, enabling private digital ID and secure communication with minimal resources."
tldr: "Mapping out the ZK-SNARKs ecosystem, evaluating ZKP solutions using standardized and reproducible benchmarks, and advancing the most promising ZKP stacks with developer-friendly tooling to lower adoption barriers, enabling efficient client-side ZKP applications."
The Client-Side Proving project aims to develop practical and efficient zero-knowledge (ZK) proving systems tailored specifically for mobile devices. By exploring various proving systems - including Binius, Spartan, Plonky2, Scribe, and WHIR - we provide benchmarks, insights, and optimized implementations that enable performant client-side applications.
The Client-Side Proving project aims to develop practical and efficient implementations and tooling for zero-knowledge (ZK) proving systems tailored specifically for mobile devices. By exploring various proving systems we provide benchmarks, insights, and optimized implementations that enable performant client-side applications.
### Objective
Our primary objective is to identify and optimize ZK proof systems that require minimal resources, have no trusted setup, and maintain post-quantum security. These efforts are particularly focused on supporting applications in digital identity, secure communications, and privacy-preserving credential management.
We publish the CSP Quarterly Report, which benchmarks zkVMs and ZKP stacks for mobile feasibility. In parallel, we research promising ZKP stacks, prioritizing transparent (no-setup), post-quantum–sound ZKP systems with direct on-chain verification. All evaluations respect realistic mobile RAM budgets - under 4 GB on Android and 6 GB on iPhone.
### Project Status
- **Stage:** MVP Development
- **Status:** Active
- **Team Lead:** Alex Kuzmin
- **Team Members:** Guorong Du
- **Team Members:** Guorong Du, Brechy
### Technical Approach
The project rigorously benchmarks mobile-friendly ZK proving systems based on critical criteria including computational complexity, RAM efficiency and proof size. Key innovations and strategies include:
-**Benchmarking Binius, Spartan, Plonky2, and Scribe** for mobile usability.
- **Optimizing RAM usage** through streaming techniques.
- **Evaluation and integration of lookups** to enhance proving efficiency in computationally intensive ZK circuits.
- We are developing a standardized cloud-first benchmarking pipeline that uses fixed hardware profiles, supports straightforward circuit and stack extensions, and runs qualifying targets on real mobile devices.
- We aim to publish the benchmarking results in a comparison-friendly format that offers filtering and sorting.
-For ZKP stack R&D, we are currently exploring multilinear sumcheck-based ZKP schemes (Spartan, Hyperplonk, SuperSpartan) in combination with the latest transparent and post-quantum polynomial commitment scheme (WHIR).
### Milestones
- **April 2025:** Established baseline benchmarks for common mobile hardware.
- **May 2025 (planned):** Comprehensive benchmarking results published for selected ZK proving systems.
- **June 2025 (planned):** Optimization of Spartan using WHIR PCS and/or Scribe's read-write streaming techniques.
- **Q3 2025 (planned):** Collaboration with an Identity initiative, integrating optimized proving systems.
- **April 2025**: Established baseline benchmarks for common mobile hardware.
- **June 2025**: Published the first benchmark results, [Efficient Client-Side Proving for zkID](https://pse.dev/blog/efficient-client-side-proving-for-zkid).
- **Q3 2025 (planned)**: Researching the most efficient sumcheck-based ZKP system with WHIR PCS, adding Noir frontend and on-chain verifier
- **Q4 2025 (planned)**: Publishing the first edition of the **CSP Quarterly Report** containing the benchmarks of demanding ZKP circuits (SHA-256, ECDSA) in latest ZKP systems and zkVMs that claim to be client-side oriented.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.