Bitcoin Forum
June 21, 2024, 07:49:22 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
  Home Help Search Login Register More  
  Show Posts
Pages: « 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 ... 136 »
101  Bitcoin / Development & Technical Discussion / Re: Testing C-Lightning v0.10.2 Offers! on: February 03, 2022, 09:55:58 AM
If I receive any payment of this amount, I will return it!

Paid. I also received the 10 satoshis which you sent me yesterday through my offer. Feel free to deduct them from the refund payment.
102  Local / Polski / Re: Signature campaing - regularnie płatne pewniaki on: January 30, 2022, 10:12:55 PM
Manager: yahoo62278
Nazwa kampanii: Gamdom.com Signature Campaign
Ile do zarobienia/tydzień / ilość postów: Member - $20 w BTC/tydzień , Full Member - $40 w BTC/tydzień, Sr Member - $60 w BTC/tydzień, Hero Member - $80 w BTC/tydzień, Legendary - $100 w BTC/tydzień
Jakie rangi: 50x (Member, Full Member, Sr Member, Hero Member, Legendary)
Dodatkowe informacje: Minimum 25 postów tygodniowo, w tym przynajmniej 5 w sekcji Gambling.
103  Bitcoin / Development & Technical Discussion / Re: Testing C-Lightning v0.10.2 Offers! on: January 30, 2022, 04:53:40 PM
Has anyone of our Lightning node operators here tried BOLT12 Offers yet?

I actually enabled them a couple of days ago, but I didn't have a chance to test them out. I would appreciate if someone could try paying my offer. I will send the coins back.

Code:
lno1pgqpgrjjv96xsgzmddjhjum9dej9683qw0dq55jnjrpks4uyrcsg78fgjf6uwm4l5lk0me5hcm9lfu34kn6lqsywstlx90t55dk5z99fsq8lryq7ws67mx4xwkrwpelezux560yv302w9lslsjqas75y52yertt2t4r4y27amw9j284thc0s4p6m58h6y



104  Bitcoin / Bitcoin Technical Support / Re: Security and privacy using lightening channel on: January 30, 2022, 10:26:30 AM
1. On an open channels, what happens if a node break? and is that the reason for a failed payments?

If some node breaks or goes offline then it can no longer route payments. Usually, such nodes are ignored during route construction as their peers should broadcast a channel update message stating that their channel cannot be temporarily used for routing.

Payments can also fail due to:
- no route to the destination,
- lack of liquidity in the route; in other words, you should be able to send less coins through the same route,
- out-of-date information about channels in the route,
- a node going offline while the payment is being routed.

The most common causes are the first two. Payments are usually split into smaller parts and sent through different paths to improve privacy and mitigate the liquidity problems.

2. How do i run a private lightening channel such as not to reveal or be seen by other networks?

All of the implementations you mentioned allow you to specify if you want your channel to be private while opening it. Private channels are not advertised across the network. They are not listed on Lightning explorers as well. I believe that most, if not all, mobile wallets create only such channels. Someone might learn that you had a Lightning channel through an on-chain analysis if either you or your peer closes the channel uncooperatively at some point. Channel openings and cooperative closes are indistinguishable from other transactions (involving multisig addresses).

Even if you have a public channel, no one beside your peer knows your current balance. Everyone can see the total capacity of your channel, though. It is possible to probe the balance through various techniques, but private channels are invulnerable as they are generally not used to route payments.

So, if you are really concerned about your privacy, you should open only private channels using mixed coins so that no one can reveal your identity if your channel gets closed uncooperatively. You can make your node run behind Tor easily.
105  Local / Polski / Re: Signature campaing - regularnie płatne pewniaki on: January 30, 2022, 01:19:44 AM
Manager: yahoo62278
Nazwa kampanii: EGOcoin Signature and Avatar campaign
Ile do zarobienia/tydzień / ilość postów: Member - 0.0003 BTC/tydzień , Full Member - 0.0006 BTC/tydzień, Sr Member - 0.0009 BTC/tydzień, Hero Member - 0.0013 BTC/tydzień, Legendary - 0.0017 BTC/tydzień
Jakie rangi: 15x (Member, Full Member, Sr Member, Hero Member, Legendary)
Dodatkowe informacje: Minimum 25 postów tygodniowo.
106  Bitcoin / Development & Technical Discussion / Re: The Lightning Network FAQ on: January 28, 2022, 10:11:47 PM
I don't have any more ideas for now. We might find a clue in either Tor or c-lightning* logs.

