ZmnSCPxj <zmnsc...@protonmail.com> writes: > Good morning Rusty, > > A concern I have brought up in the past is that if this is more than just a > single request-response, i.e. if this is a conversation where Alice sends to > Bob, Bob sends back to Alice, Alice sends back to Bob, and so on, then if the > same path is used each time Alice sends to Bob, the timing from Bob response > to Alice to the next Alice sends to Bob can help an intermediate node guess > how far away Alice is from itself. > Obviously the timing from Alice sending to Bob and Bob replying gives a hint > as well as to the distance the intermediate node is to Bob already. > > It may be good to at least recommend that direct messages use different paths > if they are part of a larger conversation between the two parties.
This already applies to HTLCs, no? > Would it not be better to create a circular path? > By this I mean, Alice constructs an onion that overall creates a path from > herself to Bob and back, ensuring different nodes on the forward and return > directions. > The onion hop at Bob reveals that Bob is the chosen conversation partner, and > Bob forwards its reply via the onion return path (that Alice prepared herself > to get back to her via another path). I like it! The lack of "reply" function eliminates all storage requirements for the intermediaries. Unfortunately it's not currently possible to fit the reply onion inside the existing onion, but I know Christian has a rabbit in his hat for this? > After Alice receives the first message from Bob the circular "circuit" is > established and they can continue to communicate using the same circuit: > timing attacks are now "impossible" since Alice and Bob can be anywhere along > the circle, even if two of the nodes in the circuit are surveillors > cooperating with each other, the timing information they get is the distance > between the surveillor nodes. > > Of course, if a node in the circular path drops the circuit is disrupted, so > any higher-level protocols on top of that should probably be willing to > resume the conversation on another circular circuit. My immediate purpose for this is for "offers" which cause a invoice request, followed by an invoice reply. This will probably be reused once for the payment itself. 2 uses is not sufficient to justify setting up a circuit, AFAICT. > I believe I even tied this to an HTLC in an attempt to provide a > spam-limit as well: > https://lists.linuxfoundation.org/pipermail/lightning-dev/2019-November/002294.html This part was deeply unclear. Eventually we will have to charge up-front for forwarding HTLCs (say 5% of existing fee, plus 1msat), and then we could use the same scheme with lesser amounts (say, 1msat) for forwarding messages. But I have been unable to come up with an upfront scheme which doesn't leak information badly. The best I can do is some hashcash scheme, combined with the ability to buy a single-use token to weaken it. Under load, a node would raise their hashcash difficulty, and you could either find another route, grind your onion more to meet it, or send a payment for a token from that node which would let your HTLC through: the preimage could even be the XOR of some secret you send with the HTLC, and a shachain key which gives you 1000 tokens, and you can use them in order, etc. (Really want to use some kind of Chaumian token here, but it's probably overkill). > Finally: what does this improve over, say, requiring that all > Lightning nodes have a Tor .onion address and just doing direct > messaging over Tor? That would be far better! But that's not happening: lnurl over https is happening. Using lightning to tunnel messages is a strict improvement over that, at least. Cheers! Rusty. _______________________________________________ Lightning-dev mailing list Lightning-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev