Raiden, Plasma and Generalized State Channels

With this article I would like to give a quick overview of the Raiden Network, Plasma and Generalized State Channels. All of these technologies have the same goal: Help scaling Ethereum. They are not the exact same thing though and they have their strengths and weaknesses by design. In the following I want to give a simple outline of each technology and its use case.

Raiden Network

Raiden is a network of nodes. Nodes establish payment channels to other nodes. A payment is routed through the network via multiple nodes, but each node only communicates with its direct neighbours. Each node has to hold the balance for the amount being moved. That’s why it will be hard to find a path through the network to move 1000 Ether because every node will have to hold that balance.

Use Case:
Transferring small amounts of Ether and ERC20 tokens almost instantly and reliably.

Plasma

Plasma aims to scale transactions by creating side chains that only interact with the main chain every once in a while. Plasma chains can even be nested (yeah, like Inception). Plasma is being actively developed by OmiseGo. In terms of fees and latency Plasma is probably inferior to Raiden, but it has a wider use case. Plasma chains need to be secured by “fraud proofs”.

Use Case:
Imagine OmiseGo running their own Plasma chain for all their users and business partners. They could do thousands of transactions back and forth every day within their plasma chain and only make a final settlement every other day to the Ethereum main net. From the OmiseGo Plasma chain, McDonald's Thailand could start its own Plasma chain, the 2nd layer chain, only for its users.

Generalized State Channels

Shortly after Raiden concluded their ICO Liam Horne and Jeff Coleman came forward with announcing the development of generalized state channels funded by Vitalik himself.

The idea is that a Generalized State Channel can execute multiple actions between two parties with only the initial and final settlement happening on-chain. Generalized State channels work best where the interacting parties are somewhat constant. 
 
Use Case:
Imagine a group of crypto exchanges that want to create a shared reserve of ERC20 tokens. They go on and create the pool with all the rules of lending, interest and so on in a smart contract on the main chain. Now all the actual lending and moving of funds can happen off-chain in a generalized state channels. Every month the state channel settles the most recent balances back to the main chain.

Bonus: Lightning Network

The Lightning Network is a scaling solution for Bitcoin and Litecoin. It makes use of State Channels, but there are various implementations of it.

Bonus: Sharding

Currently every node has to validate every transaction. 
Sharding is an on-chain scaling solution. The idea is to split the network into multiple shards that only validate parts of the transactions. For transactions outside its own shard a node acts like a light client.

Summary

All of the introduced concepts try to scale Ethereum. None of them are direct competitors to each other as their concepts differ and therefore cover different use cases. Ask questions in the comments if anything is unclear or you want more details on a particular topic.