Lightning Labs is a private company building Bitcoin's Lightning Network. On March 15th, the company announced the launch of a beta version of the network on Bitcoin's production blockchain (popularly referred to as the "mainnet"). Along with this launch, the company also raised $2.5 million in a new round of funding with investors including high profile Silicon Valley executives from companies like Square (Jacqueline Reses and Jack Dorsey), Twitter (Jack Dorsey), Robinhood (Vlad Tenev), and PayPal (David Sacks).
This beta launch was well received by Bitcoin's community. Bitcoin's recent blockchain congestion and competition from Bitcoin Cash has created significant anticipation for an off-chain scaling solution (e.g. the Lightning Network) among Bitcoin's fans. While Bitcoin Cash scaled its transaction throughput by increasing block sizes, Bitcoin is adamant that block sizes remain the same and scaling can only be done off-chain.
However, is the Lightning Network as great as its sales pitch? The idea is ambitious but the devil is in the details. Lightning has an unsolved problem that makes it a centralized payment platform. This defeats the purpose of using Bitcoin in the first place. Is the Lightning Network a viable scaling solution for Bitcoin if it's centralized? Many disagree.
What is the Lightning Network?
Lightning aims to greatly increase the total number of transactions Bitcoin can handle at a time. It's a second-layer technology, meaning that the system is connected with, but not part of the blockchain.
Lightning uses a theoretical concepted called "state channels" to power off-chain transactions. Essentially, two Bitcoin users can both commit some BTC to create a state channel between each other. The commited BTC is locked and cannot be used in an on-chain transaction (transactions on the blockchain) until the channel is closed. While it's open, both users can freely send their commited BTC to each other without affecting the blockchain. On-chain transactions are only created when a channel is opened or closed. When a channel is closed, the magic of cryptography ensures that each user receives the right amount of BTC based on the culmination of all off-chain transactions that occured in the closed state channel.
What makes Lightning even more compelling is that if user A is connected to users B and C through two different state channels, users B and C can send each other BTC without any action from A, as long as both state channels have enough commited BTC. Taking this idea further, imagine a network with many state-channel-connected users... a user can send funds to any other user as long as there is a path of state channels that connects them. This effectively creates a secure, decentralized, and highly scalable payments platform on top of Bitcoin... in theory.
If this worked, while remaining decentralized, it would be a tremendous victory for Bitcoin in the heated scaling debate that has engulfed both Bitcoin's and Bitcoin Cash's communities. As mentioned before, Bitcoin believes that scaling can only be achieved with second-layer solutions. On the other hand, Bitcoin Cash believes that scaling can only be achieved with on-chain modifications (e.g. increasing block size). This fundamental disagreement has created a debate so intense that Bitcoin split into two blockchains: Bitcoin and Bitcoin Cash.
The Elephant In The Room
For Lightning to work, it needs to route payments from one part of the network to another. Just like the Internet, a user should only need to maintain one connection (state channel) to interact with the rest of the network. Lightning doesn't work if a user has to constantly create channels with other users. If this was the case, it's better to send BTC using simple on-chain transactions since opening and closing channels require on-chain transactions anyways.
A key problem with Lightning is that, because it needs to be decentralized, it can't efficiently route payments between users separated by more than two state channels. In fact, there is no known efficient solution for decentralized routing. The network can't even know if two users are not connected without trying all possible paths. Even the Internet, a decades-old technology, has not solved this problem! Internet routing is centrally managed by ISPs using routing tables.
To make matters worse, Lightning's payment routing problem is even more complex than the Internet's. To send a payment, not only does the network need to find a connecting path, the state channels in between each need to have enough liquidity (commited BTC) to support the payment. A state channel cannot support a 10 BTC payment if the channel only has 5 BTC commited. Put simply, efficient decentralized payment routing is nigh impossible on Lightning right now. I call this the "liquidity routing problem".
One can counter by saying that this isn't a problem if Lightning's network topology was kept simple. For example, if there were highly liquid nodes that everyone was connected to, then users are no more than two degrees of separation from each other and payment routing becomes very simple. There's a catch, however. A system that relies on highly connected nodes to function is a centralized system. If Lightning was centralized, it has no value since the whole point of using Bitcoin is to escape centralized systems.
Many concerns have been raised about Lightning but the most important among them, in my opinion, is the liquidity routing problem. Left unsolved, the network is a centralized payment platform that can't leave beta.