-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: Halo2 Soundness Bug Examples #15
Comments
looking for an evaluator for you |
@ed255 Would you kindly review this proposal? |
Hi @jae-cuz! Aside from that, I would recommend to rearrange the roadmap like the following:
This is just a suggestion. I think this approach would help us review the process in the middle of the roadmap much better; and also at any point in time as output you would have complete vulnerability examples with full documentation. |
@ed255 Thanks for your review! Also, I wonder if you have any more vulnerability categories other than my list to suggest? Thanks! |
The current proposal looks good to me! Thanks for updating it according to my feedback :)
Right now no more categories come to my mind, I think the current list looks good! What I would say is that the category "Under-constrained Circuits" can actually be very big! There are many different kind of situations that fall into under-constrained circuits. If you'd like to get more ideas of examples that fall into "under-constrained circuits" I would recommend to search for public security audits on projects built on top of halo2 (like this https://github.com/nullity00/zk-security-reviews/tree/main/Zcash but hopefully there are more). From those audits you can try find more examples. But overall I think your current list is good :) |
@jae-cuz |
This looks good to me! |
The constraints might look like:
The first two constraints ensure that
However, this circuit is under-constrained, because one could set
As a sidenote, we might have only one selector
However, in some circuits we indeed have multiple selectors (like
The constraints could be:
This is under-constrained because the constraints for the closing tag
Instead of checking the row byte by byte (one constraint per each byte), we can use a linear combination. Let’s say we have a value
The constraints would be:
However, if the value |
General Grant Proposal
Project Overview 📄
Overview
Establish a repository featuring small halo2 circuits, each presenting a unique soundness bug
Project Details
Team 👥
Team members
Team Website
Team's experience
PSE Summer Contribution Program
Team Code Repos
Development Roadmap 🔩
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.
Below we provide an example roadmap. We recommend that the scope of the work can fit within a 3 month period and that teams structure their roadmap as 2 weeks = 1 milestone.
For each milestone:
Overview
Milestone 1 Under-constrained Circuits
Deliverables and Specifications
1. Write vulnerable circuits & exploitation
2. Write mitigations
3. Documentation
Milestone 2 Assigned but not Constrained
Deliverables and Specifications
1. Write vulnerable circuits & exploitation
2. Write mitigations
3. Documentation
Milestone 3 Arithmetic Over/Underflow
Deliverables and Specifications
1. Write vulnerable circuits & exploitation
2. Write mitigations
3. Documentation
Milestone 4 Review & Further
Deliverables and Specifications
1. Review codes and documents
2. Further research
Additional Information ➕
References
The text was updated successfully, but these errors were encountered: