Lightning Network enables fast and cheap bitcoin payments. To send or receive payments via lightning, you need to have at least one payment channel that connects you to the network. Once a payment channel is opened, paying via lightning doesn't require on-chain transactions. However, opening and closing channels do require on-chain transactions, making these actions expensive and slow.
Lightning services make great efforts to optimize how and when channels are opened and closed. Turbo channels are one such optimization. At the current moment, they are essential for providing a convenient user experience, which is why they have been widely implemented in self-custodial lightning wallets. However, they do have some trade-offs.
In the ideal scenario, you already have well-funded channels at the moment of making or receiving a lightning payment. Unfortunately, this is not always the case. Sometimes, the opening of a channel happens at the moment of the payment itself. For example, this may occur during the wallet onboarding: you download a lightning wallet, want to load it using the lightning network, and start making payments immediately. Because you don't have any channels yet, a payment channel must be opened on the fly.
For a complete trust-less experience, you should wait for the opening transaction to have three confirmations before using the channel and start making payments. Otherwise, your counterparty in the channel could make a double-spend attack on you by invalidating the opening transaction. Waiting 30 minutes for the channel to be confirmed has significant usability limitations: the sending wallet won't complete the payment during this time and you won't be able to make any payments right away.
This clash between self-custody and UX is an open problem of the Lightning Network, and different services handle it in different ways.
In the case of Muun, this situation is certainly a crossroads. Self-custody and usability are both core values of Muun Wallet, and we make all product decisions with them in mind. In this case, we believe we can't really choose between usability and UX in your name. For this reason, and only until the lightning ecosystem develops a better solution, we decided to add a setting where you can choose to enable or disable turbo channels at your preference.
So what should you do with this setting?
It really depends on your preferences. When transactions require the use of turbo channels, there is a limited window of time where you trust Muun. Specifically, during that window of time, you trust Muun will not execute a - very public! - double-spend attack. If you are not okay with this, you should disable turbo channels.
You do need to know, however, that turbo channels allow all payments to settle instantly and make your money available to spend immediately. This is what most lightning users expect, so turbo channels are enabled by default. If you consider turbo channels to be beneficial for your use case, there's nothing you need to do about this setting.
If you still have any doubts about this and would like to talk with us, write to us at email@example.com. We are always happy to know what you think and clear any doubts.
This attack cannot happen secretly because it requires Muun to deliberately make an on-chain transaction. If Muun actually performs this attack, everyone would notice it and its reputation would probably be ruined forever. ↩︎