* - you need to append log-level=debug:connectd to your config file and restart your node.

Any tutorials recommended besides n0nce's that I have to also install openSUSE?

Why don't you follow the official documentation? It's pretty straightforward. There are instructions for a couple of different operating systems if you want to compile the source. You can also use pre-compiled binaries if you don't have much time.
107  Bitcoin / Development & Technical Discussion / Re: The Lightning Network FAQ on: January 28, 2022, 04:49:31 PM
Note: I run C-Lightning from the same user that I run Bitcoin Core. I don't know if it matters.
What exactly do I execute next? This?

You need to remove all '$' signs from the command.

Code:
usermod -a -G debian-tor bitcoin

Do you have any incoming connections in Bitcoin Core? Does it run behind Tor as well?
108  Bitcoin / Development & Technical Discussion / Re: The Lightning Network FAQ on: January 28, 2022, 04:37:22 PM
I just did. Same errors:

Did you look at other instructions in this documentation? Maybe your user is not a member of Tor group?

Code: (https://lightning.readthedocs.io/TOR.html)
stat -c '%G' /run/tor/control.authcookie

The output is {TORGROUP} which you need for the next command.

Code: (https://lightning.readthedocs.io/TOR.html)
usermod -a -G ${TORGROUP} ${LIGHTNINGUSER}

Try restarting c-lightning afterwards.

109  Bitcoin / Development & Technical Discussion / Re: The Lightning Network FAQ on: January 28, 2022, 04:11:03 PM
@BlackHatCoiner, I see that n0nce's guide includes some instructions on editing the /etc/tor/torrc file, but it appears to me that something is missing.

Try adding the following lines of code to your torrc file.

Code: (https://lightning.readthedocs.io/TOR.html)
ControlPort 9051
CookieAuthentication 1
CookieAuthFileGroupReadable 1

Also, you need to double-check your c-lightning config.

Code: (https://lightning.readthedocs.io/TOR.html)
proxy=127.0.0.1:9050
bind-addr=127.0.0.1:19735
addr=statictor:127.0.0.1:9051
always-use-proxy=true

Don't forget to restart Tor (systemctl restart tor) and c-lightning after making changes.
110  Bitcoin / Development & Technical Discussion / Re: The Lightning Network FAQ on: January 27, 2022, 11:10:56 AM
I tried opening a channel to your node through Electrum and I got the same error, but I also enabled logs:

Code:
INFO | lnworker.LNWallet.[default_wallet] | adding peer 039a7e0982d3b0f967dfc18b8b69c9e8cafd035985eff1832258daf08de119b10e@pn4dvsmjxpkemwsuhocrytdpfgrqjzbd6zagasyrg4msce63sldxtlqd.onion:9735
INFO | lnpeer.Peer.[LNWallet, pn4dvsmjxpkemwsuhocrytdpfgrqjzbd6zagasyrg4msce63sldxtlqd.onion:9735] | Disconnecting: SOCKSFailure('unknown SOCKS5 error code: 240')

I looked up your node on 1ml.com and for some reason your onion address is not listed there, which means that it is not advertised properly. There might be something wrong with your Tor setup.
111  Bitcoin / Bitcoin Technical Support / Re: Is it possible to reveal / prove the amount of bitcoin in a lightning address on: January 26, 2022, 03:42:06 PM
Does this mean it's easier to prove you paid to a certain LN node (and thus a certain service provider) than it is on-chain?

Yes. Service providers can claim that they do not own a particular on-chain address as they are not forced in any way to sign a message with it.

If the destination node id (a public key) is not encoded directly in the invoice, it is recovered from the message (invoice data) and the signature. If the public key is included in the invoice then the signature recovery is omitted and the signed message is verified.

As per specifications, wallets are required to validate the signature. If the validation fails, the invoice should not be paid.

Requirements:
A reader:
    MUST check that the signature is valid (see the n tagged field specified below).
112  Bitcoin / Bitcoin Technical Support / Re: Is it possible to reveal / prove the amount of bitcoin in a lightning address on: January 26, 2022, 10:17:45 AM
But this also open the question: If I as a client pay on lightning and the merchant pretend to not have received the money, could I use a proof that I paid / sent the amount required without using trusted third party?

The receiver (merchant) generates a secret and makes a hash of it. Then, that hash is put in the invoice and used in HTLCs during routing. So, as the sender, you can prove that you have paid the invoice if you provide the secret and the invoice.

Lightning invoices are signed by the node which generates them. It is impossible to modify the amount, the payment hash or the destination as it would invalidate the signature, which is included in the invoice.
113  Bitcoin / Bitcoin Technical Support / Re: Channel's balance on a Lightining Network node on: January 25, 2022, 05:13:37 PM
Can anyone please help me finding the solution?

The answer is 3. "Circular rebalance" is a process of sending your coins from one channel and receiving them to one of your other channels. This way, you can make space for incoming funds in the first channel and you gain outgoing liquidity in the other channel. "Loop-In" is a third-party service which refills a channel through an incoming off-chain transaction if you pay them on-chain.

You should visit Basics of The Lightning Network and The Lightning Network FAQ. More and more exchanges and companies integrate Lightning Network payments. You should learn at least some basics about the LN. They will eventually come in useful.
114  Bitcoin / Bitcoin Discussion / Re: [self-moderated] Is LN Bitcoin? franky1: About scaling, on-chain and off-chain on: January 21, 2022, 10:06:29 PM
you then pretend alice pings the entire network or a central mempool/repo/dns (whatever fantasy variable your have tried to add in) for the rest of the network

you than back down and say another fantasy, that alice magically must connect eventually(facepalm) to some outside node.

Again, about that fantasy....

This specification describes a node discovery mechanism based on the Domain Name System (DNS). Its purpose is twofold:
    Bootstrap: providing the initial node discovery for nodes that have no known contacts in the network

I also run my own node and I can see that some random nodes connect to me from time to time. You know what? Let's leave this topic. You're being ignorant just like with HTLC signatures in the HLTC outputs of commitment transactions.



thank you for agreeing that channels can be made private/publicly at a whim any time..
(after your multiple post saying its not)
thank you for agreeing that alice cant send to carol. but eric-diana-carol can send bob or to alice when bob goes private

Private channels are channels that have never been announced to the network. Disabling a channel does not make it private. All nodes still have that channel on their map, but they know that they can't temporarily use it for their payment.

there is absolutely nothing FORCING bob to submit to alices request, when she asks for a list of channels.
there is nothing FORCING bob to have to list all channels.

That's possible. However:

Even if Bob doesn't send "channel_announcement" and then "channel_update" to Alice, she will eventually learn about it from other Lightning nodes as you assume that Diana knows about that channel all the time.

but there are hundreds of messages.. heck even the simple ping/pong messages can include updates to the fee's cltv's and such.

Even the ping/pong messages? Are you sure that we are looking at the same specifications? You might as well put a picture of your cat inside of your "ping" message, but the recipient won't know how to handle it correctly as it's non-standard.



i think i now see how you got your 70% fail rate. [...]
i really am starting to understand your 70% fail rate now. seems you have been coding in some stuff that doesnt use logic or checks.

If you actually looked at my logs and posts, you would know that my payments failed either at some further point in the route or due to no liquidity in my second channel.

It should take a couple of minutes for the message to propagate across the whole network. Alice should receive it fairly quickly as she's just a few hops away.

if you really think that all channel updates result in keeping an map tree uptodate, you are thinking of spam.

Imagine that B, C, D, E updated the parameters of their channels and didn't broadcast the changes as "it's spam". Alice would have to query every single one of them to be able to send the payment. By the way, how would Alice know that all of her information is out-of-date? Asking each hop individually would consume a lot of time.

If the payment fails due to outdated "channel_update", "update_fail_htlc/update_fail_malformed_htlc" can actually return an error message along with the latest "channel_update". Still, the payment would fail 4 times in the above scenario.

and yes nodes do want to change things like cltv and fee to add obfuscation per payment even with out publicly announcing it everywhere..

I don't think that any implementation behaves this way as it would complicate routing a few different payments at the same time. The sender can actually obfuscate both.

CLTV:

If a route is computed by simply routing to the intended recipient and summing the cltv_expiry_deltas, then it's possible for intermediate nodes to guess their position in the route. Knowing the CLTV of the HTLC, the surrounding network topology, and the cltv_expiry_deltas gives an attacker a way to guess the intended recipient. Therefore, it's highly desirable to add a random offset to the CLTV that the intended recipient will receive, which bumps all CLTVs along the route.

Fees:

In the "onion_routing_packet", the sender can intentionally set "amt_to_forward" to a lower value. As a result, the fee paid would be bigger than the one that can be calculated from publicly known parameters.
115  Bitcoin / Bitcoin Discussion / Re: [self-moderated] Is LN Bitcoin? franky1: About scaling, on-chain and off-chain on: January 20, 2022, 04:18:58 PM
you do realise that there are many messages that happen separate to the initial sync map build.. right?
and the map is only as good as the peer connections allow.

Nevertheless, you are ignoring the fact that you can connect to any Lightning node even without having any active channels and start syncing the map of the whole network. Even if Alice is stuck in the "ABCDE" fraction of the network, she will eventually connect to some outside node. The same goes for every other member of the fraction.

You acknowledge the existence of the initial sync, but you insist that Alice knows only about "ABCDE".



i know you think that the only way for bob to dissuade alice from using bob as a route to carol is for bob to rack up his min fee to 1btc a hop. .. where bob has to stay public all day but with a large fee to prevent alice using his BC as a route path..

Bob can also send a "channel_update" message to disable his side of the channel with Carol. Alice would not be able to send payment in the BC direction, but she could still receive a payment in the CB direction.

Code: (https://github.com/lightning/bolts/blob/master/07-routing-gossip.md)
MAY create and send a channel_update with the disable bit set to 1, to signal a channel's temporary unavailability (e.g. due to a loss of connectivity) OR permanent unavailability (e.g. prior to an on-chain settlement).

but you can actually just break the branch in the map and tell alice that the BC channel is not available by responding to a query without mentioning BC channel. or even just telling alice your BC is shutdown/offline

You are changing your assumptions again. Now, you are saying that BC channel is public, but B refuses to let Alice use it. Even if Bob doesn't send "channel_announcement" and then "channel_update" to Alice, she will eventually learn about it from other Lightning nodes as you assume that Diana knows about that channel all the time. Diana forwards every Carol's "channel_update" message.

.. alice can later just query bob and bob can decide to respond. or bob can send an update message to alice to change this.

It would be a waste of time for Alice to message Bob and ask if he made any changes. Alice should use the information from her local map as it's the fastest way. Bob has no real reason to postpone sending "channel_update" message, which would reach Alice immediately.



oh and seeing as you want to break the PR campaign about privacy not being private, to fit your narrative

I am not breaking any "PR campaign claims" as it is common knowledge that you can learn a lot of information about public nodes; Lightning explorers (amboss.space/1ml.com) are more popular than you think. This does not change the fact that Lightning payments are private.

are you now trying to break the "instant payment" PR campaign of needs to wait for map updates, to fit your narrative

"channel_update" is usually sent to advertise updated fee rates of a channel. For example, c-lightning has recently introduced a grace period:

Code: (https://github.com/ElementsProject/lightning/releases/tag/v0.10.2)
setchannelfee now has a grace period during which both old and new fee policies are considered. This prevents a fee update from making the channel unusable until the update propagated.

So, even if someone uses an old feerate in their "onion_routing_packet", the payment won't fail (for a certain period of time). If the feerates are too old then the payment is failed (update_fail_htlc) and the exact error is reported through this message.

Some error messages, which are always encapsulated in "update_fail_htlc" as per bolt04, might actually include the latest "channel_update" so the sender can try resending the payment immediately.

so if you want to say that a payer cannot make a payment while another node is 'inflight' with a different payment for their different reason, because its not yet updated to tell YOUR map.

Again, "channel_update" is not sent across the network when you send someone an invoice or when you are in the middle of routing a payment. If either was the case, what would be the reason? Take a look at "channel_update" again.

Code: (https://github.com/lightning/bolts/blob/master/07-routing-gossip.md#the-channel_update-message)
    type: 258 (channel_update)
    data:
        [signature:signature]
        [chain_hash:chain_hash]
        [short_channel_id:short_channel_id]
        [u32:timestamp]
        [byte:message_flags]
        [byte:channel_flags]
        [u16:cltv_expiry_delta]
        [u64:htlc_minimum_msat]
        [u32:fee_base_msat]
        [u32:fee_proportional_millionths]
        [u64:htlc_maximum_msat] (option_channel_htlc_max)

Which of these parameters in your opinion change when you send someone an invoice or when you are routing a payment? My answer is: none. If there are no changes to those parameters then the update is not necessary.



even things like feature to allow watchtowers to hold onto a 'revoke' payment to use when one side cheats. the watch tower does not get/store blockchain format transactions

Watchtowers need only txids of revoked commitment transactions and actual penalty transactions for each commitment, to function properly.

if anyone is still unsure. lets use Lightning-C. () asadvertised by Rath
https://github.com/ElementsProject/lightning#sending-and-receiving-payments
Quote
Payments in Lightning are invoice based. The recipient creates an invoice with the expected <amount> in millisatoshi (or "any" for a donation), a unique <label> and a <description> the payer will see:
https://lightning.readthedocs.io/lightning-pay.7.html
Quote
On success, an object is returned, containing:

    payment_preimage (hex): the proof of payment: SHA256 of this payment_hash (always 64 characters)
    payment_hash (hex): the hash of the payment_preimage which will prove payment (always 64 characters)
    created_at (number): the UNIX timestamp showing when this payment was initiated
    parts (u32): how many attempts this took
    amount_msat (msat): Amount the recipient received
    amount_sent_msat (msat): Total amount we sent (including fees)
    status (string): status of payment (always “complete”)
    destination (pubkey, optional): the final destination of the payment

there are other things about monitoring the progress of payments (inflight)

created_at, parts, amount_msat, amount_sent_msat, destination are all known before the payment is sent.

payment_hash is a part of the invoice. payment_preimage is known upon receiving "update_fulfill_htlc". status relies on "update_add_htlc", "update_fail_htlc" and "update_fulfill_htlc" messages.
116  Bitcoin / Bitcoin Discussion / Re: [self-moderated] Is LN Bitcoin? franky1: About scaling, on-chain and off-chain on: January 19, 2022, 05:17:10 PM
yep before alice even sends bob an (incoming to bob) alice needs to do stuff, which requires lots of messages

Alice doesn't need to send any messages as she should be able to extract all the information she needs from her local network graph.

EG your "update_add_htlc forces commitment update. thinking the only messages are update_add_htlc (again facepalm)

Thank you for finally admitting that "update_add_htlc" enforces commitment update.

an incoming HTLC. how is that formed(what data is inside this incoming htlc).

Again, all the data she needs to prepare "onion_routing_packet" should be obtainable from her local network graph.



As both of us are probably getting tired of the "contradiction game". I invite you to play the "quote game".

I am quite sure that you know Andreas Antonopoulos and you must have read "Mastering Bitcoin" at some point. Let me introduce you to "Mastering The Lightning Network".

The gossip protocol:

The Lightning Network solves this problem by implementing a gossip protocol. Gossip protocols are typical for peer-to-peer (P2P) networks and allow nodes to share information with the whole network with just a few direct connections to peers. Lightning nodes open encrypted peer-to-peer connections to each other and share (gossip) information that they have received from other peers. As soon as a node wants to share some information, for example, about a newly created channel, it sends a message to all its peers. Upon receiving a message, a node decides if the received message was novel and, if so, forwards the information to its peers. In this way, if the peer-to-peer network is well connected, all new information that is necessary for the operation of the network will eventually be propagated to all other peers.

The construction of a channel graph is not a one-time event, but rather an ongoing activity. As a node bootstraps into the network it will start receiving "gossip," in the form of the three update messages. It will use these messages to immediately start building a validated channel graph.
The more information a node receives, the better its "map" of the Lightning Network becomes and the more effective it can be at pathfinding and payment delivery.

So, you actually don't need any channel peers to start syncing the graph which contradicts your view:

then the only network map ABCDE has is only of ABCDE. because they are peered to pass the parcel
because E is not connected to Z or M or T elsewhere. ABCDE wont know about all the other channels. it only knows about the ones peered to it
EG. if my network map is where ABCDE only have A and E with 1 channel and BCD with  2 channels [...]
a node only knows of the map of its peers, peers

You said that Alice has only B, C, D, E (completely ignoring that BC is a private channel) in her local map of the network.
117  Bitcoin / Bitcoin Discussion / Re: [self-moderated] Is LN Bitcoin? franky1: About scaling, on-chain and off-chain on: January 19, 2022, 02:39:24 PM
wait. but for a few posts you have been saying everyone knows everything... and now you admit that alice would have no way of knowing about eric via the network map..

Nice try franky1. A few posts ago you were not talking about private channels at all, so I assumed that all channels are public, which is the most common case. You are trying to prove me wrong by changing your assumptions. That's no bueno, my dear.

thank you for admitting its not about commitment signing and is about sending messages (messages denominated in msat)

Read my reply again.

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

From the very beginning, I have been saying that you need to send "update_add_htlc" message which includes those instructions AND forces commitment update as per bolt02:

Code: (https://github.com/lightning/bolts/blob/master/02-peer-protocol.md#forwarding-htlcs)
Forwarding HTLCs
*until an incoming HTLC has been irrevocably committed:
    MUST NOT offer the corresponding outgoing HTLC (update_add_htlc) in response to that incoming HTLC.

invoices are not htlc updates to a blockchain formatted transaction output. but thank you for now recognising the messages that go between nodes, especially beyond the initial network map gossip
you have been narratting for pages that payments are blockchain formatted transaction(commitment) changes
where you have been thinking all HTLC are the outputs of a commitment

Routing hints are included in the invoice which Alice needs to receive (outside of the LN) before she tries to send the payment. It does not contradict with what I have been saying about HLTCs as it's a separate process.



a node only knows of the map of its peers, peers

You seem to forget that Lightning explorers, which obtain data through the gossip protocol, exist. All Lightning nodes should have exactly the same information as those explorers.

channel updates are not forced to only happen at 3 times:(your view)
network map initialisation
invoice send
commitment signed

No, my view is that "channel_update" is sent whenever some node makes changes to one of their channel parameters (most commonly the fees). You don't need to send "channel_update" when you give someone an invoice or when you sign a new commitment transaction with someone. You can also send "channel_update" when your peer goes offline so that no one tries to route a payment through this channel. In other words, you can disable the channel.

EG if alice is preparing to pay carol using say map or invoice. but during that preparation crol wants to pay her partner zoe, carol then has to change stuff.
EG if while alice is preparing to pay carol. bob(for his own reason separately) pays someone else for something else. he too has to change something.

Change what exactly? If liquidity is not public then there is nothing to change in this case through "channel_update".

EG if alice is preparing to pay diana, where diana sent an invoice with a hint path through CBA at each transaction BCE can change their cltv per transaction to add some privacy. meaning random numbers change every few seconds and updates occur

You don't need to spam the network with "channel_update" messages. Here's an easier way to improve one's privacy:

If a route is computed by simply routing to the intended recipient and summing the cltv_expiry_deltas, then it's possible for intermediate nodes to guess their position in the route. Knowing the CLTV of the HTLC, the surrounding network topology, and the cltv_expiry_deltas gives an attacker a way to guess the intended recipient. Therefore, it's highly desirable to add a random offset to the CLTV that the intended recipient will receive, which bumps all CLTVs along the route.

its a pass the parcel game.. not everyone connects to everyone randomly [...]
again in the pass the parcel game. your not connecting to all nodes and interrogate their channels. your being passed parcels from a peer who gets data from a peer thats allowing said data to be passed or not [...]
the channel announcements are not broadcast to all nodes.. all nodes are not connected to all nodes.

You need to read bolt07 more carefully:

BOLT #7: P2P Node and Channel Discovery

This specification describes simple node discovery, channel discovery, and channel update mechanisms that do not rely on a third-party to disseminate the information.
Node and channel discovery serve two different purposes:

    Node discovery allows nodes to broadcast their ID, host, and port, so that other nodes can open connections and establish payment channels with them.
    Channel discovery allows the creation and maintenance of a local view of the network's topology, so that a node can discover routes to desired destinations.
To support channel and node discovery, three gossip messages are supported:

    For node discovery, peers exchange node_announcement messages, which supply additional information about the nodes. There may be multiple node_announcement messages, in order to update the node information.

    For channel discovery, peers in the network exchange channel_announcement messages containing information regarding new channels between the two nodes. They can also exchange channel_update messages, which update information about a channel. There can only be one valid channel_announcement for any channel, but at least two channel_update messages are expected.

So, you can learn about node that you don't have a direct channel with. Why would you not be able to learn about its channels then?

If you suddenly stop liking bolt07, here's bolt00:

To make a payment, a participant needs to know what channels it can send through. Participants tell each other about channel and node creation, and updates.

See BOLT #7: P2P Node and Channel Discovery for details on the communication protocol, and BOLT #10: DNS Bootstrap and Assisted Node Location for initial network bootstrap.

bob however is ok with being public to carol. so bob knows of alice. and carol knows alice-bob and carol is ok to send to diana and diana sends to eric. meaning eric knows of alice route. but eric is not node peer handshaked to alice to tell alice

No, Eric still doesn't know anything the BC channel. Neither Alice's nor Diana's network map contain any information about the BC channel. The same goes for Eric. You can't make only one side of the channel private; the whole channel must be private.

when routes are built alice needs to know the latest total of msat and the cltv of the entire route. which can change from the app opening initialising network map view. and change from the invoice sent 5 minutes ago. because bobs circumstance has changed in the last 2 minutes

If that happens then the payment attempt simply fails. Channels don't change their parameters frequently. It should take a couple of minutes for the message to propagate across the whole network. Alice should receive it fairly quickly as she's just a few hops away.
118  Bitcoin / Bitcoin Discussion / Re: [self-moderated] Is LN Bitcoin? franky1: About scaling, on-chain and off-chain on: January 19, 2022, 10:07:30 AM
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)

What you are describing is a 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 it. The CD channel 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. Alice must have learnt about that channel at some point from her other peers.
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 channel 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 either of 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.
119  Bitcoin / Development & Technical Discussion / Re: The Lightning Network FAQ on: January 19, 2022, 12:38:11 AM
We have been having quite a heated argument in the [self-moderated] Is LN Bitcoin? franky1: About scaling, on-chain and off-chain thread with franky1, who has been banned from this section, about some technical aspects of the Lightning Network.

We have been mostly arguing about the way payments are routed through the network. Feel free to join our discussion as both of us might be wrong. Here's a quote from my recent message:

Here's my current understanding of how the system works:

0) Lightning nodes constantly use the gossip protocol (bolt07) to forward/receive "node_announcement", "channel_announcement", "channel_update" messages and maintain a local view of the whole network.
1) Alice receives a payment invoice from Eric which includes information like: Eric node's public key, payment hash, amount, expiry (date) and cltv expiry.
2) Alice constructs a path to Eric using her local map of the network. She tries to find the cheapest and the shortest route. The longer the route, the higher the risk that funds will get stuck during routing.
2a) She prepares "onion_routing_packet" which includes encrypted routing information for each hop.
3) Alice sends "update_add_htlc" message to Bob, which includes the "onion_routing_packet" (which is the same for all peers), the amount, the payment hash and cltv expiry.
4) Alice and Bob sign a new commitment transaction with an HTLC output.
5) Bob sends "update_add_htlc" to Carol with the same "onion_routing_packet".
6) Carol and Diana, Diana and Eric do the same.
7) Eric sends "update_fullfil_htlc" message to Diana, which includes the payment secret.
8) Eric and Diana remove the HTLC output and update balances by signing a new commitment transaction.
9) Diana sends "update_fullfil_htlc" to Carol with the same payment secret and they update the commitment transaction.
10) Carol and Bob, Bob and Alice do the same.

