Accelerate NU7: Let’s Deliver A Smaller Network Upgrade Sooner

Zcash needs to ship protocol upgrades faster and more frequently. NU7 has been delayed for far too long, with shifting timelines, expanding scope, and growing dependencies slowing progress. This is not an engineering problem. It’s a project management problem that requires coordination and scope control to get the upgrade out the door.

In this post, I make the case for Shielded Labs to accelerate a smaller version of NU7 that can be delivered sooner and includes the Network Sustainability Mechanism (NSM), Explicit Fees, and front-loads the required transaction format changes for all proposed features. I also explain why we believe NU7 should be accelerated, outline how Shielded Labs plans to put this proposal into action, and give the community a direct role in the decision.

The goal is to keep development on track, deliver results to users faster, and establish a more regular upgrade schedule going forward. Waiting for every feature to be ready risks delaying the release until it is no longer relevant, or not shipping anything at all. Now is the time to focus on what can be delivered, release it, and build momentum for what comes next.

The train can’t leave the station

Imagine a train getting ready to leave the station. Before it can depart, the engine needs a major repair to make the trip possible. The repair takes longer than expected, and while the work is underway, more passengers show up with extra luggage. Each new bag must be loaded, arranged, and secured, which causes even more delays. Eventually, there’s so much baggage and so many passengers that the original train can’t handle the load, and you need a bigger train and a new departure date to accommodate it.

Zcashd deprecation and NU7 have unfolded in a similar way. Zcashd deprecation has faced multiple delays. It was originally expected to be complete well before April 2025, but now may not be finished until some time next year. Because certain NU7 candidates are dependent on zcashd deprecation, NU7 has also experienced repeated delays. Engineering teams have constantly given “optimistic timelines” that have slipped from early 2025 to mid-year, then late 2025, then the first quarter of 2026, and now the end of the second quarter, with no certainty that delays will not continue.

In the meantime, there has been significant scope creep. The original NU7 candidates were decided in late 2024. However, new candidates have since been introduced with virtually no community discussion, including ongoing lockbox disbursement, key rotation for consensus keys, and changes necessary for quantum resilience. Even when scope changes are simple from an engineering perspective, they carry high communication, coordination, and governance costs, especially when plans change. NU7 is now far larger and more complex than originally planned, and the more that is added, the harder it will be to deliver as each feature needs to be integrated, tested, and audited.

At some point, you have to decide it’s time to go or the train will never leave the station.

Let’s ship a smaller network upgrade sooner

One of the outcomes of the Z|ECC Summit in Prague was a proposal for a new network upgrade process. In a post last month, Josh described a model where each party developing a protocol change would be responsible for its entire lifecycle, including development, testing, auditing, coordination with third parties, and delivering product to users. The goal is to reduce bottlenecks, maintain upgrade schedules, and allow independent features to move forward without delaying other work. While Josh suggested introducing this model after NU7 is activated, the current situation makes it clear that we need to rip the band-aid off now. Adopting it immediately is our best chance of speeding up progress and delivering some NU7 features to users sooner.

Shielded Labs is interested in accelerating a smaller version of NU7 that can be shipped sooner, focused on certain features that are not blocked by zcashd deprecation. We plan to include the Network Sustainability Mechanism (NSM) and Explicit Fees, along with front-loading all required transaction format changes for the current NU7 candidates. Front-loading these changes reduces the number of transaction format updates needed in the future, making it easier to release those features in later network upgrades. We will take full responsibility for the entire upgrade lifecycle, including implementation in both zcashd and zebrad, integration testing, auditing, and coordination with external partners. This includes working with external partners on any needed package name changes if zcashd and zebrad use different names, which would reduce codebase confusion but require extra coordination.

We believe this smaller network upgrade can be delivered without slowing progress on zcashd deprecation or delaying ZSA activation. By taking on this work, we can lighten the load on the core engineering teams and allow them to stay focused on their highest priorities. Even if our effort does not succeed in full, the work completed would still contribute to the broader NU7 effort. It would also provide an opportunity to test out ECC’s proposed network upgrade process and evaluate how it works in practice.

