In my previous posts I described the basic principles of Lightning Network. Let me remind you that LN is positioned as the most promising approach of blockchain scaling. But is it so? Can Lightning Network solve the scaling problem and provide off-chain wallets for hundreds of millions users around the world? I can tell that nowadays the answer is rather no than yes. My opinion is based on our practical experience of implementing payment channels in Lykke.
I am not the only one who is criticizing Lightning Network technology. There are many articles on this topic. Even being fond of the idea of secure off chain transactions I have to admit the fairness of its critics. I’d like to avoid allegations in conspiracy against LN. I’m sure that this technology can be successfully used in particular use cases but not as the magic pill to scale the blockchain. Here I’d like to share the real practice of deployment of off chain technology in Lykke exchange.
In the end of 2016 we began development of a payment hub in Lykke. The idea was the following: clients held their money in payment channels in order to keep the control over their money. If a client wanted to sell BTC he or she made a payment transaction transferring money to the exchange inside the payment channel without recording this transaction on blockchain. It was lightning fast. Similarly if a client wanted to buy BTC the exchange transferred money to the client inside the channel.
In may 2017 we launched trading operations in LykkeWallet based on payment channels. For each client we opened a single payment channel filled with Bitcoins. Lykke served as a liquidity hub for all its clients. After several hours it was opened about 3000 channels. Each BTC deposit to the exchange led to opening a new channel or re-opening the existing channel. So clients money got in to a payment channels and was securely blocked there.
As transactions being made the capital of Lykke hub was also eventually distributed inside those 3000 channels. We knew that the supporting of payment channels will require lots of money. We also predicted that sooner or later our capital won’t be enough and from time to time it would be necessary to close channels with clients in order to unblock our BTC to use them in other channels. We improved the protocol by introducing atomic operations of re-opening channels with simultaneous replenishment or withdrawal money from the channel.
By optimizing the algorithm we managed to achieve the following numbers: on each 100 transactions 90 of them were made using off chain payment channels. Remaining 10% of transactions were made on-chain (using the blockchain) and fee being paid for that.
However, significant increasing number of active clients and catastrophic growth of blockchain fees by december 2017 made the overall costs unsustainable for us. We had to switch off the payment channel mechanism (turning to usual centralized exchange) to stop wasting money trying to rebalance our capital among the multiple channels.
Apparently I can tell that the costs of liquidity hub are growing exponentially with the opening of each new channel. Thus the same for the Lightning Network. The LN is not scalable in terms of the number of simultaneously opened channels for each single payment hub.
Now let’s look at the current state of Lighting Network. According to 1ml.com there are about 3k nodes and 11k channels. Roughly speaking a typical node has 3 channels in average. But the most interesting is the number of nodes with one single channel. Why? Because these are the ordinary clients. For example if you’d like to buy some coffee through the Lightning Network you would need to have a LN-wallet for that. Typically it would have the only channel with some liquidiy hub. Your own bitcoins would be locked in it to be able to make micro-payments. Effectively this would be a dead end in the network which doesn’t help to transfer someone’s money in the network. Currently there are about 300 dead ends in the Lightning Network. Not much…
So let’s try to imagine could the current Lighting Network serve, for instance 100 millions of LN wallets owned by ordinary clients? Obviously no, because in average one single hub would need to handle more than 30k channels. This much more than even Lykke used to have. So how many liquidity hubs are required to have in LN? Maybe 10k? Or 100k? Or maybe 1mln LN nodes would be enough? Well… I don’t think so. Unfortunately even 1 mln LN hubs won’t be enough because on average each node will have to serve 100 channels. The ordinary hub with a medium capital just won’t handle it.
Unfortunately I have to state that nowadays LN is not able to solve the scalability problem of blockchain without any additional solutions on the basic level of the blockchain.