There are at least six reasons why your Lightning Network (LN) node might not be able to route to its destination, that is send or receive a payment, according to Alex Bosworth, lead developer at Lightning Labs.
It’s not clear whether the rankings are random or listed in terms of severity or how often they occur, but the main reason is probably because you “don’t have inbound liquidity.”
Now that’s a foreign term for this space but it helps to bear in mind that Lightning works on an I Owe You (IOU) basis.
That is, I lock a bitcoin on-chain, and give you a hash to prove I have such coins and that they will be sent. You can be pretty sure of it cus maths, but my coins aren’t actually moving (until they do settle), only promises are moving.
So I make you a promise, and that’s fine, but now you need to be able to receive the promise. By that presumably is meant that I can prove I have the bitcoin and can send the promise, but for you to prove to others you now have the bitcoin sent, you first need to prove you have an equal amount of bitcoin that is to be received.
In other words, we have a social trust graph where people are saying I trust Trustnodes because they’re an upstanding paper – or rather because the blockchain says they have the coins – with it quite a bit more complicated and that complication arises by the fact that something concrete isn’t actually moving, until it does settle.
So as a receiver to spend the coins you have received you first need to prove you have locked an equal amount of such coins. Thus you have to send a hash to others, be active, create a credit score if you like but in code.
There is no bank saying he is not earning enough, so we won’t “lend” him 1 BTC. Instead there’s the Lightning Network which sees you have one bitcoin, but only if you do certain things:
“Because payment channels are currently funded only by the initiating party (though dual-funded channels are eventually planned), opening channels only gives you capacity to send, not to receive.
To get receiving capacity, you must either open a channel and then spend money through it, or you must convince other nodes to open channels to you.”
It’s worth remembering these are very early days for this very complex system that tries to use cryptography to prove ownership while not actually transferring the asset.
In addition this is being developed under fire with LN devs kind of having a bunkered mentality which is very much a hangover from the long, fierce, but genuine, blocksize debate.
Yet it isn’t very clear whether this aspect of basically proving ownership to senders can be resolved or can be automated and hidden on the backend.
According to one explanation, you can pay service providers 50 cent or so for this inbound liquidity. They say:
“If your node is up 24×7 and you have some outgoing channels, the network will connect to you if you simply wait.
However, it might take a couple of weeks to get a significant amount of incoming liquidity, and ideally you want your outgoing liquidity to match too.
So open a few large channels, and simply wait a few weeks….
Open a channel and spend 50% of the channel capacity on something, perhaps even send back to your own wallet.”
Again it is worth remembering you are exchanging promises of an asset which itself doesn’t move. So to receive a promise, you first have to make promises yourself or you have to get others to “lend” you promises, so creating a complex graph of IOUs that run on cryptography.
With that explanation out of the way, and of course if there is any misunderstanding we love factual corrections – but not opinions except in the comment section below or generally expressed rather than as corrections – the second ranked reason of why you might not be able to pay or receive on LN is low uptime.
Now this part is a bit of rocket science, but we’ll try and simplify as much as we can while not to the point where it is misleading as far as we understand in any event.
When you’re exchanging these promises, there’s obviously the double spending problem. You promised to pay Trustnodes 1BTC, and then you cheekingly go off to pay Alex here our 1BTC, leaving poornodes even poorer.
Thing is we know you just did this, so we can now metaphorically press a button and take all your bitcoins. Obviously for us to do so, we have to know so. That is, we have to be online.
The solution is another third party provider – a mighty watchtower – that stays online for us and now we have to trust them. For the privilege, we probably have to pay another 50 pence.
These are the main ones, we won’t go in detail for the rest not least because it isn’t clear what “fees are too high” means, but we like this one: “Your inbound liquidity doesn’t have good inbound liquidity itself.”
Why is my node not routing?
1. You don't have inbound liquidity
2. Low uptime
3. Capital is committed to competitive destinations
4. Capital committed to destinations no one wants to send to
5. Fees are too high
6. Your inbound liquidity doesn't have good inbound liquidity itself
— Alex Bosworth ☇ (@alexbosworth) March 12, 2019
As stated this is a very new thing and any discussion on LN is a bit polarizing because it does go back to that blocksize matter in bitcoin.
In eth, for example, you have Plasma, Raiden, and so on, which kind of do the same thing as LN, but no one quite cares to point out and laugh or the opposite to claim that Plasma is the messiah (although there are some OMG fans that do kind of claim that).
In bitcoin, LN has kind of been used as an alternative to on-chain capacity – unlike in eth where it is in addition – so any short-fallings for LN, any problems or indeed any achievements, matter quite a lot to quite a few bitcoiners and in a fundamental way.
That makes it difficult to have a rational discussion and it makes it difficult for both sides to acknowledge the limitations or the added value.
There are plenty of both, and props to Bosworth for taking the courage to try and educate those who want to use LN even though he must have known there would have been plenty of point scoring.
Thing is, it’s only “true” cryptonians that stand now. Hype is of no use. Making the same arguments everyone has heard for the trillionth time is of no use either. Claiming Kumbaya and so on is also of no use.
It’s building time. If you don’t like LN, go build something else. If you do like LN, go build it and make it better. If you like Plasma or sharding or whatever you like, go emulate Nakamoto and drop the code, then shut-up.
Ok, fine, since you’re a mere mortal you can go on talking if you drop the code. Otherwise, complaining of what is, without providing an alternative solution, is quite useless especially when it is only the true believers in all of these projects that still stand.