Watchtowers make mobile wallets more powerful (or wallets that are not online 24x7). They keep track of channels for the client.
There is a nice podcast with Conner Fromknecht about it: https://stephanlivera.com/episode/83
At a high level, the lookout service receives input via two sources: block events and it's database. Incoming state updates are continually written to the database, and are made available to the lookout as soon as the tower successfully persists the encrypted blob. As new blocks come in, the tower searches for any breach hints matching the txid prefixes contained in the newly found block. If any matches are generated from the query, the lookout service will dispatch an attempt to decrypt and sweep the transaction on behalf of the user.
Handles the responsibility of monitoring the chain for possible breaches and responding by decrypting and broadcasting any justice transactions that its clients had previously uploaded.
Watchtower / server , standalone
Receives and stores encrypted blobs from clients, this represents that second primary service enabling the tower to act on behalf of the tower's clients.
Watchtowers have a "sweep fee". The way watchtowers work is that you give them an encrypted Bitcoin justice transaction getting your funds back in the case of a breach. When they see that evil thieving transaction on the chain, that transaction reveals the decryption key and they decrypt and broadcast the transaction.
LND had watchtowers since 0.7.
Setup instructions here: https://gist.github.com/Jorijn/fc509a34c87108916335e5ef9f6c8c42
- breach monitoring
- Merged on 2019-01-16 : https://github.com/lightningnetwork/lnd/pull/2448 (This PR does not expose the watchtower configuration options in LND's config, it only adds the struct that will later be embedded. Further, the configuration options are only available in experimental builds as there are few moving parts of the protocol that should be solidified before attempting to operate a tower.)
- Merged around 2019-03-19: https://github.com/lightningnetwork/lnd/pull/2618
- "watchtower/wtwire/features: make wtwire features uniform" https://github.com/lightningnetwork/lnd/pull/2605
- "watchtower/wtclient: weight + sweep pkscript fixups" https://github.com/lightningnetwork/lnd/pull/2604
- "watchtower: client justice transaction creation + blob encryption" https://github.com/lightningnetwork/lnd/pull/2516
- "watchtower/multi: send connection features + chain hash in Init" https://github.com/lightningnetwork/lnd/pull/2606