edicted Blog Banner

edicted

Lightning Network Limitations

https://img.inleo.io/DQmPAFR9uM5pQGroCWPin42ygp2bXk1jSoXSqHGZ8WGLgjD/image.png

As most of us already understand, the Lightning Network is a second layer protocol built on Bitcoin that can be leveraged to send Bitcoin to other people on this second layer in a very cheap and efficient way. The ultimate problem with the Lightning Network is how it actually works. The devil is in the details, and many will inherently make many false assumptions about it to fill that void of ignorance.

I aim to dispel some of these illusions.

At the heart of Bitcoin is a zealous cult that believes that BTC can do anything that other coins can and more. We call these people Bitcoin Maximalists, and they ironically misunderstand the Lightning Network more than anyone else. Who has time for learning when one can just employ magical thinking?

https://img.inleo.io/DQmQ9t2VQ5KGM5iKLCJEfPRWjVaajfbqFvbSkCtCM5ujhNu/image.png

UTXO

One of the big problems with understanding the Lightning Network is that the prerequisite of knowledge required to begin studying it is quite vast. I've been in crypto since 2017 and I only just recently figured out exactly how the UTXO system works. A lot of these mechanics are completely counterintuitive and we would almost always guess wrong when assuming how they work. The assumptions of what the Lightning Network is capable of are vast and undeliverable.

Assumption 1: Bitcoin within the LN is fluid.

This is a big assumption that a lot of people would just naturally make, and they would be totally wrong. If LN actually worked this way it would be an amazing scaling solution that everybody would have already adopted. Unfortunately it cannot work this way due to the technical limitations of decentralization.

Opening a channel

To better understand this we must learn the most basic operation.

When we actually understand how Bitcoin operates then the way that Lightning Network operates on top of it starts making a whole lot more sense. Opening a channel on LN is an extremely basic idea. The rules are actually quite simple. One node can open a channel with one other node, and that's it. Thus far, channels can not be opened with more than 2 participants. They are quite literally peer to peer; 1 to 1.

Therefore, the Bitcoin that gets locked into a channel like this is basically trapped there and cannot move about the network. This, unsurprisingly, creates a very big liquidity issue and scaling problem.

https://img.inleo.io/DQmbebeVsf1bGSskpvBTfUEc4k8AdaFbEQRdYZqEBMFZzqv/loan-collateral-property-house.jpg

Collateralization

If Bob wants to send 50k sats to Sally on the Lightning network... well then it only makes sense that Bob needs to have locked at least 50k sats within the channel to ensure that the payment is made. After all, if Bob tries to send money that he doesn't have... that is equivalent to a double-spend attack and Sally's node would not condone such tomfoolery.

This is a very basic concept that everyone can understand. You're not allowed to spend money that you don't have. Any money that you want to spend on the LN needs to be locked in the channel as collateral. This basic and necessary principal ends up creating a lot of unintended problems down the line.

Opening a channel is an on-chain operation.

This needs to be said at some point so it might as well be now. Opening and closing a channel can be an expensive operation. This fact will be a reoccurring theme going forward.

https://img.inleo.io/DQmaodQ7CHR2vgWAaPhCeVDBZ24nb3ZffKsFih5xthvmNnS/image.png

Routing.

Alright so let's say that Sally opens up a channel with Fred. Bob's node can see that Sally has done this, and Bob is thinking, "Sweet, now I can send money to Fred without opening a channel with Fred directly." This is called routing a payment and it is an extremely useful function. Sally's node will likely charge a tiny fee in order to accommodate this operation.

Why would Sally charge a fee for routing?

This brings us back to the liquidity issue and the fact that all Lightning Network channels are completely separated. If Bob wants to send Fred a payment through Sally then that payment has to be collateralized more than once. First, the payment has to be collateralized by Bob when sending to Sally, then it needs to be collateralized again by Sally when sending to Fred.

Sally isn't going to do this for free, so she needs to charge at least something to sweeten the deal. But she also can't charge very much because Fred likely has other channels and paths open that would offer a cheaper deal. Bob's node is able to calculate the cheapest path and act accordingly.

This is why nobody sends large amounts of BTC over the LN.

Imagine trying to route 1 BTC across 10 nodes. Every node in the chain would have to post 1 BTC in collateral to back up this kind of transfer. That's 10 BTC worth of collateral just to move 1 BTC. Imagine those 10 nodes running out of collateral and needing to close channels to rebalance their positions. At that point why wouldn't you just do this operation on-chain and be done with it?

Okay fine but why are all these channels disconnected?

Because imagine if someone decides to turn off their node and force-close all their channels. Imagine if Bitcoin was flying around all over the place and everything was connected. One person leaving the Lightning Network could shut down the entire system and force every node to close their channels at once. The logic on this is way too complicated to even keep track of and would probably create some kind of unknown attack vector. Even the known attack vectors are too great to justify the LN working like that, which is exactly why it doesn't. Simple is better.

