meta-introspector / mina-snarky-o1js-zkapp-introspector

zkIntrospector: A Self-Aware zkApp Framework for Gödel Number Reflection
GNU Affero General Public License v3.0
3 stars 1 forks source link

zkApp-based GitLab Job Runner with Performance Sampling and Zero-Knowledge Proofs #5

Open jmikedupont2 opened 2 months ago

jmikedupont2 commented 2 months ago

Navigators Season 2: Growth Grants Proposal

Proposal Title

zkApp-based GitLab Job Runner with Performance Sampling and Zero-Knowledge Proofs

Project Background

The proposed project aims to create a zkApp that integrates with GitLab (and later github etc) to trigger job runners via mina payments with API calls, sample the runtime using custom Linux perf commands, and hash the results of the execution. The zkApp will deduct a certain amount of funds from the user's account upon successful execution and verification of the job. This system will utilize a fungible token mechanism where users can share resources and sell them at certain prices, creating an ecosystem of zkApps that can build and replace themselves.

This project is designed to enhance the Mina ecosystem by providing a secure and efficient way to manage and verify the execution of GitLab jobs, leveraging zero-knowledge proofs to ensure the integrity and authenticity of the process.

Proposal Overview

Problem: Currently, there is no integrated solution that allows users to trigger GitLab job runners, sample their runtime performance, and verify the results using zero-knowledge proofs within the Mina ecosystem. This lack of integration and verification can lead to inefficiencies and security vulnerabilities.

Solution: The proposed solution is a zkApp that integrates with GitLab to trigger job runners, samples the runtime using perf, hashes the results, and verifies the execution using zero-knowledge proofs. The zkApp will deduct funds from the user's account upon successful verification, ensuring that the account is active and working.

Impact: This proposal contributes to enhancing the Mina ecosystem by offering improved tools for job execution and verification, encouraging adoption, and attracting more users and developers. It enables novel applications by integrating GitLab job runners with zero-knowledge proofs, creating a secure and efficient ecosystem for resource sharing and selling.

Audience: The target audience of this project includes developers, users, and organizations that utilize GitLab for continuous integration and deployment. It also targets users and developers within the Mina ecosystem who are interested in leveraging zero-knowledge proofs for secure and efficient job execution.

Architecture & Design

Detailed Design/Architecture:

  1. Trigger GitLab Job Runner:

    • Use GitLab's API to trigger job runners.
    • Store the API endpoint and credentials securely on-chain.
  2. Sample Runtime with Linux perf Commands:

    • Use perf to sample the runtime of the job.
    • Capture the performance data and hash it.
  3. Hash the Results of the Execution:

    • Hash the output of the job and the performance data.
    • Store the hash on-chain.
  4. Zero-Knowledge Proof (ZKP) Implementation:

    • Implement a ZKP to prove that the account is active and working.
    • Deduct funds from the account when the ZKP is verified.
  5. Fungible Token System:

    • Implement a fungible token system where users pay to host the system and earn coins from other users.

Vision: The long-term vision for this project is to create an ecosystem of zkApps that can build and replace themselves, enabling secure and efficient resource sharing and selling within the Mina ecosystem. This will encourage adoption, attract more users and developers, and enable novel applications.

Existing Work: [GitHub Repository Link] (If applicable)

Production Timeline: We expect this project to be in production within 3 months.

Budget & Milestones

Deliverables:

Mid-Point Milestones:

Project Timeline: 1-3 months

Budget Requested: Up to 100,000 MINA

Budget Breakdown:

Wallet Address: [MINA Wallet Address]

Team Info

Proposer GitHub: [GitHub Profile]

Proposer Experience: [Relevant experience building zkApps or other dApps, including links if available]

Team Members:

Achievements:

Risks & Mitigations

Risks:

Mitigations:

jmikedupont2 commented 2 months ago

This will use a custom fungible token https://docs.minaprotocol.com/zkapps/writing-a-zkapp/feature-overview/custom-tokens https://minaprotocol.com/blog/fungible-token-standard https://github.com/MinaFoundation/mina-fungible-token