The Zcash Foundation is pleased to announce the release of the first stable, audited version of Zebra, Zebra 1.0.0.
What Zebra Does and Why it Matters
Zebra, the first Zcash node to be written entirely in Rust, can be used to join the Zcash peer-to-peer network, validate and broadcast transactions, and maintain the Zcash blockchain state in a more distributed manner. This alternative node implementation has been written from the ground up and avoids any technical baggage from the bitcoin legacy code. Diversity in node implementations and platforms help to strengthen the resilience of the network from targeted attacks affecting a particular codebase, programming language or operating system.
Building Critical Privacy Infrastructure in Rust: Modern, Memory-Safe
Zebra is developed in Rust, which is a memory-safe language, and thus less likely to be affected by memory-safety security bugs that could compromise the environment where it is run. Rust emphasizes performance and concurrency and these are qualities we have aimed to achieve in Zebra as well.
A New Paradigm for Privacy Infrastructure Development
Unlike zcashd, which originated as a Bitcoin Core fork and inherited its monolithic architecture, Zebra has a modular, library-first design, with the intent that each component can be independently reused outside of the zebrad full node. For instance, the zebra-network crate containing the network stack can also be used to implement anonymous transaction relay, network crawlers, or other functionality, without requiring a full node. With Zebra, we have redesigned our network layer to be fully compatible with Zcash and at the same time easier to maintain, more secure, and have better performance.
While this is a major milestone for Zebra, it’s just the beginning! There is a lot more to do before Zebra can fulfill all the use cases that the zcashd node is currently used for. We want to hear from the Zcash community regarding which use cases and functionality they would like to see prioritized for integration into Zebra. Please share your feedback and ideas on the Zcash Community Forum.
We would like to thank the following current and past ZF team members for their contributions to Zebra. Without their work and support we would not have reached this milestone today:
Josh Cincinnati, Antonie Hodge, Deirdre Connolly, Teor, Pili Guerra, Alfredo Garcia, Marek Bielik, Conrado P. L. Gouvêa, Gustavo Valverde, Arya Solhi, George Tankersley, Henry de Valence, Jane Lusby, Janito, Vaqueiro Ferreira Filho, Fungai Matambanadzo
We’d also like to thank the ECC team for their contributions to Zebra in the form of both code and code reviews, as well as the advice and support they’ve provided to the ZF team, and those community members who have contributed in various ways, including code, fixes, and typo corrections.