Solana - Cracking the Scalability Challenge with Proof of History
Blockchain’s lack of scalability is a problem as old as Bitcoin. Ethereum has been promising for years that it can solve the challenge through solutions such as sharding, while EOS has achieved scalability but at the expense of decentralization.
Meanwhile, other blockchains use side chains or off-chain computations as a means of reducing network load. While these methodologies yield some improvements to the traditional linear blockchain structure, the increased complexity leads to inevitable technical challenges. Furthermore, they often end up struggling to align incentives, leading to reduced network participation and thus, compromising decentralization.
Solana is a new blockchain platform that aims to solve the scalability challenge using several cutting-edge innovations. This guide will cover:
- Problems Solana is Aiming to Solve
- Proof-of-History Protocol
- Tower Byzantine Fault Tolerance Consensus Method
- Proof of Stake
- Solana’s 8 Innovations
- Roadmap and Team
- SOL Token
Problems Solana is Aiming to Solve
In considering the problem of scalability, Solana also seeks to address the issue of agreement on time within a blockchain network. Consider that any ledger, regardless of whether it’s centralized or decentralized, needs a means of ordering the sequence of transactions. It provides part of the evidence that the transaction took place.
In a traditional paper bookkeeping ledger, it would be the time the clerk received or made the entry. In a computerized ledger on a central server, the system can provide a timestamp for each incoming transaction.
However, in a decentralized blockchain network, the timestamp becomes more challenging. There is no “central clock” from which the nodes can take time information, as this introduces a central point of failure. So, the network needs some means of establishing consensus on time.
Transaction timestamping isn’t the only consideration. In a proof-of-work blockchain such as Bitcoin, nodes need to know the time it took to mine each block, as this calibrates the mining difficulty.
Different blockchains have different methods for reaching consensus on time. It can involve taking a median time from the nodes of the network, or the block miner providing the timestamp, and the network validating that it hasn’t been significantly manipulated. However, the current methodologies for reaching consensus on time rely on a heavy messaging load across the network, which slows processing time.
Proof of History
With the challenge of consensus on timing in mind, Solana has developed a unique protocol for whereby the blockchain structure encodes the passage of time as data itself. The protocol is called Proof of History. It uses Verifiable Delay Functions to establish a single point of unalterable truth about the time a particular event occurred.
Proof of History Explainer Video from Solana
A Verifiable Delay Function (VDF) is a function that takes a defined period to compute, even if the processor attempts to use parallel computing. It can only be carried out on a single CPU core. It produces a unique output that can be quickly and easily verified by network participants. Unlike computing the VDF, the verification can be done in parallel.
Within the Solana environment, each block contains a hash of the results of the VDF of its predecessor. In this way, any network participant can prove the time that has elapsed between any two operations.
Proof of History (PoH) works before consensus. By eliminating the network load of establishing time as part of consensus, Solana has achieved transaction speeds of over 50,000 per second on testnet.
Tweet from the Solana team confirming they’ve hit 50,000 transactions per second
We're now exceeding 50k average TPS across all our reported GCP testnet configurations, an enormous improvement over v0.19.0https://t.co/xuCGq2Rpgx
— Solana (@solana) October 28, 2019
It’s true that sharding does enable parallel processing. However, in a trustless public blockchain, there’s a need for inter-shard communication. This challenge serves to limit the benefits of sharding. Essentially, it creates a new scalability challenge in attempting to overcome the old one, because the more shards exist, the bigger the communication problem becomes. Sharding also increases security risks, because an attacker has a better chance of taking over a single shard than the entire blockchain network.
Solana uses PoH along with other innovations, described below, to achieve this superior throughput.
Tower Byzantine Fault Tolerance Consensus Method
Part of Solana's consensus is comprised of Tower Byzantine Fault Tolerence (TBFT), which is a variant on Practical Byzantine Fault Tolerance (PBFT). Because the Solana ledger is a reliable clock thanks to the PoH protocol, the PBFT timeouts are encoded in the ledger itself.
The Tower BFT element works in harmony with proof-of-stake (PoS), explained below. PBFT Explainer Video from Crunchcrypto
The overall objective of Tower BFT is to ensure that all participants act in the interests of the good of the network. Participants stake tokens to vote on the validity of a PoH hash, which can be considered as a block in other blockchains. The hashtime (block production time) is 400 milliseconds. Each subsequent vote doubles the amount of time that the network would have to stall before it could roll back that particular vote. Therefore, the more time (hashes) that elapses after a vote, the lower the chance the vote will be rolled back.
Once a Validator votes for a block, they cannot vote for a fork in parallel. They must wait for the next block, meaning the PoH VDF has verified time has passed. If any Validator votes for a fork, a portion of their stake is “slashed” as a penalty. Once two-thirds of Validators have voted on some PoH hash, that PoH hash is canonicalized, and cannot be rolled back.
Proof of Stake
Theoretically, anyone can participate in Solana’s proof-of-stake and become a Validator. However, like any blockchain, running a full node requires hardware. Therefore, the network allows for “Delegators” who can delegate a Validator to participate in block production and receive interest from his block rewards.
The PoS operates on a rotating leader schedule, where the Validator is determined according to their share of the entire staking pool. So the more Delegators stake for a particular Validator, the more blocks they will produce. Validators and Delegators receive their rewards from a combination of transaction fees and inflation.
Solana Consensus in Summary
In summary, Proof of History is the “clock” of the network, enabling Validators to agree on time using the Verifiable Delay Function. Tower BFT is the “watch tower” of the network, providing Validators with the assurance that there’s a mechanism to penalize anyone attempting to cheat the PoH clock. Finally, PoS determines the overall rules for how Validators can participate in Tower BFT.
Solana’s 8 Innovations
PoH and TBFT are two of what Solana calls its “8 Innovations.” Three of the most significant besides the two already explained, are called Turbine, Sealevel, and Archivers.
Turbine
Turbine borrows heavily from Bittorrent. One of the issues with achieving scalability in blockchains is the amount of time it takes to propagate all blockchain data to all nodes. Bandwidth restrictions create a bottleneck, which slows down processing.
Similar to Bittorrent, the Turbine solution is to divide data into smaller packets. When you download from several peers through torrents, you are downloading different packets of data from separate individuals. Turbine does the same for Solana Blockchain, and therefore allows much more scalability among nodes.
Sealevel
Sealevel introduces a solution for processing smart contract in parallel. In the Ethereum Virtual Machine, web-assembly-based runtimes mean only one contract at a time modifies the blockchain state. This is because the EVM reads each transaction to determine if it overlaps with any preceding transaction.
Conversely, Solana’s runtime can process tens of thousands of contracts in parallel, using as many cores as are available to the Validator. Transactions specify upfront what state they will read and write while executing. The runtime finds all the non-overlapping state transition functions occurring in a block and executes them in parallel.
Archivers
Solana anticipates that its blockchain will generate four petabytes of data every year. This means it will node operators will need to be packing significant computing power, which will act as a barrier to entry for smaller operators.
As a way of avoiding centralization among a small group of large node operators, Solana uses Archivers. Archivers are nodes that are incentivized to hold some of the blockchain’s data. At regular intervals, Archivers will be challenged to prove they’re storing data and to show Proof of Replication. An estimated three percent of the network token inflation, called SOL, will be assigned to incentivizing Archivers.
This incentivization is in contrast to Bitcoin, where full nodes storing the entire ledger don’t receive any additional compensation. The lack of compensation could become an issue in the future, should the weight of the ledger become too heavy for full nodes to continue operating.
Roadmap and Team
Solana was founded in 2017 and launched the alpha testnet in the summer of 2018. In 2019, the company successfully raised $20m in venture funding, led by Multicoin Capital. Currently, the project team is working on the Solana smart contracts engine, and setup of the validator nodes in advance of the live main net launch.
The company is also running a “Tour de Sol” incentivized event where the validator community can earn tokens in exchange for conducting validation on the testnet.
As you’d imagine for such a technical project, the team at Solana brings extensive development and programming expertise. The founder and CEO, Anatoly Yakovenko, formerly led the development of operating systems at Qualcomm, distributed systems at Mesosphere, and compression at Dropbox. CTO Greg Fitzgerald previously worked at Qualcomm’s Office of the Chief Scientist and has explored the full landscape of embedded systems.
SOL Token
There is a fixed supply of one billion SOL tokens, which are used as an incentive for nodes in exchange for running an on-chain program or validating its output. SOL tokens are divisible by up to 34 times so that the system may perform fractional payouts of SOL as required.
Conclusion
The team at Solana have taken a highly execution-focused approach to implementing their platform. This is in refreshing contrast to many other projects that generally create hype to attract funding and then disappear for years to develop a main net. It’s also impressive what they’ve managed to achieve since 2017, given the deep technical architecture underlying the platform.
As Solana moves closer to the main net launch, it will be intriguing to see what kind of partnerships and collaborators start to migrate to the platform. Given that Ethereum and EOS, as the two most popular blockchains, are still battling their own issues of scalability and decentralization, Solana has an opportunity to establish itself as a fast and secure alternative.