One the most notable problems public blockchains face is scaling. According to Wikipedia, the definition of scaling in general can be "a computer’s or network’s ability to function as the number of users increases.". When talking about a blockchain, usage of the system is expressed in transactions. Based on that, we can define scalability in a blockchain as the ability of the network to function as the number of transactions increases. A popular way to measure scalability of a blockchain is measuring how much transactions per second (TPS) it can process.
Ethereum itself can support around 25 state updates (aka. transactions) per second, compared to around 500 transactions per second PayPal can support or the millions state updates (tweets, comment, likes etc.) Twitter supports we can clearly see the problem, Ethereum can not support a massive adoption of users without solving this problem. A great example of this would be the infamous Crypto Kitties flu of December 2017, it showed us exactly what a small pick in the usage of Ethereum can do to the network, transactions were taking hours to days and the fees were about 40 Gwei - more than 10 times higher than the typical fee.
The reason for these scalability issues can be explained using what’s called "The Blockchain Trillema". This is a trillema where (without a decent solution) a blockchain can support only 2 edges of the triangle and needs to compromise on the on third one. The three edges are:
-
Scalability
-
Decentralization
-
Security
We can look at what each combination of 2 out of the 3 may look like.
Scalability combined with Security - This could be a private blockchain, since the consensus needs to be achieved is only between a small cluster of trusted nodes (or maybe only one) there is no need for many security features such as distributed consensus that public blockchains need and the communication between a few nodes is much faster than between a big decentralized network.
Scalability combined with Decentralization - A great example for this could be a public blockchain such as Bitcoin or Ethereum, but with with 0 block confirmations this may allow instant transactions with the additional benefit of no fees but it is extremely insecure to the point that it is just not very applicable.
Decentralization and Security - this is certainly where most public blockchains including Bitcoin and Ethereum are at, they are decentralized and secure but as said before, they do not support strong scaling solutions at the time of writing this.
The problem with this Trillema is you can’t completely win it, you just can’t support very high TPS, a huge open network of nodes and be secure all at once.
With that in mind, we can start exploring the different approaches of scaling the public blockchain without decreasing decentralization or security it is important to understand, since it is not possible to completely satisfy all 3 at the same time most solutions aim to get to some point in the middle where they have decent security, decentralization and scalability.
Proof of Stake is a form of consensus that aims to improve/ replace the current Proof of Work consensus. The idea of Proof of Work consensus algoritm, in its simplest form, is to allow reaching consensus based on a '1 CPU is 1 vote'. Proof of Stake introduces a new voting power distribution idea in a '1 Coin is 1 vote' basis, effectively moving the power of a vote from computational power to a participant’s stake in the system.
Proof of Stake grants the ability to provide a blockchain with "economic finality", thus strengthening it’s economical security, reducing centralization risks by making it less rewardable to collude on a majority attack. A benefit to the change Proof-of-Stake is that it makes the protocol easier on the environment by replacing the Proof-of-Work’s energy expenditure ,as a result of the struggle for power in the network, with the desire to hold stake in the security of the network.
Ethereum has officially decided to shift its consensus algorithm from Proof of Work to Proof of stake. The new Proof of Stake algorithm for Ethereum is called Casper - The Friendly GHOST, a playful monicker refering to Casper the Friendly Ghost, where GHOST stands for Greedy Heaviest Observed Sub-Tree. It was decided that the transition to Proof of Stake will be done in 2 phases. The motivation behind this was to give room to handle unforseen transient effects and to allow for current users of the system to have a smoother transition.
The first part of the roll-out is a hybrid Proof of Work - Proof of Stake algorithm called Casper the Friendly Finality Gadget (FFG) which aims to provide finality and implicitly reduce energy waste. The second and target update is called Casper, Correct By Construction (CBC), this is a pure Proof of Stake algorithm and will complete Ethereum’s transition to Proof of Stake.
Casper the Friendly Finality Gadget (FFG)
Casper Correct by Construction (CBC)
Sharding
Plasma
Raiden
Counterfactual State Channels
Truebit
Loom Network