IT Trade-offs
Custodial wallet
ACME wallet
Multiple balances (L1 + L2)
Possible solutions
- Only do layer 1
- Show both balances (savings / spending account)
- Keep money in one layer only --> swap
Receiving on both layers
Possible solutions
- Only allow receiving on one layer
- Let user switch between layers
- Propose sensible layer for given amount
- Use L1-fallback-address in L2-invoice
Sending to both layers
Possible solutions
- Only allow sending to one layer
- Close/open a channel (on-the-fly)
- Use swaps
Edge case: Payee displays both options. How should we pay?
L1: Payment is stuck
- Payment cannot be canceled
- Is payment still in mempool?
- Bump fee
LN: Channel reserves
Channel has a reserve of 1% of the total capacity
User cannot send full balance!
Never display that amount as being owned?
Channel reserves may change.
Solution: Abolish channel reserves on user side?
LN: Multiple channels
User has 3 channels with 1'000 sats outbound-capacity each.
Wants to pay 2'500 sats
Solution: MPP (Multi-path-payments)
On-boarding process
- Install Lightning app
- Send on-chain funds to Lightning app
- Open Lightning channel
- Spend / swap out sats
- I can finally receive (some) sats :-)
- Solution: LSP
Lightning Service Provider
- Pioneered by Breez
- Open channel to newly installed wallet
- Even better: Open channel on-the-fly
- Explain fee situation! (--> Spontaneous payments?)
Channel opening cost
- Lightning network fee
- On-chain fee channel opening
- Estimated on-chain fee for channel closing
- Estimated on-chain fees for consolidating UTXOs
- Channel reserves (?)
Spontaneous payments
- Mobile is not online
- User needs to open wallet to pull his funds
- What if user doesn't open app?
- On-chain fallback? Dust payment?