acceleration-program
acceleration-program copied to clipboard
Proposal: Halo2 Aggregation Toolbox
General Grant Proposal
- Project: Halo2 Aggregation Toolbox #6
Project Overview :page_facing_up:
Overview
The Halo2 Aggregation Toolbox aims to provide users with a user-friendly interface for merging proofs, verifying them, and generating verifiers using the Halo2 zero-knowledge proof system.
Project Details
- Develop a user-friendly interface for non-expert users to interact with Halo2 proofs.
- Enable efficient aggregation, verification, and verifier production for Halo2 proofs.
- Ensure the toolbox is extendable for future improvements in zero-knowledge proof technology and Halo2 advancements.
- Design the API, output the API developer documentation and related blogs.
Team :busts_in_silhouette:
Team members
-
Names of team members
- Shixiang Tang
- Shixiao Sun (Direct contact)
-
Email
-
Telegram handle
- @Xor0v0
- @Vap0RSh4wN
Team's experience
-
Student in cryptography from BUPT Main contributor to the open source zk tutorials z2o-k7e and WTF-zk.
-
Student in cryptography from POLYU Focus on zk security.
Team Code Repos
- https://github.com/Xor0v0
- https://github.com/Vap0RSh4wN
Development Roadmap :nut_and_bolt:
Overview
- Total Estimated Duration: 8 weeks
- Full-time equivalent (FTE): 0.5
- Expected Start Date: May 1, 2024
- Expected End Date: June 26, 2024
Milestone 1: Preliminary Research and Project Setup
- Estimated Duration: 1 weeks
- FTE: 0.5
- Estimated delivery date: May 8, 2024
1. Research and Feasibility Study:
- Perform an in-depth analysis of the Halo2 protocol, focusing on its use in proof aggregation and the specifics of implementing zero-knowledge proofs in Rust.
- Investigate existing Rust libraries and tools that could support Halo2 proof operations.
- Learn the halo2 aggregators from Poseidon ZKP and Scroll.
2. Project Structure and Initial Setup:
- Establish a clear project structure, including directories for source code, tests, documentation, and examples.
- Define coding standards and guidelines for contributing to the project.
- Begin drafting documentation plans, including API documentation, user guides, and developer guides.
Milestone 2: Core API and Proof Aggregation Development
- Estimated Duration: 4 weeks
- FTE: 0.5
- Estimated delivery date: June 5, 2024
1. API Design:
- Design Rust API for handling and aggregating Halo2 proofs.
- Ensure the API design accommodates future extensions for verification and verifier generation.
- Document the API design, including data structures, function signatures, and error handling, using rustdoc.
2. Proof Aggregation Implementation:
- By Proof Recursion of Halo2, implement the core logic for aggregating proofs, integrating any necessary cryptographic libraries and optimizing for performance and security.
3. Testing Framework:
- Develop tests for the API and aggregation functionality to ensure correctness, stability, and performance.
Milestone 3: Verification and Verifier Generation
- Estimated Duration: 2 weeks
- FTE: 0.5
- Estimated delivery date: June 19, 2024
1. Verification Functionality Development:
- Implement the functionality for verifying aggregated proofs, ensuring compatibility with the aggregation logic and adherence to cryptographic standards.
2. Verifier Generation:
- Develop the capability to generate verifiers.
3. Documentation and Examples:
- Enhance the project documentation to cover the new functionalities.
Milestone 4: Finalization, Documentation, and Community Launch
- Estimated Duration: 1 weeks
- FTE: 0.5
- Estimated delivery date: June 26, 2024
1. Library Optimization and Final Testing:
- Conduct final optimizations.
- Complete final testing to ensure the toolbox is stable.
2. Output Documentation and Blogpost:
- Finalize all documentation, ensuring it is easy to understand, and accessible to both beginners and experienced developers.
- Publish related blog.
Reference
- https://github.com/zcash/halo2
- https://zcash.github.io/halo2/background/recursion.html#Polynomial-commitment-using-inner-product-argument
- https://github.com/scroll-tech/halo2-snark-aggregator
Hi @NOOMA-42, I had finished our proposal. If you have any changes or inquiries, please feel free to contact me. Thank you for your help!
I'm looking for a reviewer
regarding that halo2 aggregation toolkit task, the snark-verifier maintainer think it's abit unnecessary to have an interface given this function already exist in it. We're also thinking about other potential direction.