Free Rebalancing Proposals for LN Channels
A proposal was made on lightning-dev for a fee-less, omni-beneficial rebalancing scheme in LN channels.
Rebalancing a Lightning channel is currently a bit of work, to understand what we’re talking about, lets first give an example of what rebalancing a channel is.
Suppose you are node A and have channels with B and C with balances of 200
satoshis from each; you paid 200 sats to B but nothing yet to C. The current
(A,B) = (0,400) and
(A,C) = (200,200). Say you buy things more
frequently from B and would like to have credit in that channel and it happens
that there is a channel between B and C. You will be able to use this channel
as a bridge, sending 100 sats to C, as long as C sends 100 sats to B and B
sends 100 sats to you. So the balance of the channels now is
(A,C) = (100,100), which is satisfactory to you for now.
This is currently not organized between both parties and the balance can start to “oscillate” if both parties try to balance the channel as they wish, and since they are regular transactions, they cost fees.
The proposal by Robert Olsson, called Free Rebalancing Proposals, aims at
upgrading the Lightning network with an algorithm that allows free balancing of
channels. It works by sending a
proposal_for_balancing message through the
intermediary nodes to your desired node, the desired node agrees on a certain
rebalancing and the intermediary nodes let you know how much they are willing
to let you rebalance if at all.
This balancing is fee-less, can be agreed upon between both parties and benefits the intermediary nodes as well.
Some members of the community argue if rebalancing is beneficial at all, they note that on-chain to off-chain payments can settle this type of problems without any issues.
A better solution is for C to purchase more incoming balance by asking either of B or A to transfer onchain funds in exchange for a preimage (i.e. swap offchain funds for onchain funds). This is effectively “batching” the earnings that C gains in LN: C might earn a lot of small amounts, each one too small individually to justify onchain transfers, but which batched together can justify the onchain transfer. Further, this batching is noncustodial and C can close the channel at any time (incurring an onchain fee), unlike current payment processors (PayPal, credit cards) where payment batching is custodial and may be frozen by the custodian; on LN, at worst the money will be locked for a few days or weeks, but will definitely be returned to you as long as you did not actually cheat.