Documentation
What is Deimos?
Deimos is an open-source project, designed to provide comprehensive benchmark data that allows developers to compare the performance of different zkVMs across various devices. This enables developers to choose the most suitable zkVM based on their target device requirements.
Deimos serves two primary functions:
- Benchmarking Suite: A comprehensive toolkit for evaluating zero-knowledge virtual machines (zkVMs) on mobile devices
- Public Dashboard: A web-based service where users can view and compare all benchmark results
The project aims to benchmark zkVM performance for mobile-specific environments, compare multiple frameworks (initially MoPro, imp1, and ProveKit), measure performance of common cryptographic & proof-related hash functions across different languages (Circom, Noir) and make this information accessible to users via a public dashboard.
Technology Stack
Circuit Development
Circom Ecosystem:
- Circom Compiler: Version 2.1.6 for circuit compilation
- snarkjs: Groth16 proof generation and verification
Circom Libraries:
- circomlib: Standard library of circuits
- hash-circuits: Library for Blake2s circuit
- keccak256-circom: Library for Keccak256 circuit
Noir Ecosystem:
- Noir: Version 1.0.0-beta.8
- Nargo: Build and compilation toolchain
Mobile Application
- Framework: Flutter
- Language: Dart
- Support: Android & iOS
Website Dashboard
- Framework: Next.js 15.5.3 with Turbopack
- Language: TypeScript
- Styling: Tailwind CSS
Repository Structure
deimos/ ├── website/ # Dashboard for displaying benchmark results │ ├── src/app/ # Next.js application │ └── package.json │ ├── benchmarking-suite/ # Core benchmarking implementation │ ├── frameworks/ │ │ ├── circom/ # Circom circuit implementations │ │ │ ├── circuits/ # Hash function circuits │ │ │ │ ├── sha256/ │ │ │ │ ├── keccak256/ │ │ │ │ ├── blake2s256/ │ │ │ │ ├── poseidon/ │ │ │ │ ├── mimc256/ │ │ │ │ └── pedersen/ │ │ │ └── inputs/ # Test vectors │ │ └── noir/ # Noir implementations (planned) │ │ │ └── moPro/ # MoPro mobile integration │ ├── mopro-sha256/ # SHA256 mobile app │ ├── mopro-keccack256/ # Keccak256 mobile app │ └── mopro-example-app/ │ ├── .github/workflows/ # CI/CD automation │ └── validate-circuits.yml # Circuit validation │ ├── README.md ├── CONTRIBUTING.md ├── APP_INTEGRATION_GUIDE.md └── LICENSE