Why the NSM? Why not ZSAs?

The NSM modifies the current issuance mechanism so that ZEC can be removed from circulation and later recycled into future block rewards. It addresses a concern raised in the Bitcoin community that transaction fees may not generate enough miner revenue to maintain network security once block subsidies decline. Many in the Zcash community see value in tackling this issue early, especially given ongoing debates about Bitcoin’s security budget. Of course, activating the NSM a few months earlier than planned would not significantly impact network sustainability, but it would allow us to move faster on NU7 and deliver this feature to users sooner.

We recognize that ZSAs are a higher priority for most users. However, there is no zcashd implementation for ZSAs and developing one would require substantial work. Zcashd deprecation is the main bottleneck for ZSAs, and ZSAs also require further work to be integrated into Zebra. The NSM, on the other hand, already has a zcashd implementation, which we developed because we anticipated there would be delays with deprecating zcashd. Shielded Labs is well suited to deliver the NSM because it is our project, and our team has the best understanding of what is needed to integrate it into the protocol. As stated earlier, we believe this smaller network upgrade can be completed without affecting progress on zcashd deprecation or delaying ZSA activation.

Next Steps

We want to hear your feedback! We believe the decision to include the NSM, Explicit Fees, and all transaction format changes in the next network upgrade should be made by the community and coinholders, not by the core organizations or engineering teams. To that end, we plan to poll coinholders next month.

There is currently a registration period for an upcoming coinholder poll on the NU6.1 Coinholder Grants Program, where coinholders will decide whether it should become a retroactive grants program. After that poll, we will hold a separate poll that uses the same registration period to avoid requiring coinholders to move their ZEC into Orchard again just to participate. So, if you want to weigh in on this topic, but didn’t plan to participate in the poll about the retroactive grants program, you need to register your coins by August 21.

In our poll, we will ask (1) whether coinholders support including the NSM in the protocol, (2) whether they support our plan to deliver a smaller NU7, and (3) as a bonus question, whether they intend to stake their ZEC when Crosslink activates late next year. We encourage ECC and the Zcash Foundation to poll ZAC and ZCAP on these questions as well.

Conclusion

NU7 has been delayed for far too long. We need to move faster to get features into the hands of users. A smaller network upgrade is needed to keep development moving and deliver results sooner. Once we accelerate NU7, we must get on a regular network upgrade schedule so that features are shipped into the protocol as soon as they are ready.

Let’s get some of the passengers onto a smaller train so it can leave the station, rather than keeping everyone waiting. Then we can focus on making sure future trains run on time and that the schedule stays on track.


Thanks to @zooko for his insights on this topic and for framing the train analogy used here. Also, thank you to @shielded-nate, @nuttycom, and @arya2 for their helpful comments and feedback on this proposal and the network upgrade process.

16 Likes

(Not speaking on behalf of ZF)

I’m slowly going insane :clown_face:

Sorry to be blunt, but no one is excited about NSM, and everyone is excited about ZSAs

We already were forced to do NU6.1 and that delayed things even more. Another network upgrade before it will delay ZSAs even more. It’s already embarassing that we are taking this long to deploy ZSAs.

Even if Shielded Labs does most of the work, we still need to:

  • Review the changes
  • Get them merged
  • Do a private testnet testing
  • Do a testnet release
  • Do a mainnet release

Also remember that the entire ecosystem breaks every network upgrade due to the consensus branch ID change.

7 Likes

I have mixed feelings about this proposal.

In one sense, I think it’s a great idea that another organization should take charge of performing a network upgrade; distributing this responsibility across the ecosystem in this fashion is an important step forward for decentralization.

