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

Proposal: RSA GitHub Wallets POC

Open hcheng826 opened this issue 1 year ago • 6 comments
trafficstars

General Grant Proposal

  • Project: RSA GitHub Wallets POC
  • https://github.com/privacy-scaling-explorations/acceleration-program/issues/11

Project Overview :page_facing_up:

Overview

Use the RSA signature that GitHub supports to generate off-chain zk proof from the commit message or pull request data, just like how zk email generate the proof from email payload. Use the zk proof to integrate with AA wallet and perform operations. The circom circuits supporting succinct RSA signature proof is already made by zk-email. We can also use their relayer to generate and submit proofs to the AA bundlers.

Project Details

Provide as much detail as possible about the project's expected final state.

  • Scope of Work: PoC, Blog Post or Spec on HackMd

  • Key Features

    The RSA GitHub Wallets POC project integrates several core components to create a seamless and secure system for authorizing transactions via GitHub operations:

    • GitHub User/Wallet Account Owner: Users hold GPG keys to submit signed commits to GitHub. These signatures are used to generate off-chain zk proofs for on-chain verification.
    • Relayer: A crucial component that listens to commit events, parses commit messages, and generates zk proofs from them. The relayer then submits these proofs to the AA bundler. Additionally, we will experiment with the possibility of using GitHub Actions as part of the CI/CD pipeline to execute relayer tasks.
    • Wallet Account on Chain (AA Smart Contract): This on-chain component verifies the zk proofs generated from signed commit messages and executes the corresponding user operations (userOp).
  • Use Cases and Potential Impact

    • Developer Transactions: Streamline project financing by allowing developers to authorize transactions directly from GitHub.
    • Collaborative Funding: Facilitate collective fund management through shared AA wallets, with transactions authorized by GitHub activities.
    • Community Incentives: Encourage open-source contributions by enabling commits or PRs to trigger payments from a project's AA wallet.
  • PoC/MVP or other relevant prior work or research on the topic

    • ZK email and ZK email wallet

Team :busts_in_silhouette:

Team members

Team Website

  • N/A

Team's experience

Team Code Repos

  • not created yet

Development Roadmap :nut_and_bolt:

Overview

  • Total Estimated Duration: 3 months
  • Total Estimated Working Hours: 280 hours
  • Full-time equivalent (FTE): 0.5
  • Expected Start Date: 2024/04/15
  • Expected End Date: 2024/07/31

Milestone 1: Research and Design

  • Estimated Duration: 2 weeks
  • FTE: 0.5
  • Estimated Delivery Date: 2024/05/01

Deliverables:

  1. Background Research: Conduct research on existing solutions and technologies related to off-chain zk proofs and GitHub GPG key signatures.
  2. System Design: Develop a detailed system design document outlining the architecture and components of the RSA GitHub Wallets PoC.
  3. Specification Write-up: Create a comprehensive specification document for the project, including technical details and requirements.

Milestone 2: Circuit Development

  • Estimated Duration: 4 weeks
  • FTE: 0.5
  • Estimated Delivery Date: 2024/05/30

Deliverables:

  1. Circuit Implementation:
  • Develop and implement the circom circuit for verifying GitHub GPG key signatures.
  • Explore the implementation with halo2
  1. Testing: Create a test suite for the circuit to ensure its functionality and robustness.
  2. Documentation: Provide detailed documentation on the circuit design, implementation, and usage.

Milestone 3: Relayer Development

  • Estimated Duration: 2 weeks
  • FTE: 0.5
  • Estimated Delivery Date: 2024/06/15

Deliverables:

  1. Relayer Implementation: Develop the relayer component to listen for commit events, generate zk proofs, and submit them to the AA bundler.
  2. GitHub Actions Integration: Experiment with integrating the relayer into GitHub Actions for automated execution.
  3. Testing and Documentation: Create a testing guide and documentation for the relayer.

Milestone 4: AA Wallet Setup

  • Estimated Duration: 2 weeks
  • FTE: 0.5
  • Estimated Delivery Date: 2024/06/30

Deliverables:

  1. AA Wallet Configuration: Set up an Account Abstraction (AA) wallet to accept zk proofs and execute transactions based on the verified commit messages.
  2. Documentation: Provide detailed documentation on the AA wallet setup, configuration, and usage.

Milestone 5: Integration and Testing

  • Estimated Duration: 2 weeks
  • FTE: 0.5
  • Estimated Delivery Date: 2024/07/15

Deliverables:

  1. End-to-End Testing: Conduct integration testing to ensure all components work together seamlessly.
  2. Bug Fixing: Address any issues or bugs identified during testing.
  3. Documentation: Update documentation to reflect the integration process and testing results.

Milestone 6: Finalization and Outreach

  • Estimated Duration: 2 weeks
  • FTE: 0.5
  • Estimated Delivery Date: 2024/07/31

Deliverables:

  1. Summary Report: Compile a comprehensive summary of the project, highlighting key findings, challenges, and future directions.
  2. Blog Post: Write a blog post to share the project's outcomes, insights, and potential impact with the wider community.
  3. Code Repository: Ensure all code is well-documented, organized, and available in a public repository for community access and contribution.

Additional Information :heavy_plus_sign:

  • Reference Material
    • GitHub commit message signature
      • https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification
    • ZK Email and ZK email wallet
      • https://github.com/zkemail
      • https://github.com/zkemail/email-wallet
    • Account Abstraction
      • A reference implementation of AA: https://github.com/eth-infinitism/account-abstraction
      • AA detailed explanation:
        • https://www.youtube.com/watch?v=B6sN8EXszP8
        • https://reyerchu.com/moodle/pluginfile.php/376/mod_resource/content/13/Decrypting%20ERC4337_%20Technical%20Architecture%20and%20Transactions.pdf
        • https://www.youtube.com/watch?v=MHZ0LwpKcpI

hcheng826 avatar Mar 10 '24 11:03 hcheng826

I'm looking for a reviewer

nooma-42 avatar Mar 16 '24 15:03 nooma-42

Hey, I can take this.

ethorhil avatar Apr 02 '24 09:04 ethorhil

@ETHorHIL Thanks! do let me know if there's any feedback!

hcheng826 avatar Apr 02 '24 12:04 hcheng826

The proposal looks sensible. We can move on.

ethorhil avatar Apr 02 '24 13:04 ethorhil

@ETHorHIL I have the first draft for milestone 1 of background research and design here: https://hackmd.io/@THUxtt18Qeiwn2vtWvmVDg/H1B5WKbxC I read the guide Looks like I should wait for feedbacks or approval before moving on to the next milestone? Let me know if I can go ahead or there're any feedbacks. Thanks!

hcheng826 avatar Apr 13 '24 10:04 hcheng826

@hcheng826 we'll proceed to another round of review by @mitsu1124, please kindly wait for further notice

@ETHorHIL I have the first draft for milestone 1 of background research and design here: https://hackmd.io/@THUxtt18Qeiwn2vtWvmVDg/H1B5WKbxC I read the guide Looks like I should wait for feedbacks or approval before moving on to the next milestone? Let me know if I can go ahead or there're any feedbacks. Thanks!

nooma-42 avatar Apr 14 '24 07:04 nooma-42