The Lightning network is one of several attempts to migrate transactions from the bitcoin base layer to second layers where different consensus methods can be used to issue trustless payments and have the main chain as a fallback. Since the launch of the Lightning network, we’ve seen thousands of Lightning nodes spin up (mine included) to provide support and liquidity for the network.
The way this solution works is users lock up a bitcoin UTXO the main chain in a hashed time lock contract (HTLC), the Lightning network recognises this HTLC as spendable bitcoin in it’s second layer while bitcoin base layer sees it as locked funds.
This avoids double spending and gives both parties connecting to do payments assurity that they always close out the channel and move back to the main chain at anytime.
Although many deem the Lightning Network to be very promising and the most popular scaling method, it is still important to acknowledge its shortcomings so that solutions can be found for them as the Network expands and evolves.
If bitcoin is going to be a robust payment method for everyday use, the same way it is for final settlement, challenges need to be met head on and we need to be realistic about the short comings of this protocol.
One such issue that is making the rounds, is the concept of channel jamming.
What is channel jamming
Channel jamming is when a malicious entity blocks up liquidity in the lightning network, by making a payment to themselves, via third party channels and then never revealing the secret, such that the payment never completes.
There are two kinds of jamming:
- amount jamming, per which an attacker locks a significant portion of the target channel capacity
- slot jamming, per which an attacker locks forwarding capabilities of the target channel by exhausting the limit of in-flight payments (we explain this in more detail in “Baseline cost”)
Channel jamming can be described as a denial-of-service attack that allows a nefarious actor or actors to prevent routing nodes from forwarding payments within a channel. In other words, channel jamming makes forwarding payments almost impossible.
As a result these jammed channels increases the amount of failed payments and thus reduces the reliability of the Lightning Network. Despite the improved liquidity on the network and better routing, the lightning network still has the potential to be clogged by these non-economic actors who want to attack the network and since fees are so cheap on Lightnign the cost of attack a discouraging factor like it is on the base chain.
Why is channel jamming an issue for lightning?
The opportunity of slot-jamming any payment channel in the network depends on the slot limits, which are derived from the LN protocol. This means that one of the solutions to jamming on the LN lies in this protocol.
The protocol can be changed to allow more than 483 concurrent payments over the same channel. This can be achieved by either modifying the LN on-chain transaction structure via nesting or by modifying the underlying Bitcoin layer to support LN-related transactions with more than 483 inputs.
This is another reminder that we cannot be running victory laps just yet, there are plenty who would love to see bitcoin fail or at least deal it a short term blow. The Lightining stack still needs to grow, be tested and as we learn more on security and scaling issues, the protocol will mature and be fortified.
Why channel jamming isn’t going away
Although fully mitigating channel jamming while preserving the permissionless nature of the LN is probably impossible, we have ideas for making the attack harder.
Incremental ideas might be integrated by LN implementations or even node operators independently today, but they are limited. Long-term fundamental solutions require additional research and broader discussion before moving ahead.
If you’d like to learn more about channel jamming check out this article by Bitmex research
Are you a bitcoin and lightning fan?
Have you been using Lightning to make micro-payments? Stream sats or engage with apps? Which app is your favourite? Have you tried all the forms of Lightning payments? Which one do you prefer? Let us know in the comments down below.