Comments:

3) The amount Alice sends is actually bigger than the one in the invoice as she must account for the fees. Each hop forwards the HTLC with a smaller amount and keeps the difference. If some hop tries to claim higher fees than Alice expected, the next node in the route will fail the payment as the routing instructions say how much one's node is supposed to forward.

If Bob doesn't have enough coins to forward the payment on his side of the channel with Carol, he must send "update_fail_htlc" message and Alice needs to try sending the payment through another route.

All channels use the same payment hash. It is safe because HTLC outputs require both the payment secret and HTLC signatures, which can be produced only by channel partners, to be spent. See this post for explanation.

120  Bitcoin / Bitcoin Discussion / Re: [self-moderated] Is LN Bitcoin? franky1: About scaling, on-chain and off-chain on: January 19, 2022, 12:31:32 AM
and to rath_
seems to again forget, to edit/change a htlc in a commitment or update/edit/change/sign a commitment . they need to know what needs changing.
he forgets the messages that communicate the information.

he also thinks alice or bob or carol know erics htlc right at the start.
he also thinks alice or bob or carol know erics is online just from network gossip
he also thinks alice or bob or carol know diana is online and liquid to forward just from network gossip

he thinks the deal is complete as soon as alice looks at network gossip and signs a commitment with bob

I see that you have completely ignored my answers and remarks to your statements, again. Never mind.

