Post
Topic
Board Bitcoin Discussion
Merits 5 from 2 users
Re: [self-moderated] Is LN Bitcoin? franky1: About scaling, on-chain and off-chain
by
Rath_
on 19/01/2022, 10:07:30 UTC
⭐ Merited by BlackHatCoiner (4) ,JayJuanGee (1)
i can keep my BC side private. thus A wont know about me or my channels with CD through network map. because i wont send an announcement to B of my D channels

but set my CD as public and so E can see me on the network map. because i am announcing to D my channels
E could use network gossip to build a route to A
but if A wanted to build a route to E. A would need to do channel requests to B to see that B is actually connected to C.. (and then i can choose(opt-in) to temporarily tell A about D (SEPARATE from the network map)

You are describing are really edge case scenario as most payment are probably routed through public channels. The only effective way to achieve that would be to include routing hints in the payment invoice, but that would require the cooperation of the sender. Usually, senders include only private channels that are directly connected to them. You also mixed up a few things.

If the BC side is private it doesn't mean that CD is private and that Alice doesn't know anything about the CD channel, which is public. The gossip is advertised not only to people who you have a direct channel with, but also to other Lightning nodes that randomly connect to your node.
If the BC channel suddenly goes public, the gossip will eventually reach every single node in the network. There would be no need for Alice to ask B for any details. However, If the BC was private all the time:

You can't ask B to temporarily tell you about C. You can't assume that B will have any way of forwarding your payment. In fact, Eric doesn't know it as well.
What would be the point of having a private channel if literally anyone could send a gossip message to your peer to reveal the existence of your channel? You would waste a ton of bandwidth and time trying to guess which node might have a private channel that could be used in your route.

If the channel between Diana and Eric was private, Eric could tell you about it through the payment invoice.

you say that the transparent network map is on by default and requires an opt out to become private. but its actually the opposite. its an opt-in process of being private first and deciding to go public

Yes, it is default for LND, c-lightning and Eclair nodes which make up the vast majority of the network. All of them open public channels by default.

and multiple times i have been saying you cant update a HTLC until you know the amounts, and details to put into a HTLC
alice is not psychic.

you cannot change a HTLC unless you know the data that needs to be put in it, to change change it

It seems that your main argument now is that you can use private channels. Here's what routing hints look like in invoices:

Code: (https://github.com/lightning/bolts/blob/f6c4d7604150986894bcb46d67c5c88680740b12/11-payment-encoding.md)
r (3): data_length variable. One or more entries containing extra routing information for a private route; there may be more than one

r field
    pubkey (264 bits)
    short_channel_id (64 bits)
    fee_base_msat (32 bits, big-endian)
    fee_proportional_millionths (32 bits, big-endian)
    cltv_expiry_delta (16 bits, big-endian)

So, if DE channel was private, Eric could give you all the information you need about that channel to construct the "onion_routing_packet". You wouldn't need to request any additional information. If either BC or CD channel was private, you would have no way of learning that you can use them to reach Eric.



again for emphasis. because network map does not hold all info. such as CLTV amount_msat of active available balance, nor any other personal parameters like adding a bit of shade to each CLTV. making each one unique.
you cant just create a route in A using just A network map and just commit to bob. for an amount A guessed based solely on the network map

Of course, you can. "cltv_expiry_delta" is a part of "channel_update" message, so Alice knows all the information she needs from her network map if all channels in the route are public.

If you want to assume that BC channel is private and Carol is the destination then Carol needs to include routing hints for her BC channel in the payment invoice. This way, Alice has all the information she needs to construct "onion_routing_packet".

I also really like how you quoted this routing example and talk about some weird update messages when the example clearly uses only two messages: "channel_update" which Alice received at some point in the past and "update_add_htlc" to send the payment.

LN is not a network of relaying signed transactions like the bitcoin network

No one is relaying signed transactions. Commitment updates are local. Nodes relay instructions which tell them how they should update their local transactions.