There are few technologies that leave me searching for words to begin. Most have fancy marketing, cool logos, and things that draw you in and try to distract you with features that are as shallow as the technologies they are based on–we can safely turn our heads and ignore most of what’s going on out there. This time, in our quest for understanding the cryptographic, it’s time to explore another puzzle: Solana.
Solana is an open source project implementing a new, high-performance, permissionless blockchain. The Solana Foundation is based in Geneva, Switzerland and maintains the open source project.https://docs.solana.com/introduction
This time, our task is extremely and wonderfully dense. Understanding the value in Solana is hard because understanding how it works is hard, and, in search of a whitepaper for the project I found 8 whitepapers that are necessary to understand this technology. As I go through them, it’s like reading mini-doctoral dissertations on different areas within cryptography–I challenge you to read through these and understand them. In this article though, I promise to paint a high-level picture if I’m already losing you.
Today, I want to introduce a few things that I’ve learned about Solana, and why later today I’ll be building a Solana validator. I can almost guarantee that I’ll be writing much more on this project. There’s just too much to cover in one article.
There are 8 key innovations that make the Solana network possible:
- Proof of History (POH) — a clock before consensus;
- Tower BFT — a PoH-optimized version of PBFT;
- Turbine — a block propagation protocol;
- Gulf Stream — Mempool-less transaction forwarding protocol;
- Sealevel — Parallel smart contracts run-time;
- Pipelining — a Transaction Processing Unit for validation optimization
- Cloudbreak — Horizontally-Scaled Accounts Database; and
- Replicators — Distributed ledger store
The major takeaways
The first thing I noticed when I started reading about Solana is that it’s being lead by a Swiss Foundation. This is interesting especially since it brings me to our first point. Time. If I had to describe the whole project, that’s where I’d start. Solana’s big-picture innovation is similar to the Swiss movement of the world’s best watches; what I mean is that the Swiss know how to keep track of time. It makes sense that they would be so deeply involved here–distributed computer systems need precise and near-perfect timing to operate in our world today. From what I can see, they’ve done it again. This time leveraging a different sort of proof–Proof of History.
Solana is a high-throughput, high performance blockchain.
Before we move forward though, I want to hit the pause button here and take an aside. We need to really understand why time is so important when it comes to computers and furthermore, why time is especially important when it comes to decentralized blockchains. We have to understand the problem that Solana is solving.
To begin, remember that every database, every ledger, every log needs a timing system of some kind to maintain order. Time is something we humans came up with, a measurement for when events happened or will happen. In a ledger, time is non-negotiable when it comes to verifying when something happened–it needs absolute order. The ledger needs to be able to record if something happened and exactly when it happened.
We need a point in time. Without timing, there is no blockchain.
Maybe two things happened exactly at the same time? In database speak we use the term Atomicity, to describe when a database operation occurs; which is interesting because we also use essentially flawed tools like atomic clocks as a “trusted third parties” to tell us when things happened. However, with time dilation (time in regards to clock timing, moves faster as we change altitude), the effects of Relativity, and even slight network delays can render timestamps inaccurate in a globally dispersed network of computers all trying to work together. Timestamps are not reliable and are essentially useless for deciding order at the scale of say the Bitcoin blockchain.
I find it fascinating that we cannot even measure time to a known level of precision, read about Planck time below–the smallest interval of time that physicists and philosophers are working with today. Furthermore, study of quantum gravity by people like Carlo Rovelli, expose even more problems that we have in how we experience time. Aristotle thought about time as simply a way we count changes, and Newton believed that time moves forward regardless of change, and Einstien, with his theory of Special Relativity, said that time is relative to your frame of reference.
Instead of asking what time it is, we need at ask what is time?
The Planck time tP is the time required for light to travel a distance of 1 Planck length in a vacuum, which is a time interval of approximately 5.39×10−44 s. All scientific experiments and human experiences occur over time scales that are many orders of magnitude longer than the Planck time, making any events happening at the Planck scale undetectable with current scientific technology. As of October 2020, the smallest time interval uncertainty in direct measurements was on the order of 247 zeptoseconds (2.47×10−19 s). While there is currently no known way to measure time intervals on the scale of the Planck time, researchers in 2020 proposed a theoretical apparatus and experiment that, if ever realized, could be capable of being influenced by effects of time as short as 10−33 seconds, thus establishing an upper detectable limit for the quantization of a time that is roughly 20 billion times longer than the Planck time.https://en.wikipedia.org/wiki/Planck_units#Planck_time
To bring it back to what we need to understand, we need to be able to agree what time is, we need a specific time. Multiple computer systems run by people who don’t exactly trust each other is the issue with decentralization, but by solving the problem of timing, we bring about order. It must be noted that the fact that it’s impossible to reliably link a moment in time to a specific event in distributed computer system was the problem that made a decentralized blockchain impossible, until Satoshi Nakamoto invented the solution (read this email from Satoshi), Proof-of-Work.
Bitcoin has exposed us to many new ideas and has shaken the world with its innovation, but here’s another–the Bitcoin blockchain is possible because a side-effect of how blocks are written make it a large decentralized clock! Bitcoin has a function built into it called nLockTime that helps make agreeing on a time possible. The blocks in the blockchain operate like a global clock–with an average of 10min per tick. I would argue that this is one of the greatest “discoveries” of our modern age, brought to us through the use of cryptography and blockchains.
Solana has many ways to get involved.
When I first showed up at the Solana website, my head started to spin immediately, in a good way. The reason is that there are many ways to get involved with Solana.
Obviously, you can invest with Solana like other cryptocurrencies, you can also stake Solana through a validator, you can build your own validator (as I mentioned previously) as I am doing, or, you can develop applications with it. You can develop on-chain applications in Rust and in C.
I want to make a note here and mention that from a developers perspective, the Rust programming language is widely used and loved by developers–according the the 2021 StackOverflow Developer’s Survey, it’s the most loved language in the world. I believe that due to this fact, adoption of Solana will accelerate–especially since Solidity, the language that Ethereum Smart Contracts use–isn’t even on the list.
The other thing I love about Solana’s infrastructure is the simplicity of how they word things. CryptoCourt and I have had many discussions about the use of strange jargon to describe things in the crypto world–and even how using the term Smart Contract can be confusing to people. Instead of trying to confuse people and come up with new terms for things, Solana simply calls its on-chain smart contracts–programs. I like that.
Additionally, there is lots of starter code for people to learn how to write on-chain programs, along with a large community of developers that are providing starting points and tutorials that make developing programs relatively easy. I was able to set up an escrow program in just a few hours.
Conclusion: it’s just the beginning for Solana
There’s a lot to unpack with the Solana universe–and it really has just begun. Overall, it’s an exceptional project with fantastic marketing, a huge community, well-thought out implementation, and it leverages the best things that blockchain has to offer. I’m going to continue to explore and report on the developments that I learn through my experiences.
I’ve already started my validator–I’ll update you when you can stake SOLs (the native token of Solana) on my own system! Solana takes the best things from Bitcoin (the timing concepts) and is looking a lot like a better Ethereum. My prediction is that when Solana hits the mainstream–it will overtake Ethereum in regards to price.