That being said, I have significant reservations about this proposal in particular:

  • First, I don’t believe that the NSM and explicit fees changes have sufficient impact on user experience to justify a network upgrade where those are the only meaningful consensus changes.
  • Second, while I appreciate that the goal is to include all of the transaction format changes required for (the original) NU7 in this upgrade, I think that making these changes in the zcashd codebase will require a significant investment of time and effort that is essentially wasted. Some specific examples:
    • The changes required for action groups that will be made for NU7 interact non-trivially with note encryption. Making this work in zcashd will require development of code that will not be useful beyond this upgrade.
    • The same thing goes for memo bundles - essentially, the memo bundle changes will need to be more or less fully included due to the impacts on note encryption; I don’t have a good idea of what the proposal is here for how the transaction format changes can be included without impacting the rest of how wallets interact with transaction data; a halfway-solution here will be a mess to untangle in the future.

While it’s clearly the prerogative of anyone working in the ecosystem to move things forward in this fashion, and people are free to (IMO) waste their resources on a significant update to the legacy C++ zcashd code if they want, is that really the best thing for this ecosystem? We’re extremely resource-constrained as it is, and I do not want to have to spend any time auditing complex updates to the zcashd to ensure that they won’t entirely break the network.

If the resources that are proposed to be dedicated to updating zcashd were instead dedicated to bringing the entirety of NU7 to fruition, I think that would be a much better use of resources overall. It’s possible that the upgrade that Shielded Labs is proposing here might speed things up in some respects, but I think it’s more likely that this attempt at a short cut will lead to longer delays overall.

If Shielded Labs had said that they had Crosslink ready for production and wanted to move that ahead of the existing NU7, I would actually be more supportive of that (because it has significant upside for many users of the network) than I am of this proposal.

8 Likes

One additional thing I’ll note: network upgrades are not activated by coinholder polling, and they’re not activated by organizations writing software; they’re decided by miners (and in the future, stakers) choosing to run software. ZIP 1016 directs that coinholder polling be used to determine how locked development funds are distributed, but the effect on what miners run (as a consequence of what development gets funded as a consequence) is highly indirect. If you’re running this coinholder poll to get a sense of whether there’s support for Shielded Labs’ choosing this as a development priority, that’s fine! But there should not be any expectation that such a poll will impact anyone else’s development priorities.

I am for one very excited about NSM, the sooner the better in my opinion.

Nothing against ZSAs and I’m all ears, but I have yet to see any serious use cases proposed. If it’s to issue private memecoins or unstable coins, I don’t really see the point.

2 Likes

This is creative and interesting.

Four months ago, we required all Zcashd operators to add this line to their config files:

i-am-aware-zcashd-will-be-replaced-by-zebrad-and-zallet-in-2025=1

Every effort should be focused on deprecating zcashd as soon as possible and not looking back.

With much respect to all teams here, this is getting embarrassing.

ZSAs are the THE reason I’m excited about Zcash. And the wait, the missed deadlines, and governance tail-chasing is becoming exhausting.

There is not consensus on coinholder voting as a means of governance. I have no doubt that large coinholders, likely pre-vetted and trained in the high-friction voting method required, will mysteriously support this.

We need less mystery and more productivity.

We told our users that zcashd will be deprecated in 2025. Anything less is yet another example of Zcash’s current contributors failing to follow through on public promises.

3 Likes

Can’t say I have any preference as to which upgrade NSM is added to. My only concern is having wallet support and asset issuers onboard as soon as ZSA is live on mainnet. Launching without those two things and having it fall flat would be worse than a delay imo.

5 Likes

I think this would be impractical for NU7 and transaction version 6 because:

  • We would still need to move to the new OrchardZSA circuit (I missed this earlier, we could instead update the transaction format we’ve been working on, but that would likely slow down the deployment of the NSM as much as this effort would accelerate it, and we would no longer have post-quantum recoverability for all V6 transactions), and
  • Implementing everything in zcashd only for it to be deprecated a few months later doesn’t seem worthwhile, particularly as investing that effort into finishing zcashd deprecation would likely result in the same deployment schedule.

Moving to the new OrchardZSA circuit and deprecating zcashd are the biggest blockers to ZSAs, so front-loading the transaction format changes probably won’t accelerate NSM deployment by more than a month.

