Skip to content

Instantly share code, notes, and snippets.

Last active March 21, 2018 14:24
Show Gist options
  • Save Swader/880c8eb27c38326290c842a543ec3913 to your computer and use it in GitHub Desktop.
Save Swader/880c8eb27c38326290c842a543ec3913 to your computer and use it in GitHub Desktop.

In November, I realized some Core BTC devs don't understand the LN. Other influencers agreed with me, some in private, some publicly. These questions arose from that confusion, in an attempt to clear things up once and for all.

  1. If Alice and Bob want to transact, they need to open a channel, and they need to agree on max amount to transfer through that channel. This requires a transaction. To finalize the transaction so they can spend the BTC outside of their channel, they need to close it so their on-chain balance updates and so they can send BTC onward into other channels. Closing also needs a tx. How, then, is it sensible for Alice and Bob to transact this way, instead of what they can do now - use one single transaction?

  2. A common argument against the above is "you'll have middlemen through which many channels will go and form a mesh". My question is twofold:

  • a) how is it that this does not scare you? If LN becomes super popular and all of BTC is routed through like 5 major hubs (like currently 60% of all BTC transactions are routed through only 3 ISPs) and then govt tells the hub "OK do KYC now and tell us everything" or the hub becomes so monopolistically corrupt it starts charging absurd middleman fees (because they can), how do you solve this hypercentralized network's problem then?
  • b) even a channel with a middleman has to be closed once. If you have one big mesh of LN payments, and another unconnected one, you need to close the first one fully before being able to participate with the other one. But you cannot close just one tentacle of a hub - ALL must close because everyone's balances need to be consolidated because everyone chipped into the channel's max transfer volume. So it's impossible to close and release just one node out of the system. The bank can therefore say "No, we're not ready to close yet - we close once per week and consolidate then, wait until Friday to get your BTC and have it sendable elsewhere". - turns out this is wrong, my bad, channels can now be closed individually, a hub doesn't have to close all channels. It's still expensive to close them. There is still no way to top-up a channel without a transaction.
  1. A common argument is the "I don't need coffee logged". This, too, is DOA. If I open a channel with Starbucks for 0.5 BTC, that means we both chipped in 0.25 BTC, presumably, because the transfer capacity of the channel (unless topped up, which again needs an on-chain transaction) is "fed" by both (all) parties involved. This begs the question - how many of such channels will you open? If I want to buy coffee that one time I'm in NY, do I open a channel? And for how long? Who closes it, and why would I pay the enormous closing fee? And most of all, how many of such channels can you afford to keep open? Will you open a new 0.1BTC channel with every starbucks you visit thereby locking up your money in every new city until the channel is closed? Do you keep it open forever just on the off chance you once end up there again? People say that StarBucks will be a hub and connect to all its customers, but again, no, it won't, because it can't add new ones into an existing channel without a tx, and cannot remove old ones without closing the channel. So it has to either open new channels, or close the old one completely, all the time. Every single SB has to do this separately. This is unscalable, unsustainable, and economically insane with current TX fees.

  2. How do you deal with the "offline problem"? If a node goes offline for a while, a consolidation mechanism kicks into place. How do you deal with the fact that, for example, Turkey can block all BTC protocol traffic, or USA can, under new Net-Non-Neutrality laws block p2p money traffic, and the chains across the globe can lose connection? Who pays for those enormous damages, especially when it's huge entities that lose connection, each of which is handling 100k users?

  3. How does it not worry the people who love Bitcoin that the only currently proposed scaling solution to their favorite "decentralized" currency is being implemented by a private company (Lightning labs) who have it in their best interest to never see another solution work?


  • I use the term "bank" loosely. It can be an actual bank which embraces crypto, it can be a popular exchange, it can be a powerful solo player, doesn't matter.
  • I am open to having my mind changed by objective reasoning. I'm open to the possibility of having gotten the whitepaper wrong, but in that case I would like you to point me to the exact line in the WP which refutes my theory.
  • When thinking about Bitcoin, if your answer to the hypothetical question "what proof would it take to convince you it's hopeless" is "none", then you're a maximalist and aren't interested in discussing, but want to push an agenda. These questions are objective curiosities I'm seeking answers to, so that I too can start believing in the much advertised LN, or so that others can see the problems in it and fix it before it's too late.
  • I am not anti crypto. I run a crypto company for smart contract development, enterprise consulting, and crime investigation. I also run an altcoin brokerage. I have several dozen cryptos in my folio, and that includes both BTC and BCH. I think both are terribly, terribly flawed. What I'm trying to find out here is why people don't think the LN, in its current iteration, doesn't agument these flaws even further, given what I outlined in the questions.
Copy link

Swader commented Mar 21, 2018

  • Interesting (successful) attack on this already flawed concept:
  • Additional unanswered question. If current LN routing is provided lists of IPs and not auto-searching (because it's impossible to solve the traveling salesman problem at scale), how is that not even more centralized and susceptible to abuse if nodes can dictate which route to take? This will lead to privatized pay-to-join routes on the LN where IPs/nodes will collaborate and collude.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment