LNURL für Lightning Wallets

This post is also available in: Englisch

LNURL sind erweiterte Funktionen und Anwendungen, welche über die reine Zahlungsabwicklung bei Lightning Wallets hinausgehen.

LNURL ist ein Protokoll für die Kommunikation zwischen Lightning-Wallets und externen Anwendungen sowie Diensten von Drittanbietern.

Diese Funktionen können sein:

 

Mit Hilfe von LNURL ist eine vereinfachte Interaktion zwischen dem Zahler und dem Zahlungsempfänger möglich.

In dem folgenden Beitrag werden die möglichen Funktionen kurz vorgestellt und sollen somit eine Anregung für Entwickler sein, eigene Anwendungen auf Basis von Lightning zu realisieren.

Ein Dienstanbieter generiert einen bech32 codierten https Aufruf über einen einfachen http-JSON Befehl, der mit LNURL beginnt und als verschlüsselter QR-Code dem Nutzer angezeigt wird.

Wenn der Nutzer eine Lightning Wallet verwendet, welche LNURL unterstützt, so kann er ganz einfach den QR-Code scannen und die entsprechende Funktion nutzen.

LNURL Withdraw

Möchte man als Zahlungsempfänger eine Lightning Zahlung erhalten, so muss eine Rechnung erstellt werden, welche dem Zahler übermittelt wird.

Hat ein Nutzer einen Anspruch auf Erhalt einer Zahlung, so muss ohne LNURL erst einmal eine Rechnung seitens des Zahlungsempfängers erstellt werden. Dieser sendet dann diese Zahlungsanforderung (Rechnung) inkl. Betrag und Verwendungszweck an den Zahlungspflichtigen und wartet auf den Zahlungseingang.

Der Ablauf kann nutzerfreundlicher gestaltet werden, wenn der Zahlungspflichtige für den Zahlungsempfänger diese Zahlungsanforderung erstellt.

Dies ist dann sinnvoll, wenn ein Nutzer sein Guthaben abheben (withdraw) möchte.

Ein typisches Anwendungsbeispiel ist ein Guthaben auf einer Wallet, welches abgehoben werden soll. Zum Beispiel, um es auf eine andere Wallet zu übertragen.

Ebenso kann der Nutzer durch Aktivitäten sich ein Guthaben verdient haben, welche jetzt ausbezahlt werden sollen.

Der Anwender erhält einen QR Code angezeigt, der mit der LNURL geeigneten Lightning Wallet gescannt wird und der Betrag wird auf der Wallet gutgeschrieben.

Zu Demonstrationszwecken eignen sich Faucet-Seiten, bei denen man kostenlos ein paar Satoshi erhalten kann.

Um den Ablauf zu illustrieren, kann man bei https://lightning-faucet.com/

Kostenlos ein paar Satoshi erhalten.

Unter Withdraw kann Lightning Guthaben angefordert werden.

Dies geht durch das Senden einer Lightning Rechnung oder per LNURL-Withdraw:

 

LNURL Withdraw
LNURL Withdraw

Sollte diese Faucet über ausreichendes Guthaben verfügen, so kann man sich ein paar Satoshi kostenlos abholen.

Eine weitere Möglichkeit ist per: https://paywall.link/to/26d69d/web

Dort wird Dir folgende Seite angezeigt.

 

LNURL Withdraw kostenlose Satoshi
LNURL Withdraw

Scanne mit der Receive bzw. Withdraw-Funktion Deiner Lightning Wallet den QR-Code und erhalte ein paar Satoshi zu Testzwecken.

LNURL-Auth

Mit Hilfe von LNURL-Auth lassen sich Autorisierungen, Registrierungen oder Anmeldungen bei externen Diensten und Webseiten vornehmen. Der Vorteil für den Anwender ist es, dass keine persönlichen Informationen preisgegeben werden müssen.

Ein Anwendungsbeispiel findet sich bei der Anmeldung bei dem Dienst lapps.

https://www.lapps.co/lightning-auth

Man erstellt über seinen eigenen Node eine Rechnung in Höhe von einem Satoshi und gibt im Verwendungszweck das Wort Lapps ein.

Die Erstellung der Rechnung dient ausschließlich zur Autorisierung und eine Zahlung der Rechnung erfolgt nicht.

Die so generierte Rechnung zum Beispiel:

lnbc10n1pwu42cgpp5y7h7dw6anywz98ukqu8mxjagg6k7u257l8tznyhps5zvk0r79vwsdpqd3s……

wird in das Feld „Lightning Payment Request“ eingetragen.

 

LNURL-Auth
LNURL-Auth

Danach kann optional ein Usernamen und die Email angegeben werden.

Die Rechnung ist der Login, wenn man sich erneut einloggen will.

Wer einen eigenen Lightning Node betreibt, verfügt somit über eine eindeutige Lightning Node-ID.

