Deimos is an open-source benchmarking suite for computing zero-knowledge proofs on mobile devices. It provides consistent, repeatable performance tests across various frameworks, starting with MoPro.
The goal of Deimos is to:
- Benchmark performance of common cryptographic and proof-related functions such as Poseidon2, SHA-256, Keccak-256, and EdDSA for mobile-specific environments.
- Compare multiple benchmarking tools such as DSLs like Circom, Noir and ZkVMs like RiscZero, Cairo
- Present results via a public website dashboard.
Note: This project is under active development and undergoes frequent changes in the
devbranch.
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
│ │
│ └── 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
-
Clone the repository
git clone https://github.com/BlocSoc-iitr/deimos.git git checkout dev cd deimos -
Explore the website dashboard
cd website npm install npm run dev -
Run mobile benchmarks
- Navigate to the corresponding mobile app directory (e.g.,
mobile-apps/mopro/sha256/android/). - Follow the platform-specific README for setup instructions.
- Build and run on physical devices for accurate performance measurements.
- Navigate to the corresponding mobile app directory (e.g.,
We welcome contributions! See CONTRIBUTING.md for:
- Setting up the development environment
- Adding new zkVM frameworks
- Contributing benchmark circuits
- Reporting issues
This project is licensed under the MIT License.
Building neutral, comprehensive benchmarks for mobile ZK proving.