Public Permissionless Blockchains like Bitcoin and Ethereum that use proof-of-work consensus mechanism currently lack scalability. The consensus mechanisms make sure that their networks are safe (attack and collusion resistant), but slow. Depending on the type of transactions, the Ethereum Network can currently handle only around 5-20 transactions per second. If Ethereum wants to reach global adoption, it would need to scale, meaning that it will need to be able to handle 100k transactions per second to be a feasible network for mass market smart contract adoption. Ethereum developers have therefore come up with different proposals addressing this issue.
Submitted by Jason Teutsch and Christian Reitwießner in March 2017 Truebit is a proposal to scaling the smart contract computation on the Ethereum network because Ethereum smart contracts have very limited computation capacity. There is a gas limit in Ethereum which limits the number of computations one could perform.The main idea behind TrueBit, therefore, is to outsource the most difficult smart contract computations to a handful of specialized nodes instead leaving it to the miners. These specialized nodes will receive compensations for their work in the form of tokens. A notable advantage of using Truebit instead of traditional cloud services is that each time one performs a computation he or she has to submit a proof of that calculation. After the proof gets checked the computation gets approved. Truebit could serve as:
- Outsourced computation
Each network participant could post a computation task. Upon completion, rewards get distributed
- Decentralized mining
Using Ethereum smart contracts one could build a fully decentralized mining pools
- Scalable blockchain
Decoupling the need of block verification from the miners and moving the task to the Truebit network
- Scalable storage
Smart contracts could pull out information from the Truebit data storage network
Raiden Network – State Channels
State channels on Ethereum have similar functionality as the Bitcoin Lightning Network. Two parties set up an off-chain channel and transact with each other. After they are finished transacting the final state of the accounts gets recorded to the blockchain. One such implementation is the Raiden Network. The Raiden proposal is to have incentivized payment channels. For every payment channel, tokens have to be deposited and locked for the lifetime of the channel. When both parties finish transacting the final account balances are recorded on the blockchain. Running nano-transactions on the main Ethereum blockchain would be impossible. The Raiden network or state channels try to address that issue where two parties could open a transaction channel between themselves and transact for some time. At the time of opening the channel parties define how much ETH are they willing to commit to the channel. At the end of the transaction period, the sum recorded to the main chain must be equal to the initial sum of funds committed. A receiver would always be able to terminate a payment channel and get the sum received thus far. Payment channels are limited to two participants per channel.
0x – Decentralized Exchange Protocol
0x was founded by Will Warren and Amir Bandeali in October 2016. Even though not focusing directly on Ethereum scalability 0x has the potential to enable decentralized token exchange trading without third parties at a scale. 0x is an off-chain asset exchange protocol with an on-chain settlement. The protocol uses series of smart contracts to operate. 0x aims to become a common standard for dApps which incorporate exchange functionalities. 0x has one significant advantage when compared to traditional decentralized exchanges. Buy or sell orders are not placed on the blockchain, therefore, don’t require fees. People have full freedom on how they want to distribute their orders: could be via email or SMS, it really does not matter. Only when an order is settled, a fee needs to be paid.
Proposed by Joseph Poon and Vitalik Buterin in August 2017 Plasma composes blockchains in tree hierarchy which all rely on one root chain which in our case is Ethereum. The concept could be described as a blockchain tree. The construction of the sub-chains is achieved by smart contracts. Parties can define various settings about the blockchain such as consensus algorithm. One has a blockchain which with the help of smart contracts spawns a child blockchain which can spawn further blockchains. Each smart contract defines constraints and the consensus rules. If a disagreement is reached then, parties can turn to the smart contract. For example, if somebody violates the child blockchain consensus rules anybody could provide a proof to the smart contract, and the child chain blocks get rolled back. The Ethereum blockchain could be seen as the root chain, and every other blockchain would need to follow the one before it leading to the root chain. Since plasma is a tree of blockchains with Ethereum as a root chain each chain above it has to watch the chain before it. Blockchains created further from the root are considered less secure and on the other hand cheaper concerning transaction fees.
Currently, every miner in the Ethereum network processes every transaction and each node maintains a state. The Ethereum network is currently capable of around 20 transactions per second, and as it grows, it does not get any faster. If you have ten times more nodes, each node will have to process every single transaction happening on the network. Sharding tries to address the issue of having each node to execute the same transaction and maintaining the same state. By state, it is meant the collection of accounts that a node maintains. This state could be split into pieces called shards, and each of these shards will have their own state. For example, a shard could contain 10% of all Ethereum accounts. If you collect some number of shards, you will end up with the full network state. In order to keep track of everything shards will be part of a Merkle tree. Sharding is a fairly new concept and has not been tested on a global scale. The main idea behind sharding is to run multiple blockchains in parallel thus improving network scalability.
Casper – Proof of Stake
Casper is a Proof of Stake (PoS) consensus model proposed by the Ethereum foundation. Many of the design decisions are based on the CAP Theorem which states that it is impossible for a distributed system to provide more than two out of three guarantees: Consistency, Availability and Partition tolerance. In general PoS algorithms improve network scalability. Some blockchain experts argue that this approach sacrifices security. One difference between Casper and other styles of Proof of Stake algorithms are the security deposits. If you are running a validating node, you will need to provide some kind of collateral in the form of ETH. This way the network tries to discourage malicious activity. Casper’s security derives from the size of the security deposits of the validators. Another issue with old-style PoS is the nothing at stake problem. Unlike Proof of Work, PoS miners who create invalid blocks don’t waste resources (such as electricity or hashing power) therefore they are not penalized if they try to fork the chain and at the same time propagate blocks on the main chain. Casper aims to address the issue by providing penalty mechanism for misbehaving nodes. A new type of consensus called “consensus by bet” gets introduced where miners bet on which block will be the committed to the blockchain instead of competing with each other. Currently, there are two versions of the Casper consensus algorithm. One is proposed by Vitalik Buterin called Casper the Friendly Finality Gadget (“FFG”). The second version is proposed by Vlad Zamfir called Casper the Friendly GHOST: Correct-by-Construction (“CBC”).
Cosmos – Internet of Blockchains
Cosmos is a network of independent blockchains called zones. They are all connected to one main zone called Cosmos Hub which communicates with all other zones. This protocol will enable an inter-blockchain exchange of assets. All inter-ledger token transfers will go through the Cosmos Hub chain using inter-blockchain communication (IBC) protocol. The Hub serves as a security mechanism. In theory, Cosmos could scale infinitely by just adding zones to the main Hub. If a zone gets overcrowded users just can move to other zones or create new ones. The Hub makes sure that all zones stay synced. One could run more than one Ethereum Virtual Machines as zones and enjoy unlimited scalability by hopping between zones.
Polkadot enables multiple chains to co-exist and will enable these to talk to each other. Polkadot provides the infrastructure and tools to create new blockchains and connect these seamlessly. These blockchains could be public blockchains, private blockchains or consortium blockchains. Polkadot is designed to move messages between chains in a trust-free way. Similar to Cosmos Polkadot has a main chain which is called the relay chain. This relay chain connects all parachains which include existing and future blockchains. Polkadot enables cross-chain communications. It can serve both as a value exchange or message exchange. For example, a blockchain could send a message through the Polkadot relay chain to a smart contract sitting on another blockchain. This message could trigger the smart contract. When Compared to Cosmos Polkadot developers claim that their solution would have an extensive set of features and will not limit itself only to cross-chain token exchange.
- A beginner’s guide to 0x, Linda Xie
- Sharding FAQ
- Ethereum Casper, GitHub
- A Programmer explains Casper, Youtube
- Polkadot: How it could integrate with 4 blockchain networks — and what’s in it for us as developers, Stephan Tual
- CAP Theorem, Wikipedia
- Casper the Friendly Finality Gadget (“FFG”), GitHub
This post is also available on blog.kalinoff.com