ZmnSCPxj <[email protected]> writes:
>>> Please describe the below:
>>>
>>> 1. Behavior if payment succeeds after T time.
>>> 2. Behavior if payment fails after T time.
>>>
>>> It seems you only described "Behavior if payment succeeds after T time".
>>
>> Ah, sorry if I didn't make that clear. The reputation is increased in the
>> case of successful payments by the fee collected. The reputation is
>> decreased on the downstream peer proportional to time T regardless of
>> whether the payment succeeds or fails. If a payment succeeds quickly, the
>> increase should outweigh the decrease, but if the payment succeeds after a
>> long time, the change in reputation may be net negative. If the payment
>> fails, the upstream peer's reputation does not change and the downstream
>> peer's reputation always decreases proportional to time T.
>
> Thank you. So:
>
> 1. If payment succeeds after T time, upstream reputation is increased by fee
> earned, downstream reputation is increased by fee earned, downstream
> reputation is decreased by T * reputation_loss_rate.
> 2. If payment fails after T time, downstream reputation is decreased by T *
> reputation_loss_rate.
So, to be clear, there's no *financial* fee on failure, just reputation
fee?
Also, you talked about reputation_loss_rate as being a private per-node
thing, and being an explicit thing in the HTLC. I'm ignoring the
former, and assuming the latter.
OK, let's consider a 1000 satoshi HTLC, paying a 10ppm fee and with a
1ppm-per-second reputation_loss_rate.
If it succeeds in 1 second (measuring reputation in millisatoshi,
because its cute):
reputation[source] += 10
reputation[destination] += 10 - 1
If it succeeds in 10 seconds:
reputation[source] += 10
reputation[destination] += 10 - 10
If it fails in 10 seconds:
reputation[destination] -= 10
And if it falls onto the chain and fails after 144 blocks:
reputation[destination] -= 86400
In this scheme, it seems that I can destroy N reputation points in 18
nodes for cost N:
Mallory1 -> Node1 -> Node2 -> ..... -> Node18 -> Mallory2
\
Mallory3
Mallory2 pays a crapload of fees to Node18 to pay Mallory3, getting a
great reputation. Then Mallory1 sends a payment to Mallory2, which
takes a day to resolve.
Of course, this is why you want ramped reputation_loss_rate, say 1ppm
for Mallory1->Node1, 2ppm ->Node2.... 19ppm for Mallory2. That just
means Mallory can destroy 9*N total reputation points, not 18*N.
You can fix this by making it reputation_loss_rate exponential, but I
don't think Node1 could ever get the 262144x reputation to make the
payment in the first place.
What am I missing?
Thanks,
Rusty.
_______________________________________________
Lightning-dev mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev