Solana: Past, Present, and Future
What is Solana, how will it overcome network outages, and how will it scale to 1 million TPS?
Solana is a decentralized, open-source blockchain platform that aims to provide fast, low-cost transactions while maintaining security, decentralization, and censorship resistance. It was founded by Anatoly Yakovenko, Greg Fitzgerald, Stephen Akridge, and Raj Gokal.
It was proposed in a white paper published in November 2017 written by Anatoly Yakovenko. On March 16, 2020, Solana's first block was created.
It was developed by the Solana Foundation and is maintained by a decentralized network of validators who use a proof of stake consensus model. This model has been enhanced by proof of history, which allows the Solana network to achieve high transaction speeds while remaining decentralized.
Proof of History
Proof of history is a solution to the blockchain trilemma, which refers to the trade-off between scalability, decentralization, and security in blockchain networks. To overcome this challenge, Solana uses proof of history to create a historical record of events and their timestamps, allowing validators to agree on the sequence of events and maintain a single global state even as the network scales. This allows Solana to process a large number of transactions quickly and efficiently, with the ability to handle up to 65,000 transactions per second (TPS) and plans for 1 million+ TPS in the future.
In addition to its high transaction speeds, Solana is also known for its low fees. At its peak, the network processed over 4,800% of the transactions on the Ethereum network while charging only a fraction of the fees. This makes it an attractive platform for developers and users looking to build or use decentralized applications (dApps).
One of the key benefits of Solana is its composability, which refers to the ability of different dApps to interact with each other and share data in a seamless manner. Because Solana relies on proof of history instead of sharding or layer-2 solutions, projects built on the Solana blockchain don't have to worry about liquidity or users being fragmented across different systems. This allows for a more cohesive ecosystem and makes it easier for developers to build on the Solana platform.
In addition to its fast transaction speeds and low fees, Solana is also an energy-efficient blockchain platform. Unlike some other blockchains that rely on proof of work consensus, which requires users to perform complex computations in order to validate transactions, proof of stake systems like Solana require much less energy. This makes it an attractive option for users and developers who are concerned about the environmental impact of blockchain technology.
Security, Decentralization, and Censorship Resistance
In the long term, Solana is focused on maintaining security, decentralization, and censorship resistance. To ensure security, the Solana network relies on its decentralized network of validators and uses cryptographic techniques to prevent fraud and tampering. To maintain decentralization, the Solana Foundation has implemented a governance system that allows community members to participate in decision-making processes and contribute to the development of the platform. And to resist censorship, Solana uses cryptographic techniques and a decentralized network of validators to ensure that transactions cannot be blocked or censored by any single entity.
In recent years, Solana has experienced at least seven network outages. The longest outage lasted 17 hours before the network was restored.
Specifically, on April 30th and June 1st, 2022, Solana had outages due to a high volume of incoming transactions (6 million per second) that exceeded the network's capacity. Spam bots were trying to win an NFT on Candy Machine. The number of forks that the validators had to evaluate exceeded their ability to do so, even after a restart, requiring manual intervention. Solana has experienced intermittent congestion problems since the beginning of 2021 due to bot activity targeting NFT mints. To address these problems and improve the stability and resilience of the network, Solana Labs has announced 3 updates:
- Stake-Weighted QoS
- Fee Markets
The first change is the adoption of the QUIC protocol, which will replace the current User Datagram Protocol (UDP) used by Solana to transmit transactions between nodes. The QUIC protocol, developed by Google, is designed for fast asynchronous communication like UDP, but with sessions and flow control like TCP. This is expected to improve the handling of traffic congestion and delivery confirmation on the network.
The second change is the implementation of Stake-Weighted Quality of Service (QoS), which prioritizes transactions based on the amount of stake (or ownership) a user holds in the network. This ensures that the most important and valuable transactions are processed first, improving the overall efficiency of the network.
The third change is the introduction of Fee Markets, which will allow users to pay fees in order to prioritize the processing of their transactions. This gives users more control over the speed at which their transactions are processed and allows them to prioritize certain transactions if needed.
Solana's future goal is to be able to process 1 million transactions per second (TPS) because it will unlock several unique benefits:
- It enables a blockchain to process a large number of transactions quickly, which would allow Solana to be able to handle any amount of user demand.
- It improves user experience. A low TPS rate can hinder the user experience because it takes longer to complete a token swap, buy an NFT, or use a decentralized application (dApp).
- It improves security. A high TPS can also make a blockchain less susceptible to spam attacks. Currently, if spam bots request more transactions than the network can handle, it can cause the network to shut down for extended periods, as has been observed with Solana in recent years.
- It unlocks new use cases, like an on-chain 24/7 decentralized stock exchange.
Solana's current plan to scale to 1 million TPS is called Firedancer.
Firedancer is a new validator client for the Solana blockchain network. It is being developed by Jump Crypto and will be written in the C/C++ programming languages. The main purpose of Firedancer is to provide an alternative to Solana Labs' validator client, which is written in the Rust programming language, in order to improve the security, decentralization, and throughput of the Solana network. Firedancer will allow Solana to scale to hundreds of thousands or 1 million TPS.
Having two different validator clients that can perform the same state transitions and verify each other dramatically reduces the risk of a catastrophic bug on the network. In the event that a coding bug was to occur in either of the clients, the other client would remain functional, allowing the network to continue running, although at a reduced capacity. This is because the network can still operate with one functional validator client, but at a lower level of security and decentralization.
No single client will have a supermajority on the network when 1/3+ of the stake is running on Firedancer.
Using a different programming language and as few shared programming libraries as possible helps to reduce the likelihood of both validator clients failing at the same time. C/C++ was chosen for Firedancer because it allows for the creation of fast programs and makes it easy to identify bottlenecks in the code. This means that once Jump Crypto finishes coding Firedancer, Solana Labs can analyze the code and use it to formulate improvements for their own validator client.
In a recent Twitter Spaces, Anatoly Yakovenko, the founder of Solana, stated that a catastrophic bug in the validator client is what keeps him up at night, as it could potentially take down the entire network. He believes that every decentralized network should have at least two different validator clients that can verify each other in order to reduce this risk. Interestingly, he also said that he initially started coding Solana in C but switched to Rust because he didn’t have the resources to complete the project in C, even though he knew it would be faster if it was written in C.
“[Having multiple validator clients is] something that I think every decentralized network needs. They need two different clients that can do the exact same state transitions and verify each other.” — Anatoly Yakovenko
In addition to improving security and decentralization, Firedancer is also expected to have lower hardware requirements to run a node, according to the Firedancer FAQ page. This means that it may be more accessible for individuals and organizations to operate a validator node on the Solana network using the Firedancer client. In a test using synthetic load, the Firedancer client was able to process 1.2 million raw TPS (transactions per second) and 600,000 TPS after deduplication.
“Right now, Solana’s throughput isn’t limited by hardware, but by software inefficiencies.” – Jump Crypto