How Solana Firedancer Can Boost Network Security
Firedancer's testnet launch was announced at Solana's Breakpoint conference, marking a significant milestone in Solana's journey toward global adoption. Let's explore its purpose and understand why it is essential to transition towards multiple validation clients, thereby enhancing network security and stability.
Benefits of Multiple Validation Clients
Generally, any PoS network would like to have more than one client, and clients must be developed by independent teams using different programming stacks because of security and stability matters. The Proof of Stake (PoS) network will benefit from two separate validation clients. Still, the benefits will increase with more clients and more evenly distributed stake among them.
You may wonder what number of validation clients are counted as decent for the PoS network, and this is an excellent question. We believe resilience and reliability are the most important things for the Solana ecosystem. From that perspective, the Solana cluster must "survive" the outage of one validation client, which means there should not be more than 33.3% of stake on each validation client because if there is more stake, it will cause a halt of the cluster because of BFT consensus. Thus, the mandatory condition to sustain the outage of one validation client is to have four clients in the cluster with ~25% of a stake each (again, it should not be more than 33.3%). To secure the network, the cluster must have a fairly distributed stake across all available validation clients. It looks like a challenge to achieve this for different reasons.
Solana Validation Client Diversity
Currently, the Solana ecosystem offers 2 production-ready clients:
1. Solana labs client (https://github.com/solana-labs/client )
2. Jito Labs MEV-enabled client (https://github.com/jito-labs/client)
Although Jito Labs is an independent team, technically, the Solana client built by Jito represents a set of patches applied on top of the vanilla Solana Labs client. Currently, 42.5% of the stake is working on the Jito client, which already includes two clients and two teams, which undoubtedly increases efficiency. However, both clients will be affected by almost the same set of bugs, including security vulnerabilities of the Rust compiler and Rust dependencies used for building the executable binaries. This situation is undesirable for the Solana ecosystem, which is heading to get its place as a PoS network ready to run world-level enterprise applications!
Introduction of Firedancer
A new client for Solana called Firedancer was announced in 2022 and made a splash in Breakpoint 2022 when Firedancer engineering team lead Kevin Bowers from Jump Trading presented Firedancer, working progress, and exciting insights regarding performance optimizations applied in Firedancer. Let’s quickly review the high-level attributes of Firedancer:
- Written in C language
- Client development funded and guided by an independent company (Jump Trading/Jump Crypto)
It must be mentioned that Firedancer is designed to be highly efficient in utilizing hardware at 100% and, as a result, to bump TPS up to 1M (which is frankly insane).
Considering everything we discussed above, it is fair to say that Firedancer will be the first genuine new client developed from scratch by an independent team. Once it’s released, it secures the network significantly. For example, suppose there is a bug discovered, a security vulnerability, or performance degradation related to the Solana labs client; the validators can agree to move temporarily to the Firedancer client to give time to Solana labs to troubleshoot the problem and provide enough time to make a well-tested patch. Having several validation clients gives more opportunities to provide decent service for end users, so we strive to see Firedancer adoption in the Solana cluster.
*Authors: Anton Yakovlev Lead SRE @ P2P Solana team*