I’ve submitted a pull request to update ZIP 0, which defines the Zcash Improvement Proposal (ZIP) process. These changes are meant to address gaps in how security and privacy considerations are handled and to bring more clarity and transparency to how proposals are reviewed.
The proposed changes:
- Make the “Security and Privacy Considerations” section mandatory for all ZIPs
- Require that ZIPs explicitly document trust assumptions, privacy trade-offs, data leakage risks, and potential attack vectors.
- Require ZIPs to consider the Wallet Threat Model, and reference or propose updates if applicable
- Make ZIP authors responsible for obtaining an independent security review of both the design and implementation for high-impact proposals, including formal code review
- Clarify that ZIP Editors are not expected to perform audits, but must verify that appropriate reviews and documentation are in place.
- Require Editors to notify the community when a ZIP is submitted as a proposal, to ensure public review and discussion.
- Strengthen guidance on the Abstract, requiring it to provide a detailed summary of the proposal that highlights key security and privacy considerations.
As I mentioned in the March 20th Arborist Call, the motivation for this change is to address important gaps in the current process around security and privacy review. As it currently stands, ZIP 0 requires a “Security and Privacy Considerations” section if applicable; however, only 2 of the 10 ZIPs being considered for NU7 include this section.
In addition, ZIP 0 also currently fails to clearly define who is responsible for evaluating the security and privacy risks of a proposal. It states that “it is not the primary responsibility of the ZIP Editors to review proposals for security, correctness, or implementability,” but also notes that ZIP editors may reject a proposal if “it has manifest security flaws (including being unrealistically dependent on user vigilance to avoid security weaknesses).” So, the question is who is ultimately responsible for ensuring proper security and privacy analysis?
To be clear, Shielded Labs did not include a “Security and Privacy Considerations” section in the three ZIPs for the NSM. However, we shared the drafts publicly at the same time we submitted them for review, which allowed security concerns to be raised and discussed early in the process. For several of the current ZIPs, it’s unclear whether any public review or formal threat analysis has taken place.
One example I brought up on the Arborist Call is ZIP 231, which introduces variable-length memos. While this change may offer more flexibility for developers, it also introduces the possibility of new privacy leaks due to data-length variation. The ZIP includes no documented discussion of these implications, and in fact, the implementation may violate assumptions in the Wallet Threat Model. My understanding from the discussion at the Arborist Call is that the authors of the ZIP did consider and discuss these privacy and security implications at length, but they were not documented in the ZIP itself.
Again, this is not to pick on ZIP 231, but to illustrate a broader issue with the current process that allows potential security flaws to progress without transparent analysis or community discussion. My hope is that, by making these changes explicit, we can tighten up the process and ensure that proposals with meaningful security or privacy implications are properly reviewed, documented, and discussed.
Please review the PR and let me know if you have any feedback.