If it’s possible for Shielded Labs to help with zcashd deprecation in Zallet, Zaino, or Zebra, that may help accelerate NSM deployment as much as this approach while also accelerating ZSA deployment.

I see value in deploying the NSM as soon as possible, but not so much that deploying it a month earlier would justify delaying ZSAs by a few months.

I agree with @nuttycom that it’s a great idea for another organization to take charge of performing a network upgrade, I think ideally we could rotate that responsibility.

2 Likes

Thank you for this insight. It’s something I wouldn’t have thought of at all.

ps: I think there’s a visibility problem manifesting here where not everyone shares a common critical path to NU7 and maybe we should pay more attention to that and see how we can improve that aspect of the NU process

1 Like

Yes, you need to break a few eggs to make an omelette. Plus, it’s not like Zcashers aren’t used to things broken (sync issues, broken wallet integrations, etc).

I’m excited about NSM being released as early as possible, but spending resources for the soon-to-be deprecated zcashd is a big no no for me.

1 Like

Yes you are right on this. But what if the “soon-to-be deprecated zcashd” ends up being 2 years from now? Are we just supposed to wait passively?
Like I said before putting all your eggs in the same basket is a very bad idea.

2 Likes

My thoughts are the same:

I think using goal post moving optimistic timelines is incrediibly dangerous because it implies zero accountablity. Tbh, I currently believe we wont see ZSA’s working in wallets before end of 2027.

How’s that for a realistic timeline :frowning:

I also remind everyone ZSA’s are ZCG’s biggest grant, by far

Watch these:

6 Likes

ok. while im not sure this is the best way to go forward - something has to change.

we cant have timelines for NU-s and never deliver on time. this weakens the trust in the whole Zcash ecosystem if we cant get updates out “on time” or close to some plan.

can i link this roadmap from 2024 spring? just 1 year ago?
i wont mention NU7. we were supposed to already have NU8 coming very soon. a very nice roadmap indeed if we only couldve shipped it.

i know most agree we are in a bad spot with all the delays. and each little thing having a bit of delay makes the whole thing delay amplify.

so since nobody can 100% guarantee that the ZSAs with NU7 will launch in current planned time. this sort of upgrade could still make some sense even tho it seems bit weird and dumb atm.

im optimistic but not optimistic on optimistic timelines

8 Likes

A big part of the problem with NU7 specifically is the transaction format changes; a transaction format change causes significant disruption throughout the ecosystem because everyone has to rewrite their transaction parsers. And this is made worse by the fact that with the exception of the zcash_primitives Rust crate, there are no transaction parsing libraries available in commonly used languages; as a consequence, lots of different entities have written their own parsers, adapted from Bitcoin transaction parsers over time. The same goes for signature hashing code.

The reason that it’s hard to break up NU7 into many smaller chunks (which IMO would be desirable) is that forcing the ecosystem through a bunch of separate parser upgrades is somewhat hazardous.

It would be a lot easier to ship network upgrades with transaction format changes if there were a well-maintained stable of transaction parser libraries written in a wide variety of languages (at least C++, golang, typescript, C#, rust (which we already have), and probably Kotlin or Java) and those libraries were used by everyone who currently has their own parsers; then, it would be a library update for those users to adapt, rather than a software engineering effort.

IMO, it would be a great use of resources if Shielded Labs were to build out such a stable of libraries instead of sinking more cost into zcashd. I would love for it to be easy to make these kinds of smaller network upgrades; if we had that situation, where everyone in the ecosystem could just do a library upgrade and go, then shipping the NSM and explicit fees on their own, with just the transaction format change required for those upgrades, would be kind of a no-brainer.

13 Likes

I can openly contribute to typescript version if needed…

4 Likes

ok so that is the real thing we need to get done to ship NUs faster also with less problems for 3rd parties and exchanges.
im sure we can find people to work on it somehow. :thinking:
maybe ZCG could support this effort

1 Like

Miners have no income and are living in dire straits.