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

Proposal: Porting Over zk-kit circuits from Circom to Noir - 2

Open YashBit opened this issue 1 year ago • 2 comments
trafficstars

Project: Porting Over zk-kit circuits from Circom to Noir - 2

**GitHub Issue: ** https://github.com/privacy-scaling-explorations/acceleration-program/issues/48

Project Overview:

Overview This project aims to port circomlib circuits from Circom to Noir for integrating with the zk-kit circuit repository for Noir. The circuits include:

  • ECDH (Elliptic Curve Diffie-Hellman)
  • ElGamal
  • Incremental Merkle Tree

Project Details:

  • Complete the Circuits (Write, Optimize, and Test)
  • Complete Ancillary Tasks: Documentation, Blog
  • Optimize circuits by leveraging unconstrained functions wherever possible.

Team 👥:

Team's Experience:

  • Proficient in Noir and Circom
  • Written code in Halo2 for IVC (folding schemes): Plonkish Pull Request
  • Developed Smart Contracts
  • Background: NYU CS (Undergrad), University of Cambridge (Offer for MPhil Engineering - CBL Lab), Research at NYU (DeepRL, NLU), Harvard (Cognitive Science). Please request CV for more details.

Development Roadmap 🔩:

Overview:

  • Total Estimated Duration: 1 month
  • Total Estimated Working Hours: 120 hrs
  • Full-time equivalent (FTE): 0.75
  • Expected Start Date: July 18th, 2024
  • Expected End Date: August 14th, 2024

Milestone 1: Port Circuits

  • Estimated Duration: 8 days
  • FTE: 0.75
  • Estimated Delivery Date: July 26th, 2024
  • Estimated Working Hours: 48 hrs

Milestone 2: Add Tests

  • Estimated Duration: 5 days
  • FTE: 0.75
  • Estimated Delivery Date: July 31st, 2024
  • Estimated Working Hours: 30 hrs

Milestone 3: Optimize Constraints + Documentation

  • Estimated Duration: 7 days
  • FTE: 0.75
  • Estimated Delivery Date: August 9th, 2024
  • Estimated Working Hours: 42 hrs

Referenced from GitHub Issue #47
Proposal by: RajeshRk18


YashBit avatar Jul 10 '24 07:07 YashBit

Hey @YashBit. Since poseidon-cipher should have already been implemented by the Noir team, I'd suggest replacing it with ElGamal.

ECDH and Incremental Merkle tree should be fine!

Current Circom implementations for reference:

  • https://github.com/privacy-scaling-explorations/zk-kit.circom/tree/main/packages/ecdh
  • https://github.com/privacy-scaling-explorations/zk-kit.circom/tree/main/packages/binary-merkle-root

As you can see the incremental Merkle tree is a binary one, and it should allow you to pass any depth (I guess that can be done on Noir as well).

cedoor avatar Jul 11 '24 13:07 cedoor

You should be able to update the issue description too right? If so, feel free to update it. the old versions are still visible and public.

  • Does 85 hours in 1 month correspond to 0.25 FTE?
  • Are you sure that 1 month is enough?
  • I don't see anything related to docs or blog posts in the milestones. I don't think a blog post is worth it, but it makes sense to mention documentation, maybe in milestone 2.

Also, we should update the dates.

cedoor avatar Jul 12 '24 09:07 cedoor