Umbrel und RaspiBlitz Lightning Watchtower einrichten
In diesem Artikel geht darum wie Ihr auf Eurer Umbrel oder RaspiBlitz Fullnode einen Lightning Watchtower einrichten könnt. Das Lightning-Netzwerk stellt eine Second-Layer-Lösung für das Bitcoin-Protokoll dar, um Transaktionen schneller und kostengünstiger durchzuführen, als es auf der Haupt-Blockchain möglich ist. Ein zentrales Konzept des Lightning-Netzwerks sind die sogenannten "Watchtowers", die dazu beitragen, das Netzwerk sicher zu halten. Dieser Blog erläutert das Konzept, die technischen Grundlagen und den Nutzen des Lightning Watchtowers.
Was ist ein Watchtower
Ein Watchtower ist im Grunde genommen ein Netzwerkknoten, der dazu dient, das Lightning-Netzwerk zu überwachen und sicherzustellen, dass alle Teilnehmer ehrlich agieren. Da Transaktionen im Lightning-Netzwerk off-chain durchgeführt werden, besteht die Möglichkeit, dass eine der Parteien versucht, eine alte Transaktion zu veröffentlichen, um betrügerisch mehr Bitcoins zu erhalten, als sie sollte. Der Watchtower stellt sicher, dass dies nicht geschieht.
Technische Erklärung
- Zustandskanäle: Lightning-Netzwerktransaktionen verwenden "Zustandskanäle". Dies bedeutet, dass nur die Eröffnung und Schließung eines Kanals auf der Haupt-Blockchain veröffentlicht werden, während alle anderen Transaktionen off-chain und privat zwischen den beiden Parteien stattfinden.
- Betrugsszenario: Wenn eine Partei versucht, eine alte Transaktion zu veröffentlichen, um betrügerisch mehr Geld zu erhalten, wird dies als "Betrugsversuch" bezeichnet.
- Rolle des Watchtowers: Ein Watchtower speichert verschlüsselte Zustandsupdates von Kanälen. Er kennt jedoch den tatsächlichen Inhalt dieser Updates nicht und kann sie daher nicht entschlüsseln. Trotzdem kann er feststellen, wenn eine alte Transaktion auf der Blockchain veröffentlicht wird.
- Reaktion auf Betrug: Sobald der Watchtower einen Betrugsversuch erkennt, kann er eine Straftransaktion auslösen. Diese Straftransaktion stellt sicher, dass der betrügerische Teilnehmer seine gesamten im Kanal gehaltenen Mittel verliert. Das bedeutet, dass der Betrug nicht nur verhindert wird, sondern die betrügerische Partei auch finanziell bestraft wird.
Nutzen
- Sicherheit: Watchtowers erhöhen die Sicherheit im Lightning-Netzwerk, indem sie betrügerische Aktionen verhindern.
- Vertrauen: Mit Watchtowers können Nutzer des Lightning-Netzwerks sicher sein, dass ihre Transaktionen geschützt sind, auch wenn sie nicht ständig online sind.
- Skalierbarkeit: Da Watchtowers nur dann eingreifen, wenn ein Betrug erkannt wird, reduzieren sie die Notwendigkeit für alle Teilnehmer, ständig alle Transaktionen zu überwachen. Dies erleichtert die Skalierung des Netzwerks.
- Förderung der Ehrlichkeit: Die Existenz von Watchtowers stellt eine Abschreckung für potenzielle Betrüger dar, da das Risiko, alle Mittel zu verlieren, hoch ist.
Vorausetzungen auf der Umbrel Node
Die Umbrel Node sollte auf dem aktuellsten Stand sein und die Lightning Wallet eingerichtet sein. Es benötigt keine Portweiterleitungen da der Watchtower über das Tor Netzwerk agiert. Es müssen natürlich Kanäle vorhanden sein die der Watchtower überwachen kann, ansonsten nützt das Tool nicht viel.
Einrichtung des Watchtowers auf der Umbrel Node
Öffnet Eure Lightning Node und klickt oben rechts auf die 3 Punkte und öffnet die Advanced Settings. Navigiert zum Eintrag Watchtower und öffnet die Einstellungen in dem Ihr darauf klickt.
Aktiviert den Watchtower Service. Im Unteren Feld findet Ihr die Adresse Eures Watchtowers. Dies ist die Serveradresse falls Ihr auf die Lightning Node aufpassen möchtet. Bitte stellt sicher dass Eure Lightning Node auch immer verfügbar ist, und eine aussreichen hohe Onlinezeit hat damit Ihr Euren Job als Aufpasser auch wahrnehmen könnt.
Weiter unten finden wir den Watchtower Client. Diese funktioniert ermöglich uns, dass wir jemandens Node hinzufügen können, damit diese wie oben beschrieben auf unsere Node aufpasst, sollte diese mal Offline gehen. Damit wird verhindert dass ein Betrüger einen alten Chainstate veröffentlich und Eure Node dagegen nicht Einspruch erheben kann da diese Offline ist.
Wir fügen in das Feld die URI unser gewünschten Partners ein der auf uns aufpassen soll. Bitte stellt sicher dass Ihr wenn möglich die Node von jemanden nehmt, den Ihr kennt und vertraut. Die Auswahl im Internet ist nicht so gross, und nehmt bitte nicht irgendeinen Watchtower den Ihr auf einer dubiosen Seite ausgegraben habt. Gerne dürft Ihr hier den Watchtower von uns eintragen. Die Adresse wäre:
0214365a2cf18a3f84c421c648d03bedb021ff74afb95cc7ea0cbbf23b976d1033@yreb4gbnfi5ewbibvpxm2sjdndcsicvwlua2ncjlad2f6h7vgf7eehid.onion:9911
Fügt die Adresse hinzu und klickt auf ADD. Danach könnt Ihr herunterscrollen und auf Save and Restart Node klicken.
Der Watchtower ist bereits eingerichtet und die von Euch eingetragene Node passt nun auf Eure Kanäle auf
Raspiblitz Watchtower Server und Client einrichten
Die Einrichtung auf dem Blitz ist nicht ganz so einfach wie auf der Umbrel Node, aber trotzdem machbar. Stellt zuerst sicher dass Ihr auf der neusten Version 1.9.0 seid und ebenfalls die neusten Lightning Version 16.4-beta installiert ist.
gebt menu
ein und stellt sicher dass die Node auf dem aktuellsten Stand ist:
Loggt Euch per SSH auf Eurem Blitz ein:
ssh admin@interneIP
Watchtower Tor Konfiguration
Wir möchten dass der Watchtower über Tor kommunziert genau wie bei der Umbrel Node. Dazu müssen wir die Ports für den Watchtower in die Tor Konfiguration des Systems eingeben. Öffnet die Datei torrc
mit
nano /etc/tor/torrc
Fügt am Ende der Datei die folgenden Zeilen hinzu:
# Hidden Service for incoming LND WatchTower connections
HiddenServiceDir /mnt/hdd/tor/lndWT9911
HiddenServicePort 9911 127.0.0.1:9911
LND Konfiguration anpassen
Öffnet die LND Konfiguration mit
sudo nano /mnt/hdd/lnd/lnd.conf
und fügt den folgenden Inhalt am Ende der Datei ein:
[Watchtower]
watchtower.active=1
[Wtclient]
wtclient.active=1
startet kurz den LND Service neu mit
sudo systemctl restart lnd.service
Watchtower hinzufügen
stellt sicher dass Ihr nicht als Sudo user eingeloggt sein. die Befehle für Lightning Node müssen als admin ausgeführt werden. Mit wtclient add können wir einen Watchtower nun hinzufügen. Das wäre also:
lncli wtclient add 0214365a2cf18a3f84c421c648d03bedb021ff74afb95cc7ea0cbbf23b976d1033@yreb4gbnfi5ewbibvpxm2sjdndcsicvwlua2ncjlad2f6h7vgf7eehid.onion:9911
Ihr könnt hier auch gerne die Adresse meiner Node verwenden. Startet die LND Node erneut neu mit:
sudo systemctl restart lnd.service
Mit dem Befehl lncli wtclient towers
könnt Ihr überprüfen ob der Watchtower erfolgreich hinzugefügt worden ist:
Der Watchtower der auf uns aufgpasst wurde erfolgreich hinzugefügt.
Debugging
Mit dem folgenden Befehl könnt Ihr schauen ob der Watchtower erfolgreich kontaktiert wird:
sudo tail -f -n 10000 /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log | grep WTCL
Der Watchtower wird kontaktiert. Es gibt aber bei mir nichts zu syncen der der RaspiBlitz bei mir nur zu Testzwecken läuft.
Raspiblitz als Watchtower
Die Grundlegende Einrichtung ist bereits durchgeführt. Damit Ihr die Adresse der RaspiBlitz Node herausfinden könnt, könnt Ihr folgenden Befehle eingeben
sudo
cat /mnt/hdd/tor/lndWT9911/hostname
= hostname, also die Hostadresse der Node inklusive Port, &lncli tower info
= der pubkey der Node
Zusammen wäre das also die Adresse, die Ihr bei anderen Nodes als Watchtower hinzufügen könnt.
Debugging
Mit folgenden Befehl könnt Ihr schauen ob Euer Watchtower auf andere aufpasst:
sudo tail -f -n 10000 /mnt/hdd/lnd/logs/bitcoin/mainnet/lnd.log | grep WTWR
Weitere Befehle für den RaspiBlitz Watchtower
- lncli wtclient -h - listet alle watchtower Client Befehle auf
NAME:
lncli wtclient - Grundbefehl - Anwendung:
lncli wtclient Befehl - Befehle:
add - neuen Watchtower hinzufügen
remove - Watchtower entfernen
towers - zeigt Informationen über alle registrierten Watchtower
tower - zeigt informationen über einen bestimmten Watchtower
stats - zeigt die aktuellen Informationen zu dem Watchtower an
policy - zeigt die Regeln der aktiven Watchtower Verbindung an - OPTIONS:
--help, -h (Hilfe Anzeigen)
Beispiel: mit
lncli wtclient remove 0214365a2cf18a3f84c421c648d03bedb021ff74afb95cc7ea0cbbf23b976d1033@yreb4gbnfi5ewbibvpxm2sjdndcsicvwlua2ncjlad2f6h7vgf7eehid.onion:9911
könnt Ihr den hinzugefügten Watchtower wieder entfernen
Liste Öffentliche Watchtower
Öffentliche Watchtower sind aktuell etwas schwer zu finden. Zudem stellt sich die Frage ob man irgend einer fremden Node vertrauen soll, schliesslich soll sie verhindern dass mit Euren Kanälen Unfug angestellt wird. Das ist kaum möglich wenn eine Node ständig offline ist oder irgendwann wieder vom Netz ist. Deswegen ist es auf jedenfall sinnvoll mehrere Watchtower in Eure Node einzutragen. Fällt ein Watchtower aus, verbindet sich die Node nach einiger Zeit mit einer weiteren, die Ihr angegeben habt.
Eine Liste öffentlicher Watchtower gibt es hier in einem GitHub-Thread . Ausserdem könnt Ihr im Blocktrainer Forum sicher auch Leute finden oder Ihr fragt in den Telegram Kanälen von Umbrel oder RaspiBlitz German.
Das wärs auch schon mit dem Artikel Umbrel und RaspiBlitz Lightning Watchtower einrichten. Ich hoffe Ihr konntet Euren Watchtower erfolgreich einrichten, habt Ihr Fragen, schreibt sie in die Kommentare!