Zebra, Zakura, and the road through NU6.3

Yesterday, Valar Group and Project Tachyon announced Zakura, a new Zcash full node built from the Zebra codebase. We want to state plainly: this is good for Zcash, and we welcome it.

Zebra was built to be forked. We released it under permissive open-source licenses precisely so that anyone could build on it and improve it. Zakura’s engineering is impressive including faster initial sync, pruning, snapshot bootstrapping, and a compatibility path for zcashd operators — and it arrives at the moment the network needs more capable options, not fewer. We congratulate the Zakura team, several of whom have also contributed directly to Zebra itself, including to our most recent release. This is an example of open source working as intended.

First things first: NU6.3 activates this month. Zebra 6.0.0, released July 10th, fully supports the Ironwood network upgrade, which activates on Mainnet at block height 3,428,143 — around the end of July. With zcashd reaching end of life, every node operator must be running NU6.3-capable software before activation. If you run Zebra today, upgrade to 6.0.0 now. If you’re migrating from zcashd, both Zebra and Zakura have ready paths, and our documentation and support channels are open to help either way. The single most important thing for the network this month is that every operator completes this upgrade on time.

One request, whichever node you choose. The events of this past June were a reminder that a consensus network’s security depends on independent verification — different implementations, independently built and reviewed, each checking the other’s work. If your infrastructure moves to Zakura, we’d encourage you to keep a Zebra node running alongside it as an independent consensus check. It’s inexpensive, it’s standard practice for critical infrastructure, and it strengthens the network for everyone.

Zebra’s mission going forward. Zcash Foundation (ZF) will maintain Zebra for the long term as the network’s independently governed reference implementation — consensus-current, and rigorously reviewed. Alongside it, we are investing in verification infrastructure that serves every implementation: cross-implementation conformance test suites and differential testing that catches consensus divergences before they reach mainnet. A network as valuable as Zcash deserves an assurance layer that doesn’t depend on any single team getting everything right, including us.

We also want to state a governance principle clearly: the Zcash protocol belongs to its community, and it evolves through the open ZIP process — not through any one implementation, organization, or entity, and that includes ZF. We will support formal recognition of any implementation that demonstrates conformance to the protocol specification, and we’ll build the public conformance infrastructure that makes “demonstrates conformance” a testable, neutral standard rather than a matter of opinion.

ZF has the independence and the resources to do this patient work for the next decade. More implementations, more builders, and more velocity are good for Zcash — our job is to make sure the network they all share stays secure, verifiable, and governed in the open.

26 Likes

ZF welcoming a fork of its own codebase, then asking operators to keep Zebra alongside it as an independent check, is a real neutrality signal. If ZF also writes the conformance suite, does the suite go through the ZIP process, so Zebra does not become the definition of correct?

1 Like

Best news I received this week, I’m finally going to try running a Zcash node again. Kudos to Valar and Tachyon teams for making Zakura a possibility. I bet we will see more people running Zcash nodes thanks to this.

2 Likes

Zebra will never be the definition of correct; any conformance suite would test what is stated in the spec and in the ZIPs

6 Likes

Where a ZIP is silent or ambiguous and the suite still has to pick a behavior to test, does that choice get settled in the ZIP process, or does the suite quietly make the call? The reassuring part is that the spec and ZIPs are the standard and the suite only measures against them.

1 Like

Ideally in a ZIP. But the reality is that there is a lot of the protocol that is underspecified, in particular the inherited Bitcoin parts, so it’s possible something slips through the cracks and an existing but unspecified behavior is tested. But the intention will never be to use that to force a particular behavior. I believe ZIP editors are happy to receive contributions in specifying any underspecified behaviors of the nodes.

3 Likes