Since segwit seems to be on the verge of activation, we thought it would be a good time to share some news.
Making LN user-friendly
The question of user experience is one that comes often with Lightning. We gave it a shot by implementing an LN-ready android application, available on google play for anyone to try.
Eclair Wallet is an android wallet based on our eclair implementation. It is also one of the first segwit wallets! It works on LN testnet for now. You can download it here.
When designing this wallet we wanted to make the experience as pain-free and transparent as possible. That’s why the LN functionality is opt-in, meaning that by default the wallet behaves like a regular spv on-chain wallet. All on-chain transactions sent by this wallet are segwit transactions, thus benefitting from a fee discount compared to legacy transactions. Of course, because segwit is fully backward compatible, our wallet can send/receive transactions to/from all bitcoin wallets, even non-segwit ones.
On the main screen, on-chain and off-chain transactions appear in the same transaction history, identified by a different icon. Similarly, when you scan a QR-code, the application detects if it is a bitcoin address or a LN payment request, and act accordingly, keeping it as seamless as possible for the user.
So basically, you are free to use the wallet on-chain only, but if you wish to pay less fee and make instant payments, just open one or more channels and you’ll be able to pay through Lightning.
Note that the auto-connect is currently always connecting to the same hardcoded node. This is until some discovery mechanism is put in place.
The other main pain point with LN is the need to monitor the blockchain. The reason for this is to detect if the counterparty misbehaves by publishing an old channel state to the blockchain. For a node running on a server, that is not a big problem since it is always online, but mobile nodes might go offline for days, so how do we deal with this issue?
The need to monitor the blockchain actually only exists if the channel is used in both directions: if you are only paying, any outdated commitment transaction will be more in your favor that the current one, so there is really nothing to do! Which leads to our second design decision: you can only pay with this wallet on LN, not receive funds. We think it is acceptable because the main use case for a mobile app is for paying anyway.
Of course, in the future, we will be able to remove this limitation using the upcoming trustless third-party watchers, but we don’t have them now.
So, once again: there is no need to periodically turn the phone on when you have LN channels, you can leave your phone off for months and your funds will still be there!
This is all fine and dandy, but how do I try it out?
To let you make your first payments, we have created Starblocks, a LN-enabled coffee shop.
The purpose of this website is also to demonstrate how easy it is for merchants and businesses to receive funds through Lightning. We intend to provide merchant services in the future, and will be releasing a stripe-like API and a dashboard soon.