It was an attempt to verify sp1 proofs inside aleonet's snarkos for broader usage of aleonet
This project is an attempt to verify SP1 (Succinct Proofs) inside AleoNet's SnarkOS. The goal is to extend the usability of AleoNet by enabling broader proof verification capabilities, specifically integrating SP1 proofs for enhanced interoperability and scalability within the Aleo ecosystem.
AleoNet, powered by SnarkOS, provides a robust privacy-preserving environment using zero-knowledge proofs (ZKPs). However, the verification of external succinct proofs, such as SP1, is not natively supported. By integrating SP1 proof verification, this project aims to:
Expand the range of provable computations in AleoNet.
Enable cross-system interoperability with SP1-compatible frameworks.
Improve efficiency in verifying off-chain computations on AleoNet
How It's Made
This project was built by modifying the SnarkOS proof verification pipeline to support SP1 proofs. The key technical components and technologies used include:
Rust: The core implementation of SnarkOS and Aleo’s zkVM is written in Rust, making it necessary to extend Rust-based cryptographic libraries to support SP1 proof verification.
SnarkVM: Used as the foundation for verifying zero-knowledge proofs inside AleoNet. We had to extend the existing verifier logic to accommodate SP1 proof structures.
SP1 Proof System: The core SP1 proof structures were adapted to be compatible with SnarkOS’s proof validation routines.
Circuit Optimizations: To minimize overhead, we optimized the proof verification circuit to ensure minimal computational cost when verifying SP1 proofs inside SnarkOS.
Hacky Workarounds: One particularly tricky challenge was adapting SnarkOS’s proof parsing logic to accept SP1 proofs without breaking compatibility with existing Aleo-native proofs. We introduced a dynamic proof type identifier to allow flexible verification of different proof systems.
Challenges
SnarkOS is optimized for Aleo's native proof system, requiring modifications to handle SP1 proofs.
Maintaining efficiency while integrating an external proof system.
Ensuring compatibility with existing AleoNet features and zkVM constraints.
Future Work
Optimization of the verification circuit for better performance.
Testing SP1 proofs with various use cases on AleoNet.
Exploring other proof systems for possible integration.