Solana Deconstructed
Solana is a new and open-source project maintained by The Solana Foundation, headquartered in Geneva, Switzerland. Solana offers a fast and high-performance platform for developing programs, creating transactions, and managing cryptocurencies on a permission-less blockchain.
Solana began with the publication of a Proof of History whitepaper by Anatoly Yakovenko in November 2017. Drawing from years of experience and knowledge working with distributed systems at Qualcomm Incorporated and Dropbox, Anatoly developed a new method to improve transaction verification and processing speed in blockchain systems, such as Ethereum and Bitcoin.
Why the need for this development?
Anatoly knew that centralized payment systems such as MasterCard and Visa could process up to 65,000 transactions per second (tps). However, decentralized systems such as Ethereum and Bitcoin could only manage a maximum of 15 tps. Anatoly knew that the latter would not become a dominant force in the world of global finance with such low processing speeds.
The leading cause of the low processing rates for decentralized systems is that they operate between nodes or computers that do not trust one another. One way of ensuring trust in transactions is to have a reliable clock that can simply network synchronization. Therefore, Anatoly designed a clock system for decentralized payment platforms, and his results demonstrated an improvement in transaction verification and processing of up to 10,000 faster than 15 tps.
Together with two former Qualcomm colleagues and three employees, Anatoly founded Loom and later renamed it Solana. The company is now nearing the theoretical limit of processing 710,000 tps on a standard gigabit network.
How Solana works
The Solana decentralized finance (DeFi) system works just like other popular platforms. The process starts with a Solana cluster. This is a set or group of validators who work together to maintain ledger integrity and serve/process client transactions. Different clusters can co-exist. However, two clusters that have the same genesis block or configuration can either converge or ignore one another completely. In the latter scenario, any transactions sent to the wrong cluster are rejected.
The cluster creation process starts by creating the genesis config. This configuration file constructs the ledger for use in the genesis block or the initial block in the transaction chain. The config uses two public keys; a bootstrap validator and a mint. A bootstrap validator is a validator that produces the initial block. At the same time, a mint means the process of creating a new partnership, validating transactions, and recording the transaction on a ledger or blockchain. The bootstrap validator also has a private key that allows them to create the first entries in the ledger.
The bootstrap validator also has the power to register the second validator. However, after that, any registered validator in the cluster can register a new member. When a new node joins the cluster, its registration is recognized by all cluster nodes.
It can take a short while before the new node is fully synchronized with all the other nodes. This time is calculated as being proportional to the square of the number of validators/nodes in the cluster. However, the new nodes are assured that the time is not wasted because the synchronization process ensures that they have the same information as all other nodes and that this information cannot be censored or controlled by any one node.
A client can send transactions to a validator using the Transaction Processing Unit port. If this node is performing as the leader, it joins all incoming transactions and gives them a timestamp to create an entry. The node then pushes the transaction bundle to the data plane [a network for gaining consensus and validating entries in the cluster to be validated by the nodes in the validator status and added to the ledger.
The data plane works by splitting the transaction bundle into batches. The leader node then sends each batch to different nodes in the cluster. Each node then shares its batch with other nodes in the cluster. This process is performed recursively to ensure that all nodes have all transaction batches.
A transaction is confirmed when it receives a supermajority of the validator nodes’ votes. Also, cluster leaders are rotated at fixed intervals known as slots, and each leader can only create entries during the allocated time.
What services are available on Solana?
Solana offers various services to clients. People can use the platform to build their decentralized marketplaces and applications. They can also apply to become validator nodes and earn rewards for their contributions in confirming transactions and securing the network. Solana also allows users to create their own Solana fungible and non-fungible tokens, which can be transferred to other users.
Solana also offers integration with other exchanges. A user can add SOL, Solana’s native token, to their crypto exchange platform which allows them to send withdrawals and receive deposits from other users, validate their account addresses, check account balances, and freeze any suspicious account assets.
Solana users can also stake on their SOL tokens and earn rewards. Staking involves delegating some idle tokens to validators. Validators who have high delegated stakes have a higher chance of being chosen to create new entries in the ledger. The higher the transactions or entries the validator creates, the more rewards they and their stakers earn. Validators cover the cost of operating and maintaining their high-end systems by collecting a commission from the earned rewards. Staking is a good opportunity for users with idle tokens and/or coins.
Lastly, Solana enables users to create and manage both software and hardware wallets. Wallets are applications or devices used to receive, send, store, and track cryptocurrency ownership through the public-private key mechanism.
Solana supports software wallets, mobile app wallets such as Exodus, Trust Wallet, and Coin98, and command-line wallets for developers and advanced users. There are also web-based wallets such as Sollet, Phantom, and SolFlare. Supported hardware wallets include the Ledger Nano S and the Ledger Nano X, which install the Solana app on the devices.
For staking, you can use the following guides:
Step-by-step guide on how to stake SOL on the Solana Network using your Ledger Nano S.
Step-by-step guide on how to stake SOL on the Solana Network and a Keystore File
You can find more info regarding Solana in the fallowing video with Anatoly Yakovenko: https://www.youtube.com/embed/seMUEEwu4Wg?feature=oembed