Konzept von private-trusted zero-conf Channels

Hallo,

ich möchte euch eine neue private, kostengünstige Verwendungsmöglichkeit der eigenen Routing-Node für Zahlungen unterwegs via Smartphone vorstellen.

Worum es geht: Mit dem Tool „Balance of Satoshis“ (BoS) von Alex Bosworth ist es seit kurzem möglich, private-trusted und zero-conf Channels zu eröffnen. Diese Kanäle werden nicht onchain confirmed und stehen nicht als Routingpfade für Andere im Netzwerk zur Verfügung, d.h. sie existieren lediglich als Vereinbarung (eine Art „IOU“) zwischen der Routing-Node und dem Peer (hier: Smartphone-App) und werden auf der Routing-Node intern verrechnet. Das Prinzip ähnelt dem CLN-Äquivalent: Hosted Channels

Vorteile von private-trusted, zero-conf Channels:

  • Sicherheit: mobile App benötigt keinen Zugriff (Verbindung / Berechtigungen) auf die Routing-Node
  • Kostenersparnis: keine onchain Kosten bei „Channel-Eröffnung“ und „Schließung“ (auch im Fehlerfall), der Channel wird einfach durch „abandonchannel“ auf der Routing-Node „vergessen“
  • Non-custodial für den Eigengebrauch

Nachteile von private-trusted, zero-conf Channels:

  • Das Accouting der Routing-Node kann beeinflusst werden (Balance wird durch den Schattenchannel aufgebläht, Routinggebühren durch Eigennutzung entstehen)
  • „Nachfüllen“ des Schattenchannels durch manuelle Invoices / Keysends (nur möglich wenn Blixt Wallet eine Node mit weiteren, öffentlichen Channels ist): Sollte der Channel einmal durch Zahlungen auf Seiten der Blixt Wallet leer sein, müssen Sats wieder von der Routing-Node auf die Blixt Wallet-Seite geschoben werden, um weitere Zahlungen zu ermöglichen. Dies kann durch Invoices erfolgen, bedarf aber der Interaktion der Routing-Node. Sollte es eine größere Reise sein, bedenkt die Größe des Channels sowie die Balance auf Blixt-Seite im Vorfeld. Es können theoretisch riesige Channels erstellt werden, das Limit definiert hier die „Local Balance / Outbound Balance“ der Routing-Node!

Was ist dafür notwendig:

Die Routing-Node muss folgende Parameter in der lnd.conf beinhalten:

[protocol]
protocol.option-scid-alias=true
protocol.zero-conf=true

Um einen private-trusted, zero-conf Channel zu erstellen, muss die Blixt Wallet, welche ihrerseits eine eigene LND-Node mit Neutrino-Backend ist, mit der Routing-Node bekannt gemacht werden, um anschließend den Channel eröffnen zu können.

Settings → Show Lightning Peers → + (Routing-Node hinzufügen)

Die Blixt Wallet besitzt in den neusten Versionen einen eingebauten Channel-Acceptor für zero-conf Channels. Der Pubkey der Routing-Node muss der Blixt Wallet bekannt sein, um diese Art von Channels zu akzeptieren:

„Settings“ → „Set zero conf peers“.

Dort wird der Pubkey der Routing-Node eingetragen. Anschließend ist ein App-Neustart notwendig.

Die Routing-Node erstellt nun einen private-trusted, zero-conf Channel zur Blixt Wallet. Als Beispiel werden 10M Sats zur Verfügung gestellt.

Technische Details: BoS verwendet zur internen Erstellung dieses Channels verfügbare UTXOs, diese werden für ca. 10 Minuten gelockt (blockiert) und anschließend wieder freigegeben. Als Hinweis: Optional kann BoS auch von externen Hardware Wallets mittels Switch --external-funding gespeist werden (signed pbst), sodass keine internen UTXOs blockiert werden. Die verwendete set-fee-rate ist hierbei unerheblich, denn die Transaktion wird nicht veröffentlicht.

bos open [pubkey] --type private-trusted --avoid-broadcast --set-fee-rate 1 --amount 10000000

Die Blixt Wallet App muss dabei aktiv und empfangsbereit sein, um den Channel zu akzeptieren. Der Channel ist sofort einsatzbereit, da keine onchain confirmation abgewartet werden muss. Durch eine Invoice, erstellt durch die Blixt Wallet und „gezahlt“ von der Routing-Node, kann die Channelseite der Blixt Wallet „betankt“ werden. Diese Sats stehen nun für Lightningzahlungen zur Verfügung.

Das Schließen oder besser gesagt das Vergessen des Channels ist durch den Befehl lncli abandonchannel ... möglich. :warning: Hinweis: Blixt Wallet bietet diese interne Funktion zum heutigen Stand noch nicht an. Es wird derzeit daran gearbeitet.

:warning: Allgemeine Hinweise: Diese Art von Channel ist noch sehr experimentell und in LND nur durch etwas „hacking“ seitens BoS möglich. Es erfordert ein wenig Detailwissen in Sachen LND, lncli auf Kommandozeile und dem Routing-Node-Konzept allgemein.

Persönlich würde ich dieses Konzept nur für den Eigenzweck und ggf. noch für Familienmitglieder einsetzen, nicht jedoch für fremde Dritte, da die Funds der eigenen Node verrechnet werden. Ebenso andersherum würde ich persönlich nicht einen Schattenchannel mit einer fremden Routing-Node oder vermutlich zukünftig LSPs (Lightning Service Providern) eingehen, denn es besteht ein Vertrauensverhältnis, da die Node im Zweifel die Funds eines ggf. bezahlten Schattenchannels einbehalten könnte.

2 „Gefällt mir“