The Practical Consequences of Solana’s Scalability
Solana is a relatively new blockchain with heretofore unseen capabilities. It’s unmatched performance in terms of throughput and low fees are birthing novel applications that are not possible on other chains.
Until now, significant improvements in performance often came at the price of decentralization. And what is the point of a blockchain without decentralization? It merely becomes an inefficient database. This is not the path taken by Solana, however.
In this article, we look at how Solana achieved its scalability and the characteristics of its blockchain architecture and development ecosystem that enable the creation of new and unique use cases.
Clarifying the Scalability Trilemma
The scalability trilemma is a term coined by Vitalik Buterin that proposes a fundamental tradeoff between scalability, security, and decentralization.
An analogy will help explain how it is often portrayed. Suppose there are three people with three glasses and one bottle of wine. Each drop of wine can only go into one of the glasses. If one person gets more, another person must have less. In other words, it’s a zero-sum situation. This can be mathematically expressed as x+y+z=1. Any increase in one of the variables necessarily implies a decrease in one or both of the others.
This analogy for the interaction between scalability, security, and decentralization might be accurate if all you could do was change the parameters of a blockchain such as the block size or the target frequency at which new blocks are produced. For example, this is basically what Binance Smart Chain has done — increased throughput yet simultaneously decreased decentralization due to having fewer validators.
But this fails to factor in technological innovation. Returning to our analogy, when you innovate, you get a larger bottle of wine, so at least one of the glasses ends up fuller without reducing the amount in the other glasses. Aspects such as the consensus algorithm, block propagation, and smart contract run-time can be improved, making the blockchain as a whole more efficient. The tradeoff may still hold in that increasing one variable could still decrease others, but only at a slower rate. Innovation adds a variable to the equation: x+y+z=1+i.
This means that it’s possible for blockchains to be as secure and decentralized as another yet more scalable; the increase in scalability comes from innovation rather than from sacrificing security or decentralization.
The goal in creating a blockchain should not be to maximize decentralization but to achieve sufficient decentralization. A blockchain with maximal decentralization would simply be useless; every performance metric would be maximally degraded in exchange for any incremental improvement in decentralization. If decentralization reaches a point of sufficiency — i.e. the blockchain becomes able to withstand any feasible attack — there is no reason to further decentralize beyond this point, and performance should be prioritized.
Unfortunately, as of now there is not yet a consensus on how to measure decentralization or what constitutes sufficient decentralization. Bitcoiners believe expending physical resources through proof-of-work is necessary. Ethereans believe that proof-of-stake is optimal and users must be able to validate the blockchain on an average laptop. Proponents of Solana focus on efficiency and do not believe that every user needs to validate the blockchain themselves. What number of validating nodes is enough? What about wealth distribution within the network? There are many points of disagreement. What does seem clear, however, is that decentralization lies on a spectrum rather than being binary. Solana is extremely young, and as with other major blockchains such as Bitcoin and Ethereum, decentralization improves over time. Therefore, their current levels of decentralization are not directly comparable.
Let’s now take a look at the fundamental innovations that Solana brings to the table that enable its high performance without compromising on security or decentralization.
This section is intended to provide an extremely brief overview of Solana’s technological innovations that enable its high performance. For a more in-depth look, check out this article or the linked articles for each innovation.
Proof of History: A clock before consensus
Proof of History (PoH) is a mechanism that enables validators to agree on a universal clock through the use of a verifiable delay function. While other blockchains require communication between validators to agree that time has passed, Solana is able to bypass this and as a result can schedule leader selection ahead of time and optimize for block time, block propagation, throughput, and storage.
Tower BFT: A PoH-optimized version of PBFT
Tower BFT is a PBFT-like consensus algorithm specifically designed to take advantage of the synchronized clock provided by PoH. Unlike PBFT, Tower BFT prefers liveness over consistency.
Turbine is Solana’s block-propagation technique. As a block is streamed, it is broken up into small packets along with erasure codes and then fanned out across a large set of random peers. To ensure that the fanout mechanism is resistant to faults, validators encode data using Reed-Solomon erasure codes, providing a degree of fault tolerance.
Gulf Stream pushes transaction caching and forwarding to the edge of the network. Since every validator knows the order of the upcoming leaders, clients and validators forward transactions to the expected leader ahead of time. This allows validators to execute transactions in advance, reduce confirmation times, switch leaders faster, and reduce the memory pressure on validators from the unconfirmed transaction pool.
Unlike most other blockchains, which are single-threaded computers, Solana takes advantage of its performant network by supporting parallel transaction execution in a single shard. This is enabled through Sealevel, a hyper parallelized transaction processing engine designed to scale horizontally across GPUs and SSDs. Transactions specify up front what state they will read and write while executing so that the runtime is able to find all the non-overlapping state transition functions occurring in a block and execute them in parallel.
Transaction validation on Solana uses an optimization technique called pipelining to quickly validate massive blocks while also replicating them across the network.
Cloudbreak is a state architecture that’s optimized for concurrent reads and writes spread across a RAID 0 configuration of SSDs. Each additional disk adds storage capacity available to on-chain programs and increases the number of concurrent reads and writes programs can perform. As soon as validators observe a transaction, they can start pre-fetching all the accounts from disk and preparing the runtime for execution.
On Solana, data storage is offloaded from validators to a network of nodes called Archivers. The history of the state is broken into many pieces, erasure coded, and stored by Archivers. Every so often, the network will ask the Archivers to prove that they’re storing the data they are supposed to.
We now turn to discussing the practical consequences of Solana’s development ecosystem and unique characteristics resulting from the above innovations.
Smart contracts on Solana are written in Rust, a popular programming language with a rapidly expanding community. It blends the performance and efficiency of languages such as C++, adds a friendlier syntax with a focus on code safety, and simplifies the development process.
For comparison, consider Solidity, Ethereum’s smart contracting language. While Ethereum has the greatest developer mindshare within the blockchain industry, when you zoom out there aren’t many developers working on Ethereum. Being a young language, Solidity is behind other development environments such as web and mobile. Debugging is challenging, tooling support is minimal, and experienced Solidity developers are hard to come by (although they are high in demand).
While Rust is also a relatively young programming language, its tooling support is ahead of Solidity, not to mention that the language itself has many features that make writing it both more ergonomic and easy to get right. Rust data structures are very compact, which is important in the blockchain world where space is precious. Further, Rust is also widely used outside of the blockchain industry and has a huge ecosystem in which users are constantly adding new features and packages because, as is now well-known, developers love Rust.
The bottom line is that using a more powerful language accelerates developer productivity over the long run. It may take time for Rust to gain momentum in the blockchain space, but once the upfront costs are paid and the blockchain-specific tooling catches up, there will be clear advantages to building dApps on Solana.
Composability — the ability of different protocols to seamlessly plug into each other — is what enables innovation to compound, as protocols integrate with what others have built rather than having to build primitives from scratch themselves.
L2s and sharding are two of the ways that Ethereum seeks to solve the scalability issues it faces. While increasing throughput and transaction speeds, these benefits come at the cost of composability. Communicating between different L2s and shards and coming to a consensus on the current state is challenging; it requires them to be able to safely communicate with sufficient security guarantees without going through the first layer.
Through its singular global state and inherent scalability, Solana maintains composability and avoids the need to rely on L2s or sharding. This allows developers to avoid the friction of deciding which L2 to integrate with and the work of actually deploying contracts on it as well as how to communicate across fragmented L2s and shards, and instead focus on things such as building new features and integrating with other protocols.
Clear Path to Scaling
The final form of Ethereum’s path to scaling is yet to be determined. Which scaling solutions will be used? Regardless of whatever scaling solution proves to be the most successful, it is unlikely to have a single implementation, leading to fragmentation. How will the transition to L2s take place? How will capital flow between the various L2s? What will the implications be for developers, wallets, LPs, fiat on-ramps, and users? Sharding likewise faces similar uncertainties.
Ethereum developers have to rethink their approach to scaling each time congestion on Ethereum makes using their protocol prohibitive. For example, it is not uncommon for code to be rewritten to make a protocol’s transactions cheaper, even at the cost of making the code less clean and, as a result, less secure. Further, as L2s are adopted and sharding is implemented, developer tooling will have to be updated to deal with new data structures, making development increasingly challenging. These issues are certainly not insurmountable, but they will slow the rate of development and frustrate developers who don’t want to have to think about what goes on under the hood.
On the other hand, Solana has a relatively well-defined path to scale indefinitely. A key differentiator is that the computational capacity of Solana’s network directly benefits from improvements in hardware and bandwidth due to its native support of intra-shard parallelism, with capacity expected to double every two years. Importantly, these scalability improvements take effect at the base layer and do not require developers to change any code. With time, executing code on Solana will cost less and less, and it will continue to work without having to adjust to shifting L2s or the intricacies of sharding.
Exchanges are fundamental infrastructure for blockchains. Blockchains enable the sending and receiving of the native token, but once there are multiple tokens (ERC20 tokens, SPL tokens, etc.), users will need exchanges where they are able to trade them.
Currently, most blockchains have many DEXs with their own siloed pools of liquidity. Aggregators try to solve this by routing orders to the DEX that offers the best price. While this is definitely beneficial for users, it is not as good as if all liquidity were gathered in a single location, which would significantly reduce slippage.
Enter Serum. Serum is a central limit order book (CLOB) where bids and asks can be placed permissionlessly for any token. Any project can freely use their exchange, and it serves as a building block that frees developers from having to create their own custom exchange infrastructure.
Having an order book means that Serum can enable order types other than market orders that are available on centralized exchanges such as limit, IOC, and post-only orders. Furthermore, unlike on other chains, placing these orders is not prohibitively expensive.
There’s a reason why a CLOB hasn’t been built on any other blockchain; it’s simply impractical without Solana’s high throughput and low transaction costs. In order to garner significant liquidity, market makers need to be able to quickly and frequently adjust their spreads to changing market conditions. The lower the frequency at which market makers can move their orders and the higher the cost of each adjustment, the larger their spreads will have to be to compensate for the increased risk they bear. Thus, Solana’s high performance directly leads to more liquidity.
With Serum, liquidity is gathered in a single place rather than being fragmented across DEXs. Even if DEXs have their own AMM liquidity pools, this liquidity can be used to place orders on Serum. Indeed, exchanges with their own pools are incentivized to integrate with Serum; customers trading through them can then access both their own pools and Serum, whichever gives the better rate. Some pools even use the pooled assets to place orders on Serum. This is an approach taken by Raydium, for example, which serves as a market maker for passive LPs. Serum and DEXs thus form a symbiotic relationship.
Latency and Throughput
Latency and throughput go hand in hand; one is not useful without the other. For example, you may have 100 blocks per minute, but if you can only fit 1 transaction in each block, your throughput isn’t too impressive. Conversely, suppose you can process a million transactions per second, but you only produce blocks once every hour. There will be a massive number of transactions in each block, but it’s ability to update the state of the blockchain once an hour will significantly limit the range of useful applications that can be built.
Solana currently supports a peak capacity of 65,000 transactions per second and 400ms block times. Both are industry-leading numbers, and they will only improve over time.
A major aspect of DeFi that Solana’s speed has significant implications for is liquidations. Collateralization ratios are directly correlated to how long it takes to unwind positions. The more time passes until a position can be exited, the more the price is able to move, resulting in greater risk of the position ending up undercollateralized and jeopardizing the solvency of the protocol. Thus, longer block times necessitate greater conservatism in liquidation mechanisms.
Solana’s lower latency and resultant faster liquidations mean that lower collateralization ratios can be safely used, leading to greater capital efficiency. Or, if the same collateralization ratios as projects on slower L1s are used, projects on Solana will be less prone to cascading liquidations. Not only can liquidations be processed more quickly, but leverage can be adjusted and margin calls can be topped up more quickly, leading to fewer liquidations to begin with.
Solana’s speediness is also useful for applications such as games in which seeing the responses of other humans needs to be on the scale of seconds, the minimum speed required to keep players engaged. We are bound to see a wide range of new, heretofore impossible applications once on-chain human coordination becomes possible in real time.
Fees on Solana are roughly between 15,000x and 400,000x times cheaper than fees on Ethereum. Low fees open the door to users who were priced out of using Ethereum. Together with a higher throughput, this means that Solana is able to support a wider user base.
While whales are less likely to be bothered by high fees, one example where low fees benefit both whales and smaller players alike is compounding in DeFi protocols. The optimal compounding frequency for maximizing profits is inversely correlated with transaction fees; the lower the transaction fee, the higher the optimal compounding frequency. This relationship is expressed in the image below.
Similarly, lower fees enable users to more efficiently create leverage in lending protocols. Users can open a leveraged position on an asset by depositing an asset such as SOL that they want to get leverage on as collateral, borrowing another asset such as USDC, and using the USDC to buy more SOL. This process can be repeated to increase leverage. The process can take many separate transactions to complete, and thus lower fees enable greater leverage, or the same amount of leverage but more cheaply.
The above are only examples using existing applications on Ethereum. There will certainly be new use cases that will be unlocked due to sufficiently low fees. One such example is streaming payments, where funds are released continuously in real time. This will enable platforms to, for example, more granularly define usage and bill users on small units of time, provide a modern alternative to the traditional payroll system where salaries are paid once a month, or create vesting contracts with custom release rates.
Solana’s high performance does not only expand the space of possible applications; the characteristics we have discussed thus far are collectively able to provide an unprecedented user experience. Solana is uniquely able to provide users with the type of seamless experience that people in the modern era have come to expect.
People often talk about the magical moment when they made their first Bitcoin transaction and felt the stark difference in comparison to all the hoops that have to be jumped through just to perform a simple bank transfer in the legacy financial system. Similarly, the felt experience of using Solana is vastly different compared to other blockchains, like switching from using a 10-year-old laptop to the latest MacBook.
Given the fast-paced world we live in and people’s shortening attention spans, the value of fast transactions cannot be overstated. For newcomers, having to wait minutes for a transaction to confirm is extremely anxiety producing; the mind can’t help but begin to wonder if something has gone wrong. This type of fear goes away with time and experience, but it not being there from the start is a huge advantage.
Cheap fees are similarly liberating, eliminating the need to contemplate the tradeoff between the fees you pay and the amount of time it will take for your transaction to confirm. Fees on Solana are so cheap that people can even forget that they are paying anything at all to transact. This encourages users on Solana to try out new products without having to mentally calculate whether the transaction fees are worth paying. Furthermore, users don’t even need to set their fees, as they are set deterministically. This is a much more user-friendly approach, as people are generally not used to setting transaction fees in the non-crypto world (think bank transfers).
Much of the infrastructure currently being built on Solana is composed of protocols similar to what exists on other networks with minor tweaks. Yet just as nobody foresaw the various blockchain applications until they were actually built, Solana will likewise see, and is indeed beginning to see, an explosion of new applications. New investments in the space and easier onboarding, especially through the support of FTX, is only accelerating this trend. If you have yet to try Solana, I encourage you to give it a shot and see for yourself the felt difference of it’s scalability.
Soteria is being built on top of Solana to take advantage of the fast transaction speeds and super low fees. This will enable traders to efficiently arbitrage any price difference between exchanges and DeFi apps, which will peg USDS to the USD. We are excited to build on top of a high performance blockchain and contribute to the ecosystem!