Scalability is one issue that has been troubling blockchain developers and is one of the biggest challenges before it can reach the masses. Below is the daily transaction chart showing transactions since October' 15.
image source: etherscan.io
The key here is that enough number of nodes must verify the transaction to confirm it as legitimate and to make sure that security isn't compromised, but few enough so as to allow the system to process multiple transactions in parallel. Lightning Network(Bitcoin) and Off-chain 2 party payment channels(Ethereum).
Lightning network: Yet another solution to scalability
Lightning network is yet another proposed solution to the scalability problem and is under development as we speak. It uses an off-chain protocol and is a proposed implementation of Hashed TimeLock Contracts(HTLCs).
What is Lightning Network?
Lightning Network is the "second layer" payment protocol that operates on top of the blockchain. It enables instantaneous transactions between the participating nodes and features peer-to-peer for making micropayements (transactions with a value of less than 25 USD) of digital cryptocurrency through a network of bidirectional payment channel.
Use of the Lightning Network consists of opening a payment channel by committing a funding transaction to the relevant blockchain, followed by making any number of Lightning transactions that update the tentative distribution of the channel's funds without broadcasting to the blockchain, followed by closing the payment channel by broadcasting the final version of the transaction to distribute the channel's funds.
How is it a solution to scalability?
Lightning wouldn't require updating or changing Bitcoin's underlying software or algorithms, it just adds an extra layer to the existing technology.
Lightning doesn't require every transaction to be stored, and it also keeps the transactions off the main network which would reduce the transaction fee.
For example, if you want to make transactions using the Lightning Network, you will first open the payment channel and write it on the blockchain. Then, you can do all the transactions you want to without having to copy anything on the original blockchain. Then when you close the payment channel, at that point you will write the status of all the transactions that were made using this particular channel.
However, this is the scenario of scaling Bitcoin. When it comes to Ethereum, things change. The value of Bitcoin lies in its currency power, whereas the value of Ethereum lies in its capability to make any number of open and decentralized applications.
Off-chain transactions are those which instead of being carried out over a regular blockchain, are carried out over an out of band internet connection. The transactions, however, are still secured by the blockchain. Off-chain 2 party payment channels have been suggested as the solution to scale up both the cost and speed. Lightning network also makes use of the Off-chain 2 party payment channel. The following shows why.
2 party payment channels
A 2 party payment channel is built between 2 parties(nodes) wanting to make some transactions. They are of 2 types:
- Uni-directional channels: These channels allow the transactions to be made only in 1 direction. For example, if you want to send money to your friend and he doesn't have to give you anything back, open a Uni-directional channel, send the money and close it.
- Bi-directional channels: These channels allow both ways transaction flow. In the above-given example, if your friend also has to send money to you, you have to use a Bi-directional channel.
image source: medium.com
How it works
A person wanting to use a 2 party payment channel will first have to deposit some money(Ether) in the channel with the traditional on-chain transaction. Then, the user can transact on this channel but only up to a certain limit. Suppose a user deposits 1 Ether, that means a user can do 100 transactions each of value 0.01 Ether on the active channel. The number of transactions may be less or more and the value of the transactions is decided accordingly. If a user deposits 10 Ether and makes 100 transactions, each transaction must be of value 0.1 Ether, but if he has to make only 2 transactions, then each transaction can be of value up to 5 Ether.
Each of these transactions is secure in the sense that if a user misbehaves, the previously committed on-chain deposit of Ether value would be used to claim the transmitted funds.
This method of transaction sure is a good way to scale blockchain, but it also has a few issues.
- 2 party payment channels can only support 1 counterparty.
- To transact with other counterparties, multiple payment channels will have to be set up which require a significant amount of value getting locked.
However, this locked value can be reduced by a method of forward off-chain payments along a route of payment channels which needs creation of payment channel network.
If A-B have a connection and B-C have a connection, then A can send money to C through B. This would however require A to know the route to C. This would include route discovery and maintenance which is a complex task in itself.
A can send data to C through B
image source: medium.com
Note: In order for A to send funds to C, B must have an active connection with C. This would require B to lock up some value to C. In exchange, B would ask for a fee from A to do the job.
Lightning was announced at Scaling Bitcoin in Hongkong in 2015 and shortly after, Raiden announced to build a similar mechanism for Ethereum. Both the projects have launched prototypes but none of them have yet launched Bi-directional channels in production.
Read similar articles below: