I don’t think you get stuck HTLCs when circular rebalancing. I’ve only ever either been successful, or have had the payment time out and fail (or a few other errors like no route). I’m not sure about knocking other peers channels out of balance. When you preform a circular rebalancing, you typically bring at least two channels into balance by sending a transaction to even them up. I suppose if it’s a route with a lot of hops there could be channels in between that become unbalanced but that’s definitely not a critical issue and is something each individual node needs to account for when setting their fees. How does peerswap + liquid work without affecting your peers channel balance? Doesn’t sound right to me.
Circular balancing absolutely messes with your other peers. Peerswap involves only one Lightning invoice directly to your peer, 0 fees, and one on chain transaction.
You should take a look at the paths on your circular balances, they will involve other nodes you're not even connected to but are connected to your peers and those channels are the ones that you need for routing too.
Ah, I understand now. A force close only requires one on chain transaction too. How do I get my sats back into my other lightning channel I was trying to balance with? The benefit of circular rebalancing is that you can optimize your channel efficiency without going back to L1 or Liquid.
Every lightning transaction messes up peers channel balance. If you balance your channel, you are unbalancing someone else.
That’s not necessarily true. You could balance your channel, and also balance someone else’s. In fact, since channels are shared, that’s exactly what you do every time your circular rebalance.
Yep, you are right. The affect isnt neccessarily unbalancing. But every transaction does affect other's channel balances. So, is there a way to determine, when doing this, if the transaction will be a net positive to the network?
Technically you fix one side 🤣, and mess up another channel somewhere else. You could by chance fix another channel. Its just everyone rebelling all the time 😅
You fix at a minimum two sides. Think about this. I have a channel with you. You have 0.1 BTC, I have 0.9 BTC. I rebalance through you. You now have 0.5 BTC in your side of the channel, and I have 0.5 BTC in my side. Your side of the channel, and my side of the channel, are both now in balance. What’s even better is when I do it really efficiently and find another peer who had 0.1 BTC on their side of the channel too. If I use them as the destination channel, I can make their balance 0.5 too, and now all three of us are balanced. Sure, there might be hops along the way which I cannot see beforehand which may become unbalanced. But they charged me a fee to route through them, just like they would for a normal payment. If that fee isn’t worth their trouble or supposed “risk”, they can raise it or make their channel non-routing.
“Net positive to the network” isn’t the way that I think about it. People need to act based on their own incentive structures. This isn’t going to work if we need to rely on altruism to effectively route payments and balance channels. If you don’t want your channel to be part of my circular rebalance, perfect. Don’t let people route through your channel then. Make it a private channel which doesn’t support routing and isn’t part of my graph. There’s no other way to prevent circular rebalancing behavior from occurring because it’s fundamentally no different than routing a normal payment. If you do want your channel to be part of my circular rebalance, that’s also perfect. Set your fee rate, and I’ll decide whether it’s worth it for me to pay you to preform that service for me. That’s a free market for routing and fee collection; and that’s a model which can win.
Yep, except a direct payment to a peer with a swapin/out. That's perfection.
That’s just an on chain transaction with extra steps.
When do e directly with a peer, it's the only way balancing should be done. Everything else is a circle jerk. An endless round robin circle jerk. I'm not talking about using Boltz. 👇 https://github.com/ElementsProject/peerswap
This is still in Beta. Long way to go to make it best practice.
LND and CLN are also in Beta...
But that’s not a “rebalance”. That’s a lightning payment to a peer, where you receive in return an on chain UTXO or a liquid UTXO. You’re sending a payment out of lightning, and you would have to have someone either directly receive your on chain UTXO or liquid UTXO, or swap it back for lightning liquidity and then route to the channel it would’ve settled in anyway. So unless your goal is just to swap out onto the main chain or liquid, it doesn’t accomplish the same thing as circular rebalancing, or it does so in ultimately the same manner as a regular rebalance with a bunch of extra steps along the way.
It is the very definition of a rebalance. Circular balancing is and always has been a reckless hack.