ECC introduced Version 1.0 of the Network Upgrade Pipeline, commonly known in Zcash circles as the NUP, in December 2018. Our goal in creating the NUP was to introduce synchronization points for Zcash protocol developers outside of ECC, ensure that future network upgrades continued to meet our historic standards for safety and quality, and allow plenty of time for ecosystem partner testing and integration.*
At the time, we had been through the launch of Zcash (Sprout), and the Overwinter (NU0) and Sapling (NU1) network upgrades, all of which were successful. We published a new NUP diagram representing Version 1.1 in May 2019, reflecting an updated pipeline and laying out the anticipated timelines for NU3 and NU4. Since then, we’ve learned a lot about network upgrades and even more about the NUP that could be improved upon with the successful Blossom (NU2), Heartwood (NU3), and Canopy (NU4) network activations. Feedback from other Zcash ecosystem participants in the protocol development process has been invaluable.
We also explored ways to improve the NUP through two community calls. The Zcash Foundation hosted a Protocol Hangout on Sept. 16, 2020, to discuss ways to improve the NUP, and we used the Arborist call on Oct. 8 to continue that discussion. We also opened a Github issue to track the conversation. In those discussions with participants from ECC, the Zcash Foundation, and a few other community contributors, we identified the need for a more agile process that still retained the safeguards inherent in the NUP while making it easier for protocol teams outside of ECC and the Zcash Foundation to participate. In short, we all agreed the current NUP was too rigid. Some of the defined time periods could be compressed and coordination points made more flexible.
Based on feedback from ecosystem participants and community calls, we propose an update to the NUP that takes all this into account. Some of the specific improvements identified were:
- Remove ZIP Review Begins as a specific item. ZIPs should be and are continually reviewed.
- Reduce the period between Draft ZIP Submission Deadline and Feature Selection from 2 months to 1 month.
- Include all features selected for the upgrade in the Specification and Implementation Audits. Audits are the responsibility of the implementing party, which may not necessarily be the ZIP author. Ideally, all features being considered for a particular network upgrade should be audited together. Software and protocol security assessments should always be included. Scientific peer review should be done in the case of new cryptography and an economic analysis done if necessary.
- Reduce Partner Adoption from 5 months to 3 months. We spend a good bit of time on ecosystem outreach well ahead of even testnet deployment to ensure partners have adequate time to upgrade and prepare. With Heartwood and Canopy, we had confirmed more than 80 percent of mining hashpower had upgraded prior to their mainnet activations.
- Reduce the complexity and busyness of the NUP diagram. Examples include eliminating implied milestones such as Auditor Selection Begins and Auditor Selection Complete, which obviously occur before the Specification and Implementation audit periods.
Coordination points in some cases also serve as event gates with features only able to pass through that are deemed ready. For example, in the case of ZIP Review, if a ZIP is not well-specified to the point it could be properly implemented in a given upgrade, then it would not be a candidate for that upgrade. Likewise, if a feature has incomplete or unremediated auditing, it would not activate on mainnet.
The next network upgrade for Zcash will be NU5. Applying the NUP 2.0 coordination points and time periods gives us an overall timeline that looks like the following:
The next major milestone is Draft ZIP Submission, slated for May 1, 2021. ECC has published our proposed features and their corresponding draft ZIPs and specifications changes for NU5. With a one-month ZIP Review period, this gives the Zcash community until June 1st for review and discussions of these proposals leading up to the Feature Selection Completion coordination point.
Our goal is a safe and successful activation for NU5 and as in past network upgrade timelines, the dates and overall time periods are subject to change to achieve that goal. For example, activation dates would change if code completion does not occur as planned, if the audits take longer than planned, or if we get feedback from the audits that make significant specification or code refactorings necessary.
The next Zcash network upgrade, NU6, would occur early in 2022. Applying the NUP 2.0 coordination points and time periods and assuming a March 1 activation date gives us an overall timeline that looks like the following:
As the Zcash developer ecosystem continues to grow with milestones such as Zebrad on mainnet and ZcashOMG grant recipients getting involved, we look forward to continuing to refine and improve the upgrade process to encompass more participants. We’re excited for the future of Zcash and look forward to working with everyone to ensure a successful NU5 activation and improve future network upgrades.
* Dates have been updated throughout this post to reflect the current timeline