The blip-0003 specifies that a sender may only use a preimage once, but what would happen if the sender sends the same preimage twice or 2 senders send the same preimage?
How would the receiver be able to distinguish between those two payments?
The blip-0003 specifies that a sender may only use a preimage once, but what would happen if the sender sends the same preimage twice or 2 senders send the same preimage?
How would the receiver be able to distinguish between those two payments?
The reason why preimages must not be reused, is because it allows anyone along the routing path that has previously already seen (and stored) the preimage to claim those funds without forwarding the payment to the intended destination. See also Reuse of payment hash in Lightning Network
How would the receiver be able to distinguish between those two payments?
I'm not sure about how the Lightning Node implementations handle this in practice, but in theory, they don't need to. Anytime your node receives an HTLC for which you know the preimage of the hash (either because you generated the preimage, or because the sender included the preimage in the HTLC as per the keysend spec), you can claim the funds committed to by that HTLC.
See also How do 'Sphinx' invoice-less payments on the Lightning Network work?