lightning-dev
Hold fees: 402 Payment Required for Lightning itself
Posted on: October 13, 2020 03:05 UTC
In a recent mailing list post, Rusty Russell expressed his concern about the potential for spam attacks on the Lightning Network.
He specifically highlighted the possibility of attackers using low-reputation nodes to jam up high-reputation channels. This could be done by establishing channels to various low-reputation nodes and then using them to grief a high-reputation node, causing it to become clogged with traffic. As a bonus, the low-reputation nodes would end up paying for this jamming. Russell argued that any scheme which penalizes the direct peer creates a bias against forwarding unknown payments, thus is deanonymizing. To address this issue, Joost Jager suggested introducing hold fees as a way of incentivizing good behavior. These hold fees would be based on a formula: lock_time * (fee_base + fee_rate * htlc_value), where fee_base compensates for the usage of an HTLC slot, which is a scarce resource. Hold fees do not need to be symmetric; new nodes would be forced to pay a hold fee when opening a channel to an established routing node, but established nodes may choose not to charge hold fees to each other. However, Russell noted that hold fees would require trusting one's peer not to steal the payment or artificially delay the forwarding to inflate the hold fee. Despite this, he agreed that the spam/jam issue should be prioritized and addressed sooner rather than later.