You also mention in a forum response that the first 3 months would likely encompass ZecWallet-lite, Nighthawk, and the preliminary designs for ZSAs. Noting the current absence of comments from these projects on your proposal thread, we’re curious if you have had the opportunity to communicate with them privately to gauge their willingness to partner. Can you elaborate on other ideas you have for security audits/research/etc that could help persuade the committee that there is no shortage of security related work to be done?
I haven’t reached out to those projects yet – I will do so now to get their feedback on the idea!
In terms of amount of work, I actually have the opposite concern, which is that 17 days might not be enough to support the entire ecosystem and we’ll have to expand this program in the future!
It’s pretty common for audits to always run out of time, having to exclude certain things from the scope for the sake of being able to finish within the timebox. It’s somewhat of an inside joke between auditors that all the reports say “security analysis of dependencies is out of scope and left for future work”, and then that future audit never happens
. So, even with a few projects, there’s an almost-never-ending supply of important audit work. I’ll take a look through some community projects and put together a more concrete picture of what this will look like.
This raises another question, which is whether we should include other security support work aside from audits and direct support for community projects. This would be stuff like:
- Consensus rule compatibility review between Zcashd and Zebra.
- Creating proof-of-concept attacks for the light client network privacy vulnerabilities.
- Designing/developing production-quality infrastructure for running lightwalletd.
- Setting up a contact email to assist projects with vulnerability disclosure triage and responses.
- Security trainings for the community (e.g. a class on writing exploits so developers better understand what vulnerabilities are and how to think about them)
I’d be happy to include some of these items as well, however it’d quickly start to need more than 17 days/month, so I’d recommend prioritizing the outreach/audits (“find, fix, and prevent bugs”) and then using any slack time for these extra projects.
We also recognize that there may be months when the full 17 days of work isn’t needed or more than 17 days of work is performed. In that case we would look to adjust the milestone payouts within the total budget allocated to the grant as necessary. The new grants platform provides the ZF more flexibility in managing milestones, and the committee has been flexible with grant applicants in this manner in the past. We would like to make sure that you’re comfortable with this and are thinking about the milestone payouts as flexibly as we are.
Yep, that makes sense to me! I predict that I’ll be able to fill the time, but in case I don’t, then of course I won’t bill for it. I also might take a couple weeks off for a vacation here and there, and in that case the payout would be delayed until all the work is finished or reduced so that you’re always only paying in proportion to the work that was actually done.
How would you prefer to collaborate with ZCG on ongoing efforts, embargoed audit reports, our thoughts about ecosystem audit needs, etc? Perhaps a monthly meeting that occurs before applying for the current month’s milestone payout to review the efforts from the current month and planned efforts for the next along with any other agenda items?
That sounds great to me, a monthly call is probably the best format!
For embargoed audits—we might not want to disclose the fact that a report is being embargoed, because that will tip attackers off that there’s a severe vulnerability in the project under review. To mitigate that risk, we could either (a) keep the identity of the project under review secret until the review is complete, or (b) publish the audit report minus the critical vulnerability. I prefer (a), since (b) is a little bit dishonest to anyone using the audit report to make a decision whether or not it’s safe to use the project. Do you have any thoughts/preferences on this?
I’ll get back to you with some more specifics on what the audit/outreach effort will look like!