Many people believe that bitcoin is the future of our financial system. But there is a big issue standing in the way of this goal, and that is scalability.
Currently, bitcoin's network can only process a maximum of 10 transactions per second. In reality, the network only handles around 4-5 transactions per second, as 10 transactions per second is only a theoretical maximum under optimal conditions. Compare bitcoin's limitations to Visa (V) or PayPal (PYPL). Visa handles on average around 2,000 transactions per second, with a daily peak rate of 4,000 transactions per second. It has a peak capacity of 56,000 transactions per second; however, they never actually use more than a third of this even during peak shopping periods. PayPal handles on average 10 million transactions per day for an average of 115 transactions per second.
As a result of bitcoin's relatively low maximum transaction speed, it keeps a large backlog of unconfirmed transactions, leading to a multitude of problems, including long transaction confirmation times and high transaction fees.
Clearly the main blockchain isn't very scalable. But as it turns out, it doesn't have to be. The community has come up with a new technique called the Lightning Network to solve the scalability issues. The key idea is that small and everyday transactions don't have to be stored on the main blockchain. This bypasses the 10 transaction per second limit and is also called the off-chain approach.
The Lightning Network is a proposed solution to the bitcoin scalability problem. The network would use an off-chain protocol and is currently under development. It would feature a P2P system for making micropayments of digital cryptocurrency through a scale-free network of bidirectional payment channels without delegating custody of funds or trust to third parties.
Normal 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. The payment channels allow participants to transfer money to each other without having to make all their transactions public on the blockchain.
If two users open a payment channel, both of them also obtain a "latest" commitment transaction pertaining to the channel. A commitment transaction divides the funds from the funding transaction according to the correct allocation between the two users. For example, if user_one owns 1 BTC and user_two owns 4 BTC in the channel, the commitment transactions divide the total channel funds in that way. Commitment transactions allow multiple users to participate in a single transaction on the blockchain, using a multi-key system. Since commitment transactions spend the funding transaction, they must be signed by both partners.
To give an example of how this system would look in practice, let's say that every morning Bob buys a cup of coffee on his way to work. Creating a transaction on the blockchain for a cup of coffee is really overkill. He might end up paying more fees than the actual price of this coffee. With the Lightning Network, Bob can set up a payment channel with the coffee shop. To do that, both the coffee shop and Bob deposit a certain amount of bitcoin in a multi-signature address. Let's assume that Bob deposits 0.05 BTC and that the coffee shop deposits nothing because it doesn't offer refunds. This multi-signature address is basically like a safe that can only be opened when both parties agree. When we open the payment channel, we also make a balance sheet that says how the funds in the address should be distributed. So right now it says that Bob will get 0.05 BTC and that the coffee shop will get 0 BTC. The same as they deposited. Opening the payment channel happens on the main blockchain so that there is full transparency.
Now that the channel is open, Bob can order his morning coffee. Let's say that the coffee costs 0.001 BTC. To pay for it, Bob simply changes the balance sheet. He subtracts the cost of the coffee from his balance and adds it to the coffee shop's balance. So now it says that Bob will get 0.049 BTC and that the coffee shop gets 0.001 BTC. Bob and the coffee shop now sign the updated balance sheet with their private keys. They then each keep a copy of the updated balance sheet. Bob can keep ordering coffee for as long as he has a balance in the payment channel. There really is no limit to the amount of transactions that can occur between Bob and the coffee shop because this happens away from the main blockchain.
The payment channel can be closed at any time by either Bob or the coffee shop. All they have to do is take the latest balance sheet which was signed by both parties and broadcast it to the bitcoin network. Miners will then validate the signatures on the balance sheet, and if everything checks out, release the funds according to the balance sheet. The closing of the payment channel will create a single transaction on the bitcoin blockchain.
Thus, the Lightning Network can significantly reduce the load on the main blockchain. It only requires two transactions on the blockchain - one to open the payment channel and another one to close it. It's also very safe - the system ensures that only the latest signed balance sheet can be used to unlock the money. And because both parties have the signed copy of the balance sheet, they can release the funds at any time, even if the other party doesn't want to cooperate. So, for example, Bob cannot hold hostage the money that belongs to the coffee shop, and vice versa.
But it doesn't end there. You don't need to open a direct payment channel with everyone you want to send bitcoin to; you can simply use the network to pass your coins around. Introduce Alice, who is a friend of Bob. They've exchanged money on the Lightning Network before, so they already have an active payment channel. Let's say that Alice wants to buy a coffee. Instead of opening a direct channel to the coffee shop, she can transfer the money to Bob, who will then transfer it to the coffee shop. There's no need to create a payment channel between every user on the bitcoin blockchain. On the Lightning Network, your payment tries to find a route from person A to person B with the least amount of intermediates and the least amount of fees. This further reduces the strain on the blockchain, but it does require that the intermediates have enough money in their payment channels.
The specification for using the Lightning Network relies on Segregated Witness, which bitcoin has already adopted. As of right, now there is a proof-of-concept implementation of the Lightning Network running on the bitcoin testnet.
A successful implementation of the Lightning Network will allow bitcoin to operate as a high-speed transaction system as it was meant to. This means that further forks like Bitcoin Cash won't be necessary for solving the problems of bitcoin's scalability. In the near future, we could very well realize the dream of paying for morning lattes (and everything else) with bitcoin. Accordingly, large increases in bitcoin's valuation would accompany widespread adoption.
This article was written by
Disclosure: I am/we are long BTC. I wrote this article myself, and it expresses my own opinions. I am not receiving compensation for it (other than from Seeking Alpha). I have no business relationship with any company whose stock is mentioned in this article.