For years bitcoiners were told Lightning will solve all scalability problems. It will be able to welcome the world in an instant, capable of serving all the many uses, able to handle a million transactions a second.
Yet now many months since it launched, it can not even handle a million dollars worth of bitcoin transfers, with its capacity currently standing at just 111 BTC, worth $710,000.
The Lightning Network (LN) website says it is “capable of millions to billions of transactions per second across the network.
Capacity blows away legacy payment rails by many orders of magnitude. Attaching payment per action/click is now possible without custodians.”
Visa handles many trillions of dollars worth of transactions a year. The bitcoin network too handles more than a trillion, $4 billion in just the past 24 hours. LN on the other hand can hardly move around half a million.
There are many issues that need to be resolved, with one LNer stating it “needs channel.db back ups, amp, splicing, optimized routing, subatomic swaps to get at scale. All of which are currently being developed and built out.”
He wouldn’t say what’s optimized routing, but describes subatomic swaps as “you pay onchain and you are routed BTC LN to your channel.”
When asked how that would be done, we were told to go and read a basic tutorial on LN, with arrogance radiating from Lightning Labs employees.
Lightning Labs is first and foremost a for-profit start-up in San Francisco, raising $2.5 million in a seed round recently.
Jack Dorsey of Twitter was one investor, as were many others shown above. Including Ben Davenport of BitGo and Charlie Lee, the Litecoin founder who sold all of his itecoin at the very top in December 2017.
So you’d expect Lightning Labs employees to explain why the promised solution to all of bitcoin’s scalability problems has turned out to be no solution at all so far and how they plan to change that.
Yet explaining it is perhaps too hard because some problems might be fundamental. The mentioned channel.db back ups problem, for example, needs a solution to the double spending problem.
An LN transaction is basically a promise. You’re promising someone that you will eventually pay them by giving them a hash that kind of proves the payment will be made. In the meantime, you still have possession of the coins. So why can’t you just make the same promise to someone else?
Of course it isn’t as simple, there are all sorts of constraints, but in certain situations you can basically make the same promise, or better said, you can renegade on the promise you made. That can be intentional, by effectively stealing someone’s bitcoin through broadcasting an older hash. Or it can be accidental, by some computer mishap somewhere corrupting your channels database and broadcasting an older transaction.
The latter has happened, with a user losing funds. That’s because if you broadcast an older transaction, and the other party still has all the transaction records, they can take all your bitcoin as punishment.
The other party might not have all of those records, or he/she might not be paying attention because perhaps they’re not online. So we bring in a trusted third party, watchtowers, which, as the name says, keep their eyes on the lookout on your behalf.
A compromise too far for many, but at least it is a solution of sorts. Keeping your laptop from corrupting your database, however, might not have an easy solution.
You can have automatic backups now and then, but with all this being automatic, the question is how do you know you’re broadcasting the wrong hash if the database was somehow corrupted. You might find out soon because your coins have gone, but preventing that isn’t easy.
Then there’s optimized routing. Now what that means we do not know, but LN works through a six degrees of separation sort of thing. I know you, you know whoever, I pay whoever through you. The question is how do I know that you know whoever? Or how do I know who to go through in order to get to the final destination?
A solution to that is difficult, unless one chooses the easy way of having an all watchful eye that basically tells everyone what to do.
While subatomic swaps sounds interesting. You’re basically automatically turning an address into an LN channel. Easy peasy, if you have to go through a third party, but not very easy in a trustless way.
And of course it isn’t easy because they’re effectively trying to re-invent bitcoin, something that was thought impossible before Nakamoto showed how it can be done.
Solving the double spending problem by trusting watchtowers who might cheat you isn’t quite solving anything. Adding third parties in the middle of everything in the base protocol is unsolving things.
So it is barely being used. Whether that will change remains to be seen, with it potentially having some niche use cases, but solving the conceptual problems for actual use sounds like a very difficult task.
Especially if it has to compete with blockchain transactions once sharding is available. That keeps blockchain transactions as convenient as they are now, with the improvements done on the backend by effectively parallelizing the nodes.
There wouldn’t be any additional trusted third parties, or locking up of funds to transact with the remainder, or failed payments due to lack of proper routing.
It would instead presumably work straight out of the box, just as bitcoin did on the very first day it was launched. While for LN it looks like it might take some more years for it to work, if it ever does.