# General Grant Proposal * **Project:** Chiquito (PSE) ## Project Overview :page_facing_up: ### Overview Chiquito is a high-level DSL that provides abstractions when writing Halo2 circuits. It allows the user to manipulate an AST that’s compiled to a Chiquito Halo2 backend, which can be integrated into any Halo2 circuit. As well as future different backend implementations. It also provides the ability to have different frontends which makes the onboard process developers eager to implement zero knowledge much easier. ### Short Rationale Chiquito abstracts the complexities of writing Halo2 circuits, lowering the barrier to entry and enabling a wider range of developers to utilize zero-knowledge proofs and makes this technology more accessible, inviting innovation from a diverse developer community. Chiquito helped me on understanding way better the process of thinking to write a circuit which made me willing to contribute to this awesome project. ### Project Details Provide as much detail as possible about the project's expected final state. #### Technology Stack - Rust - Python - Technical writing #### Core Components to be Deployed Rust Chiquito Core Features - Implement additional features in Rust - Write unit and integration tests for existing features and new ones - Improve performance and security - Improve documentation and focus on developer experience PyChiquito - Implement missing features and improve existing ones Chiquito use cases - Explore the use cases of Chiquito beyond zkEVM - Work on a possible boilerplate for developers to use as a quick starting point improving developer's experience Chiquito Library - Additional circuit examples built in Rust and Python. Constraint Language Frontend - Implement a frontend with a constraint language based on arbitrary boolean expressions with syntax inspired in circom New Backend - Implement a new backend based on findings from research on different proving systems. Learning and Research - Deep dive into Halo 2 and other Proving Systems. To be documented or do a blog post collecting all the findings to implement a new backend if research is successful. - Learn and Research about other zkDSLs. To be documented or do a blog post. ## Team :busts_in_silhouette: ### Team members **Leo Lara** Email: leo@leolara.me TG: @leolara **Steve Wang** Email: qian.wang.wg24@wharton.upenn.edu TG: @SteveIsEmployed **Rute Figueiredo** Email: rfigueiredo.dev@gmail.com TG: @rutefig **Even** ### Team Website * https://github.com/privacy-scaling-explorations/chiquito * https://docs.pecadorplonkish.xyz/landing_page.html ### Team's experience Leo Lara - 20 years experience in software engineering, experience in embedded and distributed systems - Graduated 1st class Comp Sci, at University of Bath - Worked at ARM, on server software - Co-founder CTO Uniplaces - 2021 start Blockchain journey, Gitcoin Kernel -> EthLisbon hackathon -> Ethereum Protocol Fellowship grantee (prysm) -> zkEVM < PSE < Ethereum Foundation - Working on zkEVM of EF Steve Wang - Current Computer Science/MBA dual degree student at University of Pennsylvania - Completed a grant at PSE working on Chiquito. Created a Python frontend, a new backend, and additional features. Conducted research on different zkDSL products. A member at PSE’s zkDSL Working Group. - Technical research report about ERC4337: - Link: https://mirror.xyz/0x7333aB7AE068Ef92fb77A2bcab32FA273c45185c/cF55-mUlStUDn0aqrhEAfNRRY8sLVM97sJgLNor1BUw - Other personal Move and Solidity projects (mostly frontend and smart contract): - Github page: https://github.com/qwang98?tab=repositories - 3 years experience in data science using R and SQL at a consulting firm in the US - Math and Economics double major and Computer Science minor at Macalester College, full tuition scholarship and graduated rank 1 in both majors Rute Figueiredo - Completed a Grant on Chiquito during Mu Chiang Mai - Built an Optimisation for the Step Selector Builder - 2nd Place on EthPorto 2022 Hackathon - Some more personal and hackathons projects: - Github: https://github.com/rutefig?tab=repositories - Encode ZK Bootcamp Certificate - 3 years experience in Software Development working on full solutions from frontend to backend - Computer Science bachelor degree at IPBeja ### Team Code Repos * https://github.com/privacy-scaling-explorations/chiquito ## Development Roadmap :nut_and_bolt: This section should break out the development roadmap into a number of milestones. Since the milestones will appear in the grant contract, it helps to describe the functionality we should expect, plus how we can check that such functionality exists. For each milestone: * Please be sure to include a specification of the software. The level of detail must be enough so that we are able to verify that the software meets the specification. * Please include total amount of funding requested per milestone. * Please note that we require documentation (e.g. tutorials, API specifications, architecture details) in each milestone. This ensures that the code can be widely used by the community. * Please provide a test suite, comprising unit and integration tests, along with a guide on how to run these. * Please indicate the milestone duration, as well as number of Full-Time Employees working on each milestone, and include the number of days along with their cost per day. ### Overview * **Total Estimated Duration:** Duration of the whole project * **Full-time equivalent (FTE):** Workload of an employed person ([see](https://en.wikipedia.org/wiki/Full-time_equivalent)) * **Total Costs:** Amount of Payment for the whole project. ### Milestone 1 * **Estimated Duration:** 1 month * **FTE:** 1 * **Costs:** 50$/h, $8K for the milestone * **Estimated delivery date**: Dec 31st 2023 #### WORK ON TWO OF THE FOLLOWING | Number | Deliverable | Specification | | -------- | -------- | -------- | | 0a. | API docs | Work on improvements for the API documentation on DSL functions exposed to devs. | | 0b. | Test | Ensure proper coverage on the code with unit and integration tests taking into consideration edge cases. | | 1. | Learning and Research | Deep dive into Halo 2 and other Proving Systems. To be documented or do a blog post. | | 2. | Circuit Library | Write 1-2 more circuit examples in Chiquito, adapted from base Halo2 library or Circom library. | | 3. | Chiquito Core | Work on raised issues as well as create new issues according to possible improvements while researching for a possible optimisation | ### Milestone 2 * **Estimated Duration:** 1 month * **FTE:** 1 * **Costs:** 50$/h, $8K for the milestone * **Estimated delivery date**: Jan 31st 2024 #### WORK ON TWO OF THE FOLLOWING | Number | Deliverable | Specification | | -------- | -------- | -------- | | 1. | Learning and Research | Deep dive into Halo 2 and other Proving Systems. To be documented or do a blog post. | | 2. | Circuit Library | Write 1-2 more circuit examples in Chiquito, adapted from base Halo2 library or Circom library. | | 3. | Chiquito Core | Work on raised issues as well as create new issues according to possible improvements while researching for a possible optimisation | | 4. | Chiquito Utils | Work on some util functions to improve the developer experience using it, like implementing some tool to check if the circuits are constraint enough. ### Milestone 3 * **Estimated Duration:** 1 month * **FTE:** 1 * **Costs:** 50$/h, $8K for the milestone * **Estimated delivery date**: Feb 29th 2024 #### WORK ON TWO OF THE FOLLOWING | Number | Deliverable | Specification | | -------- | -------- | -------- | | 1. | Learning and Research | Learn and Research about other zkDSLs. To be documented or do a blog post. | | 2. | Chiquito Boilerplate | Create a boilerplate with a simple real use case for devs to use on hackathons, like other zkDsls have done. | | 3.a | Chiquito Core | Work on raised issues as well as create new issues according to possible improvements | | 3.b | Chiquito Core Optimisation | Work on discovered code to be optimised based on findings | | 4. | Chiquito Utils | Work on some util functions to improve the developer experience using it, like implementing some tool to check if the circuits are constraint enough. | 5. | Constraint Language Frontend | Implement a constraint language based on arbitrary boolean expressions with syntax inspired in circom | ### Milestone 4 * **Estimated Duration:** 1 month * **FTE:** 1 * **Costs:** 50$/h, $8K for the milestone * **Estimated delivery date**: Mar 31st 2024 #### WORK ON TWO/THREE OF THE FOLLOWING | Number | Deliverable | Specification | | -------- | -------- | -------- | | 1. | Learning and Research | Learn and Research about other zkDSLs. To be documented or do a blog post. | | 2. | Chiquito Boilerplate | Create a boilerplate with a simple real use case for devs to use on hackathons, like other zkDSLs have done. | | 3.a | Chiquito Core | Work on raised issues as well as create new issues according to possible improvements | | 3.b | Chiquito Core Optimisation | Work on discovered code to be optimised based on findings | | 4. | Constraint Language Frontend | Implement a constraint language based on arbitrary boolean expressions with syntax inspired in circom | | 5. | Mentoring | Mentoring in hackathon and presenting the project in conferences and other venues. ### Milestone 5 * **Estimated Duration:** 1 month * **FTE:** 1 * **Costs:** 50$/h, $8K for the milestone * **Estimated delivery date**: Apr 30th 2024 #### WORK ON TWO/THREE OF THE FOLLOWING | Number | Deliverable | Specification | | -------- | -------- | -------- | | 1. | Learning and Research | Research on extra use cases for Chiquito. To be documented. | | 2. | Chiquito Core | Implement a new backend based on previous findings from research. | | 3.a | Chiquito Core | Work on raised issues as well as create new issues according to possible improvements | | 3.b | Chiquito Core Optimisation | Work on discovered code to be optimised based on findings | | 4. | Constraint Language Frontend | Implement a constraint language based on arbitrary boolean expressions with syntax inspired in circom | | 5. | Mentoring | Mentoring in hackathon and presenting the project in conferences and other venues. ### Milestone 6 * **Estimated Duration:** 1 month * **FTE:** 1 * **Costs:** 50$/h, $8K for the milestone * **Estimated delivery date**: May 31st 2024 #### WORK ON TWO/THREE OF THE FOLLOWING | Number | Deliverable | Specification | | -------- | -------- | -------- | | 1. | Learning and Research | Research on extra use cases for Chiquito. To be documented. | | 2. | Chiquito Core | Implement a new backend based on previous findings from research. | | 3 | Chiquito Core | Work on raised issues as well as create new issues according to possible improvements | | 4. | Constraint Language Frontend | Implement a constraint language based on arbitrary boolean expressions with syntax inspired in circom | | 5. | Mentoring | Mentoring in hackathon and presenting the project in conferences and other venues.