Diese Lightning Node-ID verfügt über keinerlei persönliche Informationen und kann per LNURL-Auth als Berechtigungsnachweis verwendet werden.

Somit kann jede Person seine Zugangsberechtigung mithilfe eines Lightning-Knotens nachweisen. Es ist somit kein E-Mail / Passwort Kombination oder ein Social-Media Account erforderlich.

Die Lightning-Node ID ist der Nutzername. Den Nachweis darüber, dass man der Eigentümer dieses Nodes ist, kann durch eine 1 Satoshi Transaktion nachgewiesen werden.

Der Dienstanbieter gelangt somit an keine persönlichen Daten des Nutzers. Ihm ist nur bekannt, dass Du die berechtige Person bist, aber nicht wer Du bist.

 

LNURL login

Auf der Seite https://test.etleneum.com/#/account kann per lnurl login der Zugang autorisiert werden.

Diese Anwendung funktioniert nur mit Lightning Wallets, welche LNURL-Auth unterstützen.

 

LNURL login
LNURL login

Der QR-Code kann gescannt werden oder die Adresse mit dem Klick auf den QR-Code „Adresse des Links kopieren“ übernehmen und in eine LNURLfähige Lightning Wallet einfügen.

Zum Beispiel in die lntxbot-Wallet.

 

Ein Bild, das Screenshot enthält. Automatisch generierte Beschreibung

Nachdem der Link in den Bot gepostet wurde, ist man in der gleichen Sekunde bei Etleneu eingeloggt.

Bei der Seite Bitcoiners.best sind der Login per LNURL dann wie folgt aus:

 

LNURL Pay

Bei Lightning lassen sich keine statischen Rechnungen per QR Code erstellen.

Denn bei Lightning besteht jede Zahlung aus einer Kombination von Hash und Preimage. Dies dient dem Nachweis der Zahlung und der Sicherung des Zahlungspfades über die Beteiligten Payment Channels.

Somit kann kein statischer QR Code auf seine Webseite oder auf eine Rechnung gedruckt werden, um Zahlungen zu erhalten. Jede Rechnung muss individuell und speziell für die eine Zahlung erstellt werden.

Entsprechend erstellt der Empfänger der Zahlung eine Rechnung und sendet diese an den Zahler.

Mit Hilfe von LNURL-pay kann der Vorgang aber umgedreht werden.

Nicht der Zahlungsempfänger stellt eine Rechnung, sondern der Zahler sendet dem Empfänger eine Aufforderung eine Rechnung zu erstellen.

Bei LNURL-Pay ist es so, dass der User einen QR-Code angezeigt wird, welcher ein https get Anfrage erstellt.

Die Lightning Wallet des Zahlers fordert über den QR Code die Metadaten zur Zahlung an.

Der Server erstellt dann eine Rechnung mit dem korrekten Betrag und Verwendungszweck und sendet diese Angaben an die Wallet. Diese Angaben werden dann in der Wallet angezeigt und der Zahler kann die Zahlung ausführen.

Somit lassen sich Zahlungen mit einer Smartphone-Wallet und Geräten und Diensten in der realen Welt realisieren.

Dieser statische QR-Code kann auf Rechnungen gedruckt werden, an einer Schaufensterscheibe angebracht oder neben den Produkten auf der Speisekarte stehen.

Der Straßenmusiker kann neben sich ein Schild mit dem statischen QR-Code aufstellen und der Spender kann dann in der App entscheidet, was er Spenden will.

lnurl-Channel

Wenn der eigene Node auf einem Telefon oder hinter einer Firewall ausgeführt wird, gibt es keine öffentliche IP-Adresse und somit kann ein anderer Knoten keine direkte Verbindung herstellen. Dies ist aber notwendig, wenn jemand einen Kanal zu Dir eröffnen möchte. Dies kann gelöst werden, indem vorher selber einen Kanal eröffnet.

Per lnurl-channel wird dieser Vorgang automatisiert. Du scannst einen QR-Code, dann stellt die eigene Wallet automatisch eine Verbindung zum Node her und wartet, bis der Node einen Kanal zu Dir öffnet.

 

Lightning Wallets mit LNURL Unterstützung

Folgende Lightning Wallets unterstützen LNURL bzw. Funktionen von LNURL

 

Wallet lnurl-channel lnurl-auth lnurl-withdraw lnurl-pay
Bitcoin Lightning Wallet X X X  
BlueWallet     X  
Breez Wallet X   X  
Blixt X X X X
@lntxbot   X X X
lnbits     X  
Phoenix   X X  
Shockwallet X   X  
Wallet of Satoshi     X  
ZAP Wallet     X  
Zeus     X X
Lightning Wallet mit LNURL Unterstützung

 

This post is also available in: Englisch

3 Comments

Leave a reply