Why Nostr? What is Njump?
2023-06-09 13:01:37

JoĂŁo Valente [ARCHIVE] on Nostr: đź“… Original date posted:2020-11-30 đź“ť Original message: Hello Bastien! Firstly ...

đź“… Original date posted:2020-11-30
đź“ť Original message:
Hello Bastien!

Firstly I'd like to thank you for the time you took to read the paper, it's
been hard to get some quality reviews.
Your feedback made me think and reach the following conclusions:
Let's assume node A is sending information to its peer, node B, with the
goal of attracting more business (increasing the number of payments that
are routed through it). In LDR this would mean A would want to announce to
B that it belongs to larger volume routes than the ones it actually does.
Let's say A and B shared channel state is (A: 1, B: 4).
A shares a channel with C, state (A: 2, C: 3).
B also shares a channel with C, state (B: 3, C: 6).
A could dishonestly share with B knowing a path to C with capacity 4 BTC
although it only has 2 currently available. By doing this A would
effectively change B's routing preferences for payments to C, making B's
routing table go from:

Destination | Next Hop | Capacity
C A 2
C C 3

...to:

Destination | Next Hop | Capacity
C A 4
C C 3

Meaning B now thinks payments to C with volume in the [3, 4] BTC range can
only be routed through A and payments to C in the [0, 3] BTC range can be
routed to A or directly to C. What does this information change and how
does it affect honest nodes?
Larger [3, 4] BTC payments are not within the capacity provided by the path
that goes directly to C and would immediately fail when the payment is made
in the LN layer using the path that goes through A. This breaks the
incentive to, at least for payments in this volume range, share the invalid
information. The cheating nodes would not be putting honest nodes out of
business nor increasing the number of payments that go through them.
The problem starts when the cheating node fakes directly competing for
routes within the capacity range provided by honest nodes and not by them
([2, 3] BTC range for the example). Although this could not be used to
collect more fees because payments would eventually fail in the LN layer
and the fees wouldn't be able to be collected, it could certainly be used
to "put honest nodes out of work", stealing routing paths that would
otherwise belong to them.
I think the solution lies in the way in which a node chooses the next best
hop for a certain destination. I started by proposing the following
(section 3.1.2):

>The ”best next hop” for a certain payment destination is defined as being
the hop with the lowest fee from the group of next hops for that
destination where the maximum volume allowed is bigger than the payment’s
volume.

I propose changing it to:

>The ”best next hop” for a certain payment destination is defined as being
a random hop taken from the group of next hops for that destination
where the maximum volume allowed is higher than the payment’s volume.

Which would diminish the incentive attacking nodes have to share fake
gossip by not allowing them to set themselves as first in line to be chosen
as next hop. A maximum fee that a node is willing to pay would also need to
be set,
Also, keep in mind that the capacity the maximum path capacity can lie
about is limited by the capacity of his biggest channel, available in the
blockchain.

PS: I adapted Figure 5 from your trampoline routing presentation, hope
that's ok!

Kind regards,
JoĂŁo Valente

On Mon, 30 Nov 2020 at 08:36, Bastien TEINTURIER <bastien at acinq.fr> wrote:

> Hi Joao,
>
> Thanks for the time you spent on this, the paper is clear on the
> trade-offs (sacrificing some privacy for
> efficiency).
>
> My main negative feedback here is that you seem to assume that nodes will
> honestly cooperate.
> It feels to me that nodes can cheat and gossip biased or invalid
> information to their peers in order to
> attract more payments through their nodes (and collect more fees or put
> honest routing nodes out of
> business).
>
> Is that something you've thought about?
>
> Cheers,
> Bastien
>
> Le dim. 29 nov. 2020 Ă  00:46, JoĂŁo Valente <jvalente96 at gmail.com> a
> Ă©crit :
>
>> Hey!
>>
>> I've been working on this new concept for routing in the lightning
>> network. It leverages the use of the information nodes have on the
>> distribution of funds in their channels to try and maximize the probability
>> of success for a payment.
>> Each node shares with his neighbours the information it has about the
>> distribution of funds in its own neighbourhood through the form of a
>> routing table. As nodes receive new tables they'll be updating their own
>> locally maintained tables with the new information, periodically sharing
>> them with their neighbours.
>> Routing tables associate destination addresses (representing nodes in the
>> network) to the next hop in the maximum capacity path to these nodes.
>> If a new payment is to be made a payment probe is forwarded by the payer
>> and through every node in the path, collects the path information along the
>> way, and reaches the payee who returns it to the payer. The payer can then
>> use this knowledge and confidently use the discovered path to route LN
>> payments through.
>>
>> I wrote a 10 page paper about the subject and would love to get some
>> feedback:
>>
>> https://drive.google.com/file/d/1dahW0X-N59138ZbY-4odpXjpDnX4Gb7Z/view?usp=sharing
>>
>> Cheers,
>> JoĂŁo Valente
>> _______________________________________________
>> Lightning-dev mailing list
>> Lightning-dev at lists.linuxfoundation.org
>> https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxfoundation.org/pipermail/lightning-dev/attachments/20201130/39249949/attachment.html>;
Author Public Key
npub10vzdn42vctun4x4590wmusslsecz8ftgfe2mqw4ejdp6megd7vnqwqqpas