Assumption 2: The Lightning Network scales

While the Lightning Network may be a very good solution to help scale the BTC network in niche scenarios... it doesn't actually scale itself. It is still doomed by non-polynomial Travelling Salesman type encumbrances.

For every LN node that enters the network... an exponential amount of potential connections get created. As more nodes enter the network the ability to actually connect with those nodes becomes difficult without centralized hubs to smooth out the rough edges.

Assumption 3: Everyone is a producer & consumer

The thing that Lightning Network does best is consolidate potentially thousands of operations into two on-chain operations (open/close channel). As long as two parties keep the channel open and are sending money back and forth then it's all good.

However, the simple assumption that two parties are always sending money back and forth is inherently flawed in today's economy. When does that ever actually happen? In modern society most people are consumers and they pay money to the producers. Imagine opening a channel with Amazon and thinking that one day Amazon is going to pay you money. The Lightning Network isn't nearly as good when the sats are only traveling in one direction, which they often do.

Also, do you not trust Amazon?

The only reason to open a LN channel with Amazon is if you don't trust Amazon to custody your Bitcoin. I personally would be comfortable sending Amazon like $5000 worth of BTC and letting that money sit in a custodial account. This solution is actually cheaper than LN because it's only one basic on-chain operation vs two LN smart-contract operations.

Maybe things would be different if I was still an Amazon employee. Then I could receive my salary on the LN and also use that same channel to buy product on Amazon.com. However, again, that's a very niche use-case, as Amazon has very few employees compared to total customers. Also it's important to point out that this type of infrastructure doesn't even exist yet. Amazon is not a BTC custodian nor a LN provider. This renders the entire thought-experiment a bit moot during these early stages of crypto before mainstream adoption. There's just as good a chance that a superior solution is invented down the road that render LN obsolete.

https://img.inleo.io/DQmX3KStun2wasKmAF737pvjtG4qFBjAuDejSfoxWrrBqpX/ln-lightning-network-bitcoin-god-ux-custodian.jpg

Assumption 4: Everyone will run a node.

Running a LN node is an extremely technical endeavor. I know I could pull it off but I'm sure it would be a pain in the ass learning curve. Bitcoin zealots blindly assume that everyone in the world is going to dig deep and run nodes and understand the tech as well as they do. This is foolish.

Almost nobody understands the tech they are using. I don't know how my car works, and I don't care as long as it continues to work. This is true of all tech. The entire point is for the end user to understand how to operate the tech without knowing how it actually works on the backend. When something goes wrong we just pay an expert who knows what they're doing to fix it. This is the basis of the entire economy and the foundation of specialization and the job market itself. Expecting everyone to be able to do everything is just plain delusional.

The idea that everyone will run a node actually contradicts the entire way in which the Lightning Network operates. Because as I said earlier, the LN can scale Bitcoin but it can't scale itself. It's supposed to be centralized. It works better that way. The easiest way to use the LN is to trust someone else to run a node for you. All that does is transfer custodial trust to a different location, which may or may not be helpful considering the circumstances.

Force-closing a channel

This post is already too long-winded so I need to wrap it up... but there's also an entire process for punishing nodes that try to cheat. Channels can be closed by force on either side. This process can take up to two weeks if one of the nodes decides to not play along (or more likely is broken).

Imagine forcing someone to close their channel right after the halving event when fees had just gone x100. That could straight up cripple someone in fees who never wanted to close the channel to begin with. Doesn't matter they have no control as the channel can be closed by the other side. On-chain fees are still extremely relevant even though the LN is specifically tailored to mitigate them.

Does the LN have good incentives?

Why hasn't Coinbase opened up a huge LN channel with another exchange like Binance? Isn't it in everyone's best interest to reduce fees? Well if you're Coinbase you might not want to give your users a free way to exit the platform. What happens if you crunch the numbers and realize the LN implementation is actually losing you quite a bit of money? This is a very real concern for the bigger players in the space. To just assume financial incentives are in alignment is a mistake. Providing a frictionless offramp is not in everyone's best interest.

Conclusion ⚡ ⚡ ⚡

Now that I understand the Lightning Network better I think it's pretty cool and it makes sense, but more importantly I can also see all the ways in which people are ignorantly assuming it's going to solve all of BTC's problems. Ignorant speculators make basic assumptions like there are no liquidity issues and on-chain fees are not a problem. These assumptions are patently false. Would be nice if they weren't but this is the real-world we are talking about here.

The Lightning Network is a very niche product with very niche applications. In a controlled setting it will end up being quite useful, but it will never be this magical catch-all solution that most assume it will be. The idea of the Lightning Network will always be far out of reach of the actual Lightning Network.


Return from Lightning Network Limitations to edicted's Web3 Blog

Lightning Network Limitations was published on and last updated on 22 Apr 2024.