Closed WangJ509 closed 4 months ago
Overall seems good, I have a one suggestion and one question:
Suggestion is how about putting Baloo implementation to Milestone 1 and make it longer? Since Baloo is based on univariate polynomial commitment scheme, I think it would be good to divide lookup arguments based on univariate/multivariate polynomial commitment schemes into milestone 1, 2 respectively.
Question is about whether there is exact plan for implementing underlying polynomial commitment scheme. There are multiple options for multivariate polynomial commitment scheme, for example, multilinear KZG, Brakedown, Hyrax, etc. I think it would be too painful to implement all of them, however I'm not sure whether there already exist Python implementations of them. I think you should choose some of them to implement. It may take some time, so I think milestone 2 would be quite tight. I think it would be better to divide milestone 2's work into separate milestone, for implementing multivariate PCS and writing some articles introducing how they work under the hood.
How do you think?
Hi @DoHoonKim8, we have updated our proposal.
LGTM. Thanks for reflecting the comment. 🙂
General Grant Proposal
Project Overview :page_facing_up:
Overview
simple (educational) python lookup argument implementation
Project Details
Team :busts_in_silhouette:
Team members
Team's experience
Yu-Ming Hsu
Jing-Jie Wang
Paul Yu
Team Code Repos
Development Roadmap :nut_and_bolt:
Overview
Terminology
Milestone 1: cq, plookup, Caulk+, Baloo (Univariate Commitment)
Milestone 2 multilinear KZG or Hyrax (Multivariate Commitment)
Milestone 3 Lasso, Logup + GKR
Deliverables and Specifications
0a. Codebase Specification
We aim to implement baseline protocol according to paper and will not implement extra optimization over it. Take cq for example, our code covers FK algorithm for faster amortized kzg proof but won't implement optimized multiscalar multiplication (msm) because we purely rely on pyecc lib unless key components are needed.
We plan to review these 2 codebase and see which multivariavte commitment scheme is easier to implement in Python
0b. Documentation
We will provide a markdown file explaining the detail implementation of each protocol and util function, for example, why radix 4 fft. If there're already good resources out there. We'll reference it in write up and summarize how we utilize them.
0c. Testing Guide
similar to plonkathon, cover unit test for each components, let's say fft, we unit test fft overall rather than subfunction of it. dummy_test, basic testcase
Additional Information :heavy_plus_sign: