Zebra, the first Zcash node to be written entirely in Rust, can be used to join the Zcash peer-to-peer network. This helps to strengthen the resilience of the network by validating and broadcasting transactions, and maintaining the Zcash blockchain state in a more distributed manner.
The original Zcash node is named
zcashd and is developed by the Electric Coin Company as a fork of the original Bitcoin node. Our implementation, on the other hand, is an independent Zcash node implementation, developed from scratch, using memory-safe Rust language. Since
zebrad implement the same protocol, they can communicate with each other.
Alternative node implementations help developers quickly detect implementation-specific bugs that could cause consensus-related issues. Having multiple node implementations also attracts a broader audience of developers to Zcash, who can start contributing in a language that they are more familiar with. Our implementation of zcashd allows Rust developers to easily start developing on and contributing to Zcash.
Better Performance: since it was implemented from scratch in an async, parallelized way, Zebra is currently faster than zcashd.
Better Governance: with a new node deployment, there will be more developers who can implement different features for the Zcash network.
Runtime Safety: with an independent implementation, the detection of consensus bugs can happen quicker, reducing the risk of consensus splits.
Spec Safety: with several node implementations, it is much easier to notice bugs and ambiguity in protocol specification.
Better Security: since it is developed in a memory-safe language (Rust), and is less likely to be affected by memory-safety security bugs that could compromise the environment where it is run.
With Zebra, users and developers have a new avenue to engage with the Zcash ecosystem. Read the documentation in the Zebra repo as it continues to update and new features are added by the Zcash Foundation.