A general-purpose zero-knowledge rollup built on Solana's SVM (Solana Virtual Machine) for generating and verifying cryptographic proofs on-chain.
ZKSVM is a research-oriented rollup implementation that leverages Solana's SVM API to create a scalable, proof-generating rollup system. The project focuses on benchmarking zero-knowledge proofs (SNARKs) on SVM as part of ongoing research into efficient blockchain scaling solutions.
The rollup consists of two main components:
The core rollup implementation that handles:
- Sequencer: Processes and batches transactions
- RollupDB: Manages account state and transaction storage
- Frontend: HTTP API for transaction submission and retrieval
- Settlement: Handles proof generation and on-chain verification
A client library for interacting with the rollup, providing:
- Transaction submission
- State querying
- Proof verification
- Solana SVM API:
solana-svm = "2.0.7" - Solana Runtime:
solana-program-runtime = "2.0.7" - Solana SDK:
solana-sdk = "2.0.7" - Solana Client:
solana-client = "2.0.7" - Compute Budget:
solana-compute-budget = "2.0.7" - BPF Loader:
solana-bpf-loader-program = "2.0.7"
- Actix Web: High-performance async web framework
- Tokio: Async runtime for Rust
The project integrates with:
- Light Protocol SVM: For advanced zero-knowledge capabilities
- Groth16-Solana: For efficient SNARK proof generation
- Ark-ff: Prime field arithmetic for cryptographic operations
- BN254: Elliptic curve operations for pairing-based cryptography
use crate::errors::Groth16Error;
use ark_ff::PrimeField;
use num_bigint::BigUint;
use solana_bn254::prelude::{
alt_bn128_addition,
alt_bn128_multiplication,
alt_bn128_pairing
};- SNARK Benchmarking: Evaluate performance of zero-knowledge proofs on SVM
- Scalability Research: Study efficient rollup architectures for blockchain scaling
- Proof Generation: Develop optimized proof generation pipelines
- On-chain Verification: Implement efficient on-chain proof verification
- General Purpose: Supports arbitrary Solana programs and transactions
- SVM Native: Leverages Solana's battle-tested virtual machine
- Research Platform: Designed for benchmarking and experimentation
- Modular Architecture: Separates concerns between core, client, and proof systems
- Rust 1.70+ with Cargo
- Solana CLI tools
- Access to Solana devnet/mainnet
- Clone the repository:
git clone <repository-url>
cd zksvm- Build the rollup core:
cd rollup_core
cargo build --release- Build the rollup client:
cd ../rollup_client
cargo build --release- Start the rollup core server:
cd rollup_core
cargo run --releaseThe server will start on http://localhost:8080 with the following endpoints:
GET /: Health checkPOST /submit_transaction: Submit a transaction to the rollupPOST /get_transaction: Retrieve transaction status
- Use the client to interact with the rollup:
cd rollup_client
cargo run --releasecurl -X POST http://localhost:8080/submit_transaction \
-H "Content-Type: application/json" \
-d '{
"transaction": "base64_encoded_transaction"
}'curl -X POST http://localhost:8080/get_transaction \
-H "Content-Type: application/json" \
-d '{
"signature": "transaction_signature"
}'- ✅ Basic rollup architecture with sequencer
- ✅ Solana SVM integration
- ✅ Transaction processing pipeline
- ✅ HTTP API for transaction submission
- ✅ Account state management
- ✅ Crossbeam channels for async communication
- 🔄 Zero-knowledge proof generation
- 🔄 Groth16-Solana integration
- 🔄 On-chain proof verification
- 🔄 Performance benchmarking
- 📋 Advanced proof batching
- 📋 Optimistic rollup support
- 📋 Cross-chain bridge integration
- 📋 Comprehensive benchmarking suite
The primary research objective is to benchmark zero-knowledge proof generation and verification on Solana's SVM. This includes:
- Proof Generation Performance: Measure time and resource usage for SNARK generation
- Verification Efficiency: Optimize on-chain proof verification
- Scalability Analysis: Study how proof generation scales with transaction volume
- Gas Cost Optimization: Minimize on-chain verification costs
- Integrating Groth16 proofs with Solana's BPF environment
- Optimizing elliptic curve operations on SVM
- Balancing proof generation time with verification efficiency
- Managing memory constraints in the Solana runtime
This is a research project focused on zero-knowledge rollup development. Contributions are welcome in the following areas:
- Zero-knowledge proof optimization
- SVM integration improvements
- Performance benchmarking
- Documentation and examples
This project is licensed under the MIT License - see the LICENSE file for details.
- Solana Labs for the SVM API
- Light Protocol for zero-knowledge research
- The broader zero-knowledge and rollup research community
Note: This is a research implementation and should not be used in production without thorough security audits and testing.

