1

Mobile and desktop wallets are nodes that are not connected 24/7 (when the application is closed, computer is powered off, etc...).

The fact that they are not connected 24/7 creates mainly one problem: if a fraudulent node closes a channel with you and sends an outdated CSV transaction, you won't see it and can't invalidate it in time if you don't launch your wallet periodicaly.

A solution to this problem is to send all your CSV transactions to a service (connected 24/7 to the blockchain) and trust him enough to broadcast theses transactions in case a fraudulent node decides to close one of your channels.

And you must really trust this service because if he is affiliated with the fraudulent node you either need to send him a higher fee than the value of the transaction or he will prefer to keep the fraudulent transaction.

The conclusion is that you can't trust such a service.

Is there an other solution to avoid having to trust a third party in such case?


One solution that have been found by the eclair android wallet is to forbid relaying or receiving payments (i.e. you can only send payments). That way an outdated transaction is always in defavor of the fraudulent node. This is obviously not satisfying if you want to have the full functionalities of the Lightning Network.

1

(disclaimer: I'm not an expert on Lightning)

I believe the design for Watchtowers (the services which watch for other parties trying to push an old state to the chain) is such that they're not actually given the channel close transaction.

Instead, they're giving half of the txid to watch for, and an encrypted version of the channel close, using the full txid of the watched transaction as key.

This means they are not actually able to dishonestly close your channel. They can only do so when an invalid state update is published.

0

If you are truly concerned of this, you could make use of a couple of things:

  1. Use a cloud service like Amazon Web Services or Google Compute Engine to run a small instance running a wallet + LN.
  2. Using the Blockstream Satellite to download the blockchain on a desktop computer in your network, which might then send an SMS or other sort of alert to you if it detects a transaction.

Running LN channels assumes you have an internet connection that is 'always' up.

  • I'm not "afraid" of this. That is a real concern for future wallet users. If a user choose to use a desktop wallet, he expects his funds to not get stolen when he goes in vacations for a weekend without his computer. A non-technical user of a mobile / desktop LN wallet should never need to setup such a service. Otherwise either the LN is sentenced to be confined only to technical users or they will need to trust a third party unless a solution is found to do without a third party. My question was about wether such solution exists or not. – Jules Lamur Jul 9 '18 at 15:26
  • I amended "afraid" into "concerned". I guess one option would be to add a script that prevents the bitcoin in the funding transaction to be spent within n days, which is the lifetime of the channel. Neither party would then be able to settle the channel ahead of time. That said, I'm not sure if this is possible at the moment... (i think so, unsure) – BlackBeltBob Jul 11 '18 at 10:27
  • I believe LN channels do require something to be online to watch out for you, but it's sufficient to sync and watch the chain once per day or so - depending on the locktime. – Pieter Wuille Aug 11 '18 at 0:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.