As of mid 2021, Solana supports 50,000 transactions per second (TPS) and produces new blocks every 400 milliseconds with the help of 200 validating nodes. All while maintaining close to zero network fees.
Solana uses eight innovative technologies to achieve its goals, but in this guide we will touch on the two major ones – Proof of History and Turbine.
Solana’s approach to consensus
Consensus is a process of agreement between blockchain nodes on the new transactions. For consensus, ordering of events is important. For example, you should not be able to spend funds before you receive them.
To address this problem, most blockchains incorporate ‘reliable’ global time for the network and use timestamps for every occurring event to understand its position relative to all other events. For instance, Google’s distributed database called “Spanner” uses three atomic clocks that are synchronised to a very high precision level which provides a reliable source of time. But timestamps cannot be trusted 100% in decentralised networks.
Solana addresses this problem with Verifiable Delay Functions and a novel mechanism called Proof of History. Hash functions need to be explained first.
About hash functions…
Hash functions allow you to scramble information in a very random manner. A hash function always returns strings of the same length, no matter the input size and type.
What really matters is that these functions are very sensitive to changes in input. For example, feeding “Coin Rivet” and “CoinRivet” gives completely different results, even though we simply omitted the space :
“Coin Rivet” → df8ef59d4761b71e0d0595ef8a531a4324053cacb33f7afdf4951de0f1fb2c61
“CoinRivet” → 41f2e5cd7b15264ec18ec24152a6131628aabe685d459fce3399065a327abe24
Proof of History
First, a hash function is applied to a random string, its output is hashed again and so on. This creates a sequence of hashes. When a new event occurs, it can be appended to this chain starting at some point, causing all future hashes to change. Because of sensitivity to input changes, the new values have to be computed from scratch and they are published for verification. Since computing hashes requires time, publishing correct hashes proves that real time has passed after a new added event.
Checking a given sequence of hashes, on the other hand, is computationally easy. Modern GPUs have around 4,000 cores and the job of verifying the sequence can be parallelised. For a 4,000-long chain of hashes, core 1 checks hashes 1 and 2, core 2 checks hashes 2 and 3 and so on, all at the same time. If anything does not match, a malicious attempt is identified straightaway.
This makes quick ordering and block formation possible.
Every node has to witness a new block before it is confirmed. The leader, which makes up a block, needs to transmit it to all validators. If there are thousands of them and each block is several megabytes in size, transmitting individually to each validator becomes a very slow procedure.
Solana adopts BitTorrent’s data distribution mechanism and calls it Turbine. A proposed block is split into 64KB packets and every validator receives a different packet. The packets are then exchanged between “neighbouring” validators, thus forming a neighbourhood. Grouping validators into neighbourhoods of 200 allows for 40,000 validators to receive all the packets after just two iterations of data transmission.
However, an obvious security concern is raised: What if some validators refuse to pass the information or corrupt the packets? Solana utilises the so-called erasure codes to cope with malicious behaviour. They allow for any 33% of the block information to get lost while keeping each validator able to restore the initial data from the remaining 67%.
How does Solana ensure that no more than a third of the information can be manipulated ?
Each packet takes a random path down the neighbourhoods, which makes it impossible to predict a good position to be in in order to interfere with as many packets as possible.
The validators are chosen with the Proof of Stake algorithm, where nodes with bigger stakes are prioritised. Validators can be penalised for bad behaviour by confiscating a portion of their stake. Leaders are also changing every four blocks or 1.6 seconds.
Solana is transparent because anyone in possession of the right equipment can become a validator, although a bigger stake is preferable by the network.
Solana’ s ecosystem
Solana’s mainnet has been live for several months now. In 2020, Serum Decentralized exchange was launched by the Solana team. It is built on top of Solana network which allows it to inherit the speed and reliability of the main blockchain. Other DeFi projects like Raydium and Bonfida are adding to Solana’s development with more projects like O3Swap and SolStarter on the way.
With more than 7,000 nodes and 90,000 validators, Ethereum remains a more powerful network than Solana. But recently, more and more projects have started showing faith in Solana. Kin ecosystem with more than 30 million accounts has switched to Solana in 2020. This year, over $100 million were invested to Solana to facilitate its expansion to Chinese markets.
Disclaimer: The views and opinions expressed by the author should not be considered as financial advice. We do not give advice on financial products.