2
Consider a Lightning payment: Alice wants to pay 100 sat to Dave via two intermediary hops: Alice - Bob - Charlie - Dave. Both Bob and Charlie advertise a fee of 2 sat. Alice sends 104 sat to Bob, expecting him to forward 102 sat to Charlie. But Bob only forwards 101 sat. Then Charlie has a choice: either to fail the payment and get nothing, or forward it for just 1 sat. It seems that the economically rational choice is to forward anyway. If this is true, why first hops not always take nearly all fees for themselves?
Of course, due to onion routing, Bob doesn't know whether Charlie is the last hop. If Charlie is the ultimate recipient and he won't get the sum he expected, he won't reveal the preimage, and Bob will get nothing. But can such strategies be profitable on average, over many attempts?
>Can't Bob just query Charlie about what fee he offers? 2. "nodes would currently automatically fail" - current implementations do that, but this can't be enforced, right?
< – Sergei Tikhomirov – 2019-06-06T13:53:34.297
Bob could query Charlie but since Bob does not know how long the route is the information given is low but it might be used). So there are possibilities. And yes I don't see any way to enforce this behavior – Rene Pickhardt – 2019-06-06T14:30:08.170
1no bob would not change the amount_to_forword for the next hop but just forward a different amount than was specified in his part of the onion. This would not have any impact to HMACs but obviously meddeling / breaching the protocol is a poor idea since charlie would / should probably fail the onion as charlies routing fees are not sufficient – Rene Pickhardt – 2019-06-07T06:22:27.917
@RenePickhardt I just figured that out and deleted my earlier comment. What impeccable timing :). Sorry about that – Ugam Kamat – 2019-06-07T06:23:10.883