Hi Olaoluwa, I¹m glad we¹re thinking the same direction.
Generally, I think we (the community) worry too much about equilibrium. There is no really proof that it improves the network. On the other hand, money being locked in channel is of major issue. Some nodes may be used mostly for sending payments, whereas others mostly receiving. Therefore, the distribution of funds in channels should be dictated not by equilibrium but by nodes' plans to send and receive. > In this case, equilibrium means being able to recv as much as you can >send on all your channels. Now it seems there are two ways to define equilibrium. You have described one where each node is trying to keep the ability to send and receive at the same level. I¹ll repeat the above argument, some nodes may be used mostly for sending payments, whereas others mostly receiving. Therefore, such definition is unjustified from the individual viewpoint. Another definition of equilibrium is when a node distributes equally the available balance amongst the channels it has. Your argument still stands here as such equilibrium minimises the number of depleted channels. > The argument here is that by maintaining this balance, one is likely to >reduce the number of routing failures from failed HTLC forwarding, as the >channel is equally likely to be able to carry an HTLC in either direction. If a node has no balance, its channels are depleted. There is nothing we can do with this. Such nodes are bad for topology and should be discouraged. Possibly by the autopilot. > However if a few sources/sinks dominate, then channels may regularly >become biased requiring more maintenance. Now you¹re bringing up even more important question. If we had balanced payments, LN could function without touching blockchain ever again indefinitely. Skewed traffic is a big problem. Re-balancing won¹t be of use here because having a fixed nodes¹ balances, there is only a limited max flow that can be pushed in a particular direction. I believe autopilot could mitigate the problem. Please, find my argument at the bottom of [1]. [1] https://github.com/lightningnetwork/lnd/issues/677 Best, Dmytro From: Olaoluwa Osuntokun <laol...@gmail.com> Date: Tuesday, 3 July 2018 at 22:13 To: Dmytro Piatkivskyi <dmytro.piatkivs...@ntnu.no> Cc: "lightning-dev@lists.linuxfoundation.org" <lightning-dev@lists.linuxfoundation.org> Subject: Re: [Lightning-dev] Rebalancing argument Hi Dmytro, Thanks for bringing this up! Sometime last year when I was at a developer meetup that cdecker also attended, we briefly discussed a similar question. We we're discussing if "active rebalancing" was actually ever really necessary. >From my PoV, active rebalancing is rebalancing done for the purpose of being able to send/recv a particular payment. On white board, cdecer sketched out a similar argument as to Lemma 2 in that paper you linked: namely that there will exist an alternative path, therefore active rebalancing isn't necessary. IMO, in a world pre-AMP, it is indeed necessary. Consider a node Bob that wishes to receive a payment of 0.5 BTC. Bob has two channels, one with 2 BTC max capacity, and the other with 1 BTC max capacity. If channel 1 only has 0.2 available for him to receive, and channel 2 only has 0.3 available for him to receive, then without active rebalancing, he's unable to receive the payment. However, if he completes a circular payment from channel 1 to channel 2 (or the other way around), then he's able to receive the payment (under ideal conditions). In a world post-AMP, then this would seem to no longer apply. Alice the sender may be able to utilize the aggregate bandwidth of the network to send minimally two payment flows (one 0.2 and one 0.3) to satisfy the payment. As a result, active rebalancing isn't needed as payments can be split up to fully utilize the payment bandwidth at both the sender and the receiver. > total balances of nodes in the network define the feasibility of a >particular > transaction, not the distribution of balances. With multi-path payments this is precisely the case! However, there might be an argument in favor of "passive rebalancing". I define passive rebalancing as rebalancing a node carries out independent of needing to send/receive payments themselves, in order to ensure an equilibrium state amongst the available balances of their channels. In this case, equilibrium means being able to recv as much as you can send on all your channels. The argument here is that by maintaining this balance, one is likely to reduce the number of routing failures from failed HTLC forwarding, as the channel is equally likely to be able to carry an HTLC in either direction. One relevant detail w.r.t to the necessity of active rebalancing is the directionality of payment flows in the network. If payment flows are more or less balanced (kinda like the ideal world Byran Vu describes in the post [1]), meaning people are sending out as much as they receive (so they get their paycheck streamed to them over LN, then stream BitFlix w/ that), then it's possible passive rebalancing isn't really necessary. However if a few sources/sinks dominate, then channels may regularly become biased requiring more maintenance. Also thanks for bringing this paper to my attention! Haven't yet read it in full yet, but happy to discover that this isn't completes new territory and is a problem that's been explored in the existing literature. [1]: https://blog.lightning.engineering/posts/2018/05/30/routing.html <https://blog.lightning.engineering/posts/2018/05/30/routing.html> -- Laolu On Sun, Jul 1, 2018 at 5:21 AM Dmytro Piatkivskyi <dmytro.piatkivs...@ntnu.no> wrote: Hi everyone, I have been working academically on the Lightning network for a while now. I didn¹t not participate in the list to form my own vision of what it should be. So please, bear with me if I¹ll be saying nonsense sometimes. There has been a lot of discussion on sending cycle transactions to oneself to Œre-balance¹ the network. On LN mailing list <https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-February/00 1005.html> [1] or numerous places elsewhere. There has been even a paper suggesting a smart mechanism to do the re-balancing (see Revive or Liquidity network [2]). My question is what do we actually get from it? [3] states that the distribution of funds in channels does not really affect the network liquidity. I can see cheaper fees or shorter paths if the network is kept balanced. But don¹t you think that a smart fee strategy will do the job? To save your time, [4] explains the gist from [3]. [1] https://lists.linuxfoundation.org/pipermail/lightning-dev/2018-February/001 005.html [2] https://www.reddit.com/r/ethereum/comments/7bse33/were_very_happy_to_announ ce_the_liquiditynetwork/ [3] https://arxiv.org/abs/1007.0515 [4] https://medium.com/@dimapiatkivskyi/why-would-you-re-balance-a-payment-netw ork-796756ad4f31 _______________________________________________ Lightning-dev mailing list Lightning-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev _______________________________________________ Lightning-dev mailing list Lightning-dev@lists.linuxfoundation.org https://lists.linuxfoundation.org/mailman/listinfo/lightning-dev