You seem to forget that "update_add_htlc", which forces commitment update, always includes "onion_routing_packet" which contains routing instructions. That's how both peers know how to update the channel.

Actually, you can tell if Eric is online from the network gossip. Either of the peers can disable their side of the channel through "channel_update" and that's what all implementations do if their peer goes offline. Disabled channels are ignored during payment path construction. Carol doesn't need to know if Eric is online as she interacts only with Bob and Diana. If Carol or any other hop beside Alice knew that Eric is the final destination, it would be a huge privacy concern.

I have never said that the gossip protocol (bolt07) is used to reply whether or not there is enough liquidity in the channel to forward the payment. You keep saying that you need to send bolt04 payloads in a bolt01 format, but I have already proved you in my previous post that bolt04 error messages need to be associated with HTLCs from bolt02.

The association between the forward and return packets is handled outside of this onion routing protocol, e.g. via association with an HTLC in a payment channel.

The only HTLC related messages that can return bolt04 errors are "update_fail_malformed_htlc" and "update_fail_htlc". Your peer cannot send them unless there is an HTLC commited to the channel ("update_add_htlc" + "commitment_signed" + revocation keys exchange).



Here's your view as far as I understand:

1) Alice constructs a path based on the information from her map. If she doesn't have some information about specific node, she requests it through the gossip protocol.
2) Alice sends just "onion_routing_packet" in a bolt01 format to learn if all nodes in the route have enough liquidity.
3) Each node in the path forwards that packet in the same way
4) Once the packet reaches Eric, he replies whether or not he can accept the payment.
5) All hops reply to their partners in the backwards order.
6) [Here should be the commitment part, but I have no idea how you want to handle it with a different secret for each hop and trustlessly without HTLC outputs in the commitment transaction]

