acceleration-program icon indicating copy to clipboard operation
acceleration-program copied to clipboard

Proposal: Halo2 Aggregation Toolbox

Open Vap0RSh4wN opened this issue 11 months ago • 2 comments

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

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

Vap0RSh4wN avatar Mar 07 '24 03:03 Vap0RSh4wN

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!

Vap0RSh4wN avatar Mar 09 '24 07:03 Vap0RSh4wN

I'm looking for a reviewer

NOOMA-42 avatar Mar 16 '24 16:03 NOOMA-42

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.

NOOMA-42 avatar May 23 '24 08:05 NOOMA-42