Solana today is the fastest blockchain with the ability to support 50,000tps. This compares to 7 tps for Bitcoin, 15tps for Ethereum, and 1,700tps for Visa. The original whitepaper of Solana says that using today’s technology, it can achieve a throughput of up to 710,000 tps. It is important to note that it achieves this throughput in the main chain, not through sharding or layer 2 solutions.
I’ve come to believe that when it comes to blockchain it is easy to increase speed. The challenge is to increase speed while continuing to remain decentralized and secure. For instance, bitcoin could always increase speed by reducing block time and increasing block size but doing so would make it less decentralized.
So, does Solana retain decentralization while increasing speed? “yes and no”.
Solana doesn’t achieve Bitcoin’s level of decentralization. Some months ago when Solana had an outage, the network was flooded by transactions at the rate of 400,000 per second and it started forking, the CEO Anatoly Yakovenko was able to coordinate a mainnet restart with a major upgrade in less than a day. Compare this to Bitcoin that went through 3 years of debate and discussion before executing the relatively minor taproot upgrade.
But Solana does achieve sufficient decentralization to be able to facilitate democratized businesses like Serum on its platform. Low speed and high transaction costs of Ethereum reduce the capabilities of DeFi protocols running on it. Solana may be sacrificing some decentralization for usability.
Design of Solana
Source- Solana Whitepaper
Solana uses Proof-of Stake (POS) for consensus. The decision of which transactions make it to the blockchain and in what order, falls on the “leader”. The chance of a node being selected as a “leader” is a function of the amount of SOL tokens staked.
The leader lines up the transactions and sends them to the Verifiers. Once the Verifiers sign the transaction the network state is updated.
To provide the performance of a single node while retaining decentralization, Solana has introduced 8 unique innovations. I explore those in detail below.
1. What is Proof-of-History (POH)?
Before talking about POH, let’s clarify something that could cause confusion later. POH is "not" a consensus mechanism. As mentioned above, Solana uses Proof-of-Stake (POS) for consensus. POH is a way to keep time.
Blockchains don’t use a clock because there’s no decentralized way to decide what the correct time is. When a transaction is sent to be added to a block, every miner receives it at a slightly different time and there’s no way to agree on the time that the transaction happened.
Bitcoin’s Proof-of-Work (POW) is a competition where the winning miner wins the right to build the next block and has the power to decide which transactions make it to the block. Apart from everything else that POW achieves, it also helps to keep time as it indicates that transactions in block(x) happened before transactions in block(x+1) and after transactions in block(x-1). However, there are some issues. (1) There’s a 10-minute gap between the creation of 2 blocks and (2) All transactions within a block are assumed to have happened at the same time. These 2 limitations mean that bitcoin cannot facilitate high-frequency use cases like say running an order-book-based exchange.
Solana uses POH to determine the order of transactions and keep time in a far more efficient manner.
To understand the concept- If you take a picture of yourself holding a copy of yesterday's NYTimes, it proves that the picture was taken after yesterday’s NYTimes was published. Further, if your picture holding yesterday’s NYTimes is published in today’s NYTimes, then it proves that the picture was taken before today's NYTimes was published.
Applying the same idea to blockchain- If you could reference each transaction with a transaction that happened earlier and connect it to a transaction that happened later, you could establish when it occurred relative to other transactions and hence keep time.
Solana uses the algorithm SHA-256 to link transactions. SHA-256 has certain properties that make it ideal for this use but I won't confuse the reader by getting into that here.
In short- Bitcoin uses an operationally inefficient process to keep time that involves messages being exchanged across thousands of nodes using the gossip protocol, while in the case of Solana, time is embedded in the transaction itself.
2. What is Pipelining?
Solana speeds up the verification process through pipelining i.e., it allocates different processes to different hardware.
Let’s try to understand with a mechanical example. When doing laundry, the process is divided into 3 parts- washing, drying, folding. Each process can be allocated to a different machine- washer, dryer, folder. The efficient thing to do is to add a second load to the washer after the first load is moved to the dryer and add the third load to the washer after the first load is moved to the folder and the second load is moved to the dryer. The idea is to ensure that all machines are working all the time. Therefore, if drying takes 5 times as folding, there should be 5 dryers for every 1 folder.
Applying the same to Solana, transaction verification can be split into various steps. Each step is allocated to different hardware. Among the steps, “Verification of signatures” is the bottleneck requiring maximum time. A modern GPU with 4,000 cores can verify 4,000 transactions simultaneously instead of in sequence and reduce the time it takes to verify.
3. What is Gulfstream?
In case of Bitcoin and Ethereum, when a transaction is sent, it sits in a mempool till it gets picked up by a miner and added to a block. The miner picks transactions for processing only after the previous block has been published as they wouldn’t know which transactions remain to be processed.
In case of Solana, since the order of leaders is known in advance, validators can direct transactions to the future leaders. The future leader can start executing the transactions before it is their turn to publish blocks.
4. What is Sealevel?
Sealevel enables the parallel execution of thousands of smart contracts. How does it work? A multiprocessor can execute only one program at a time but it can execute it simultaneously for 80 different inputs. A typical modern computer with 50 microprocessors can therefore execute 4,000 (50*80) instances of the same smart contracts at a time. Sealevel collates in one place transactions that call on the same program instructions so that they can be processed in one go.
5. What is Tower BFT (Byzantine Fault Tolerance)?
Tower BFT runs on POH to reach consensus. When one votes on a specific fork, they’re locked out of voting on an opposing fork for 400ms (average block time of Solana). If they continue to extend this fork for 32 votes which takes roughly 12 seconds, then they cannot reverse this fork for 54 years (2^32*400ms)
Bitcoin uses Byzantine Fault Tolerance and values “consistency” i.e., “nothing bad happens”. Solana uses Tower BFT which values “liveness” i.e., “something good eventually happens”.
6. What is Turbine?
Transmitting large amounts of data to a large number of nodes requires a lot of bandwidth. For instance, if 128MB of data has to be transferred individually to 20,000 nodes, there will usually not be sufficient bandwidth to accommodate the same. The solution Solana uses is to split the data to say 64GB packets and transmit each packet to a different verifier. Each verifier then propagates the packet that it receives to its neighbors who further propagate it to their neighbors till all nodes receive a copy of all the packets.
7. What are Archivers?
Bitcoin has thus far resisted effort to increase block size as it believes that increasing block size will increase the size of the blockchain and that would mean that nodes running on basic computers will no longer be viable i.e., only large centralized data centers will be able to function as full nodes.
At full capacity, Solana will generate 4 petabytes of data. How does it plan to store the data and still remain decentralized? Through Archivers.
Archivers are replication nodes that signal how much storage space they have. The network splits the ledger and allocates pieces for storage with each Archiver. Between all the Archivers, 100 copies of the ledger may be targeted to be maintained. To ensure that Archivers don’t cheat, they are periodically called upon to provide proof that they’re storing what they say they’re storing. Solana uses a modification of Filecoin’s Proof-of-Replication here.
This way storing copies of the ledger is divided among many nodes but each node does not have to store too much data. This way Solana gets around the problem of centralization with increase in block size.
To achieve scale, it isn't sufficient to increase computation, it is also necessary to increase memory. Solana does this by enabling simultaneous reading and writing of transaction data. Closing comments
The above 8 innovations when combined with the basic design structure of Solana help it to achieve speed and capacity unmatched by any other blockchain. Solana is still in beta stage and likely to go through iterations and upgrades for some time before the kinks are removed
_________________________________________ Disclaimer- The views mentioned here are purely my own