My comments:

I have already shared most of my concerns before. I still don't know what message each node would use to say "I can forward your payment". I also didn't mention HTLC outputs here as you clearly ignore that they exist or say that they could be claimed with just payment secret, which is not true. Without them, if Eric claims the payment in his channel with Diana and Carol disappears, Diana can't claim the coins she was promised as the promise was not enforceable in any way.




Here's my current understanding of how the system works:

0) Lightning nodes constantly use the gossip protocol (bolt07) to forward/receive "node_announcement", "channel_announcement", "channel_update" messages and maintain a local view of the whole network.
1) Alice receives a payment invoice from Eric which includes information like: Eric node's public key, payment hash, amount, expiry (date) and cltv expiry.
2) Alice constructs a path to Eric using her local map of the network. She tries to find the cheapest and the shortest route. The longer the route, the higher the risk that funds will get stuck during routing.
2a) She prepares "onion_routing_packet" which includes encrypted routing information for each hop.
3) Alice sends "update_add_htlc" message to Bob, which includes the "onion_routing_packet" (which is the same for all peers), the amount, the payment hash and cltv expiry.
4) Alice and Bob sign a new commitment transaction with an HTLC output.
5) Bob sends "update_add_htlc" to Carol with the same "onion_routing_packet".
6) Carol and Diana, Diana and Eric do the same.
7) Eric sends "update_fullfil_htlc" message to Diana, which includes the payment secret.
8) Eric and Diana remove the HTLC output and update balances by signing a new commitment transaction.
9) Diana sends "update_fullfil_htlc" to Carol with the same payment secret and they update the commitment transaction.
10) Carol and Bob, Bob and Alice do the same.

Comments:

3) The amount Alice sends is actually bigger than the one in the invoice as she must account for the fees. Each hop forwards the HTLC with a smaller amount and keeps the difference. If some hop tries to claim higher fees than Alice expected, the next node in the route will fail the payment as the routing instructions say how much one's node is supposed to forward.

If Bob doesn't have enough coins to forward the payment on his side of the channel with Carol, he must send "update_fail_htlc" message and Alice needs to try sending the payment through another route.

All channels use the same payment hash. It is safe because HTLC outputs require both the payment secret and HTLC signatures, which can be produced only by channel partners, to be spent. See this post for explanation.


I can back up my statements by showing you my node's logs and quoting research papers and other resources, but you will totally ignore them as always.
Pages: « 1 2 3 4 5 [6] 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 ... 136 »
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!