What is SnarkVM?
SnarkVM is a decentralized virtual machine designed for zero-knowledge proof execution on the Aleo blockchain. It provides a complete toolkit for building privacy-preserving applications with cryptographic guarantees.SnarkVM is the core virtual machine that powers the Aleo network, enabling developers to build applications with native privacy features.
Key Features
1
Zero-Knowledge Proof Execution
Execute programs with cryptographic proof generation, ensuring privacy and correctness without revealing sensitive data.
2
Modular Architecture
Built with a clean separation of concerns across multiple crates:
- Console: Plaintext VM types (Address, Field, Group, Scalar)
- Circuit: Constraint system equivalents for proof generation
- Synthesizer: Program execution and proof synthesis
- Ledger: Blockchain state management
3
Cryptographic Primitives
Includes battle-tested implementations of:
- Poseidon hash functions
- BLS12-377 elliptic curves
- Varuna SNARK proofs
- Polynomial commitments
4
Multi-Platform Support
Works across platforms with
std and wasm support, enabling both server-side and browser-based applications.Architecture Overview
SnarkVM follows a layered architecture where each crate builds upon lower-level components:Core Crates
Who Should Use SnarkVM?
SnarkVM is ideal for:- Blockchain Developers building privacy-preserving applications on Aleo
- Cryptography Researchers working with zero-knowledge proof systems
- Application Developers needing verifiable computation with privacy guarantees
- Protocol Engineers implementing custom cryptographic protocols
Design Principles
Backwards Compatibility
All changes must be backwards compatible to prevent network forks. The codebase is deployed in production, so modifications that alter consensus behavior require version gating.Safety and Security
Performance
SnarkVM uses parallel execution withrayon where appropriate and includes CUDA support for GPU acceleration of cryptographic operations.
Version Information
- Current Version
- License
Version: 4.4.0Rust Version: 1.88.0 or higherEdition: 2024
Next Steps
Installation
Install SnarkVM and set up your development environment
Quick Start
Build your first SnarkVM application