paint-brush
Solana ICO Review — Redesigning the High Performance Blockchainby@coincrunchio
2,592 reads
2,592 reads

Solana ICO Review — Redesigning the High Performance Blockchain

by Coin CrunchMay 9th, 2018
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Not being able to agree on time is a tough problem, not only in blockchain but also on the internet. The <a href="http://www.dainf.cefetpr.br/~tacla/SDII/PracticalUseOfClocks.pdf" target="_blank">practical use of synchronized clocks in distributed systems</a> is to improve performance of distributed algorithms.

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coins Mentioned

Mention Thumbnail
Mention Thumbnail
featured image - Solana ICO Review — Redesigning the High Performance Blockchain
Coin Crunch HackerNoon profile picture

Not being able to agree on time is a tough problem, not only in blockchain but also on the internet. The practical use of synchronized clocks in distributed systems is to improve performance of distributed algorithms.

Other projects like Hashgraph (with “median” timestamp) or FOAM (with clock synchronization between deployed beacons with radio transceivers, to ensure Proof of Location) are working to solve the “time agreement” issue.

SOLANA: “Proof of History” to determine the future of blockchain scalability.

In order to create a ledger with an encoded trustless passage of time, SOLANA has designed Proof of History, a proof for verifying order and the passage of time between specific events.

Proof of History will work alongside Proof of Work (the consensus algorithm used by Bitcoin, among others) or Proof of Stake (the one used by Ethereum´s Casper) consensus algorithms. This may reduce messaging overhead resulting in subseconds finality times.

In addition to this, Solana is working to produce up to 710K transactions per second based on 1 gb network without data partitioning. Do you want to know how they´re planning to achieve this great triumph?

Problem

In the race to develop high throughput (tps) and highly secure blockchains, teams are devising new ways to create highly scalable solutions that will allow high transactions per seconds currently available in existing blockchains.

“Time issues”. In the age of computation and information, there is a basic need that’s waiting to be solved. Fairless Coordination between events. It means: for example, when a computer sends a message to another computer, they need to synchronize the time between transactions. Therefore this implies that, if each of them has its own inner clock, they might, or might not, coordinate properly.

Coordinating events with a timestamp is not only a need for the system but also it is a great cost in terms of money, personnel and effort.

One technique that developers have started using to increase the overall throughput of the chain is sharding. Sharding is a technique used to improve overall chain TPS and is proving to be successful but on it’s own is not a full solution as this could introduce vulnerabilities.

The biggest vulnerability is the partitioning of the transactions, if this is not handled well, it can open the chain up to fraudulent transactions, double-spend, or a lack of shared knowledge between shards of the same transaction

To give some general vision, Google Spanner (Google’s scalable, multi-version, globally distributed, and synchronously-replicated database, which supports read-write transactions, read-only transactions, and snapshot reads) spends an enormous amount of resources to synchronize its atomic clocks between data centers.

They need to be maintained precisely and a whole bunch of engineers work on that. It may seem that coordinating time is an easy thing, but it is not and that’s where Solana comes in with its Proof of History solution.

By enabling trusted time coordination, Solana will not only increase its blockchain throughput in terms of speed and reliability, but also it will reduce average costs.

The team that successfully solves this problem could have a highly adopted blockchain.

Solution

Solana is implementing a new time based approach to consensus within their blockchain.

Their approach is based on “proof of history” and is an innovative approach to consensus that doesn’t require all nodes in the network to confirm the transactions like, (BTC or ETH) it just requires that all agree that event A took place before event B.

To handle the problem, Solana designed a new blockchain architecture. This new concept integrates what has been called “Proof of History” (go to “tech overview” for a deeper and easy to understand explanation of the sequence) and will result in increased scalability (as shown in the graphic) and reduced costs.

