Phoenix implements trusted swaps for users' convenience (to allow easy onboarding and offboarding). But it's not a satisfying solution for the following reasons:
- It uses two on-chain transactions for swap-in where one should be sufficient (one transaction from the user to Acinq followed by a channel open)
- Swap-out feerates are unpredictable (because we may fund the swap-out with unconfirmed previous outputs) which is frustrating for users
- It forces Acinq to use its own utxos, which doesn't scale well and is an operational burden
- If Acinq doesn't have any utxos available and the mempool is completely full, swaps are stuck which is also frustrating for users