If you take a look at the sequence of pictures above, and if you are Marvel blockbuster movie fan, you could of course imagine yourself watching one of these movies at the cinema. You will agree, that if you were recorded in the event of attending the premier one of these, no one could deny that you watched The Avengers after being at the premier of Iron Man, but beforewatching The Avengers: Infinity War. Being able to record events in history and using those events as ticks of time.

These pictures carry with them specific time information. You wouldn’t need to spend resources to find out that information because it is inherent to the picture taken, it comes with them and is something everyone would agree on and which could easily be verified. This is something similar (in the above example) to what this new blockchain architecture will try to provide to the cryptoworld.

An efficient and reliable clock for the blockchain, a timestamp in every transaction.Therefore Solana will allow users of their blockchain to trust the order and the specific moment in time around a particular event, by creating an organized and fully verifiable historical record. This verification can be done in significantly less time than it took to generate it, as we will see in the next section.

Main Features — Tech Overview

A deep dive into Solana’s proposed solution raises questions such as, how Proof of History is being implemented on the blockchain, and exactly how does Solana work and what tools are they using?

First we need to understand how the network was designed, and what it consists of. This is summarized in the diagram below, a visual demonstration of Solana´s network design, from the top-down.

The Proof of History is a high frequency Verifiable Delay Function. It means that it will require a determined number of correlative steps to be evaluated. But on the other hand, those steps will produce in the end a unique output , easy to verify.

In the solution section, we talked about how Solana would increase the number of txn/s and how it would reduce the necessary resources used to run them. The explanation of how this is possible goes hand in hand with the explanation of the hash function.

The Hash Function operates as a way to compress data, so that larger amounts of data can end up being compressed in little sets of bits, which encourages a lighter tx weight and therefore a more effective and faster sequence.

As summarized above, the Proof of History sequence is designed to work with a cryptographic hash function.

What is especially relevant about cryptographic hash functions, is that it is impossible to predict what you will have in the end (the output) without executing the whole function from the beginning, using the original input. Consequently, having the input and trying to predict the output is impossible, you will be required to run the function to achieve a result.

Taking that into consideration, imagine this hash function running from some random starting point (initial Input) and once that process is complete you obtain your first Output (hash 1). Here is where it gets interesting, feed the inputs with the obtained output you got from running the function before, into the input of the next hash as in the diagram below:

Now if we were to repeat this process… 300 times for example. You can begin to see that we have created a single threaded process where the final output (hash 300) is a completely unguessable except for those who execute the whole thread.

This cycle of feeding outputs to the inputs of the next function along with the data that is generated, is then represented as time passing and history being created, in Solana’s words, ticks. Each output carries detailed information and cannot be predicted without running the function. Like the films in the Marvel Saga in our above example, each Output represents a tick of time that is exactly in its place within the thread of sequential time

Therefore, instead of using unreliable time, Solana proposes to use these sequentially ordered and unpredictable Outputs to determine a specific moment in time, a specific moment in that threaded process which we may call history.

Avalanche : Solana’s solution for Congestion

Solana’s high transaction output at 1 GB network is done through an architecture Solana developed called Avalanche. Similar to a torrent network, a full copy of the ledger isn’t necessarily available at any particular node, but a full copy is always available and can be passed around by collecting each piece and reconstructing it.

In the image above, you may observe that the assigned leader node’s block data is split into two. It makes it’s initial hop onto the 2nd level then proceeds to hop a second time to its peers. After the 3rd hop, the block makes a fourth hop back to the leader node to report it’s vote. With the ⅔ + 1 majority vote, the block reaches finality and moves on to the next block.

By only having to share half of the block data amongst peers, it greatly reduces bandwidth and data usage in the network

The Honest Approach

In order for Solana to keep nodes and verifiers honest, the Proof of History generator will intentionally send an invalid hash at random intervals. Due to the incentives the nodes have of verifying any hash they receive, Solana ensures that any verifiers validating an invalid hash will get slashed.

Proof of Stake

Solana uses proof of stake (POS) for consensus so and it has many of the same characteristics of other POS based coins. As a refresher here are some of the main characteristics of a POS coin:

  • Proof of Stake coins make use of Validators
  • Proof of stake can be proven by
  1. Locking coins in a wallet
  2. Locking coins in a Masternode and contributing to the stability of the chain
  • Payout order is determined by the “age” of the staked coins or masternode
  • Each staked wallet or masternode receives minted or newly forged coins
  • A wallet or masternode that is offline for too long is no longer “payable” and may be removed from the network
  • POS serves to prevent bad actors from introducing invalid transactions to the network by making it not worthwhile to undermine the security of the network
  • Penalty for “bad actors” can be the loss of staked coins and rewards
  • Trust is ensured as long as the rewards of proof of stake are greater than the opportunity for gains made by fraud

Solana has very similar construct but has implemented their proof of stake in a slightly different fashion.

  • Solana chooses a Validator from those nodes that have been bonded (i.e. have staked a coin)
  • The voting and selection of the validator is then determined by the node that has been up the longest or most bonded node
  • Solana relies on quick confirmations; if a node doesn’t respond within a specified time it is marked as stale and removed from voting , if that node was the validator at the time, a new election is held to select a new validator
  • If a super-majority (2/3rds of nodes) votes within that timeout then the branch is considered valid
  • Slashing, which is the act of making a bond invalid, prevents a validator from committing fraud or trying to validate multiple nodes as the bonded coins will be lost
  • A major difference is the concept of a secondary elected node. Once selected the secondary node can take over the primary role in the case of a network outage or other failure.

Roadmap

  • November 2017 — Conception and Whitepaper draft
  • February 2018 — Whitepaper release and Testnet 1.0
  • June 2018 — Testnet 2.0 and public demo
  • September 2018 — Public beta release
  • Q4 2018 — Live mainnet release
  • Q1 2019 — Token distribution and partnerships

Potential Considerations

Maximum txn/sec of 400k has been achieve on a 1gb network during testing.

Team and Advisors

Anatoly YakovenkoFounder and CEO

  • Led development of operating systems at Qualcomm, distributed systems at Mesosphere, and compression at Dropbox.
  • Was a core kernel developer for BREW which powered every CDMA flip phone (100m+ devices), and led development of tech that made Project Tango (VR/AR) possible on Qualcomm phones.
  • Holds 2 patents for high performance Operating Systems protocols

Greg Fitzgerald — Co-Founder and CTO

  • Former Senior Software Engineer who spent 12 years at Qualcomm with vast experience in JavaScript, Python, C++, and Haskell.
  • Was tech lead for the web and messaging infrastructure team at Qualcomm, specializing in the design and implementation of domain-specific languages.

Eric Williams, PhDCo-Founder and Chief Scientist

  • Heads the data science division and token economics.
  • Studied particle physics at Berkeley and received his PhD from Columbia while Higgs hunting at CERN.
  • Completed a postdoc in Medical Physics at Memorial Sloan Kettering Cancer Center and later led data science at Omada Health.

Raj Gokal — Co-Founder and Head of Operations, Product and Finance

  • 10 years’ experience in product management and finance.
  • Venture investor at General Catalyst, started the consumer medical device company Sano which attracted over $20m in investment, and led product management at Omada Health as it grew tenfold.

Alan Yu — Co-Founder and Head of Strategy, BD, Marketing

  • Spent 10 years at Google in sales and marketing, winning several awards during his tenure.
  • Has been active in the crypto community for years, engaging in defining the future of the space.

Stephen Akridge — Co-Founder and Head of Engineering

  • Former Software Engineer at Salesforce, Qualcomm and Intel.
  • Has 10 years of critical GPU optimization expertise at Qualcomm and Intel and led the GPU backend that constantly beat Nvidia.

Additional Resources:

For the best in news, reviews, and information for the blockchain and cryptocurrency visit coincrunch.io or check us out on: Youtube | Twitter | FacebookReddit