2021-11-15 17:47:56 +01:00
|
|
|
<!-- https://mermaid-js.github.io/mermaid-live-editor/ -->
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
# Bitcoin Lightning
|
|
|
|
|
|
|
|
Schnell, preiswert, dezentral, anonym?
|
|
|
|
|
|
|
|
https://lightning.network/
|
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
## Einführung
|
|
|
|
|
2021-11-16 17:21:28 +01:00
|
|
|
* Welches Problem soll Bitcoin Lightning lösen?
|
|
|
|
* die grundlegende Idee dahinter
|
|
|
|
* ein kurzer historischer Rückblick
|
2021-11-15 17:47:56 +01:00
|
|
|
* Wo steht Bitcoin Lightning heute?
|
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
### Welches Problem soll Bitcoin Lightning lösen?
|
|
|
|
|
|
|
|
* die Sicherheit des Bitcoin-Netzwerkes bringt Nachteile bei der Zahlungsabwicklung
|
|
|
|
* Anzahl der Zahlungen pro Sekunde zu gering
|
|
|
|
* Gebühr bei kleinen Beträgen zu hoch
|
|
|
|
* einzelne Zahlung nicht sofort abgeschlossen
|
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
### Die Idee dahinter - Kanal
|
|
|
|
|
2021-11-16 16:58:15 +01:00
|
|
|
* zwei Nutzer erzeugen einen Kanal und legen jeweils einen Betrag an eines der Enden das Kanals
|
2021-11-15 17:47:56 +01:00
|
|
|
* wenn der Kanal geöffnet ist, können Beträge von der einen Seite zur anderen Seite transferiert werden
|
|
|
|
* wird der Kanal geschlossen, bekommen die Nutzer den Betrag ihrer Seite des Kanals gut geschrieben
|
|
|
|
|
|
|
|
![RC](images/channel1.png)
|
|
|
|
<!-- graph TD
|
|
|
|
A(Alice - 10sat) --- |Channel| B(Bob - 5sat) -->
|
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
### Die Idee dahinter - Routen
|
|
|
|
|
|
|
|
* Zahlungen können gegen eine Gebühr geroutet werden
|
|
|
|
|
|
|
|
![RC](images/channel2.png)
|
|
|
|
<!-- graph LR
|
|
|
|
A(Alice - 10sat) --- |Channel| B(Bob - 5sat) --- |Channel| C(Kim - 4sat) -->
|
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
### Historischer Rückblick
|
|
|
|
|
|
|
|
* die grundlegende Idee geht auf Satoshi Nakamoto zurück
|
|
|
|
* mit der vermehrten Nutzung von Bitcoin wurde das Problem der Skalierbarkeit drängender
|
|
|
|
* ab 2016 entstanden erste Implementierungen (lnd, c-lightning, eclair)
|
2021-11-16 16:58:15 +01:00
|
|
|
* zur effizienten Umsetzung brauchte man das Segregated-Witness-Update (2017)
|
2021-11-15 17:47:56 +01:00
|
|
|
* Rusty Russel entwickelte auf Grundlage des Whitepapers einen RFC-Standard für das Lightning Netzwerk
|
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
### Wo steht Bitcoin Lightning heute?
|
|
|
|
|
|
|
|
* über 16000 öffentliche Knoten - https://explorer.acinq.co
|
|
|
|
* Beta-Status
|
|
|
|
* sehr aktive Community
|
|
|
|
* im produktiven Einsatz in El Salvador
|
2021-11-16 16:58:15 +01:00
|
|
|
* Entwicklungsbedarf beim Routing
|
|
|
|
* Pickardt Payments
|
2021-11-15 17:47:56 +01:00
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
## Aufbau
|
|
|
|
|
2021-11-16 16:58:15 +01:00
|
|
|
* Wie funktioniert es? (etwas detailierter)
|
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
### Funktionsweise
|
|
|
|
|
|
|
|
* es gibt die genannten Zahlungskanäle (uni- bidirektionale)
|
|
|
|
* mit Hilfe des Kanals können sich zwei Knoten durch Benutzung einer 2-2-Multisignatur-Wallet Geldbeträge hin- und herschicken
|
2021-11-16 17:13:24 +01:00
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
2021-11-16 16:58:15 +01:00
|
|
|
* der Kanal wird durch eine Funding-Transaktion geöffnet
|
|
|
|
* nach jeder Zahlung wird der aktuelle Zustand in einer Commitment-Transaktion festgehalten
|
|
|
|
* schließt eine(r) den Kanal wird eine Settlement-Transaktion veröffentlicht
|
2021-11-16 17:13:24 +01:00
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
2021-11-16 16:58:15 +01:00
|
|
|
* diese speichert den finalen Saldo beider Parteien aus der letzten Commitment-Transaktion in der Bitcoin-Blockchain
|
|
|
|
* das Protokoll zur Verwaltung eines Kanals ist mithilfe von HTLCs konstruiert und soll betrügerisches Verhalten bestrafen
|
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
Hashed Timelock Contract (HTLC)
|
|
|
|
|
|
|
|
* ist eine Klasse von Transaktionen
|
|
|
|
* der Sender muss entweder einen kryptographischen Beweis vorlegen oder bis zu einem bestimmten Datum warten
|
2021-11-16 17:13:24 +01:00
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
2021-11-16 16:58:15 +01:00
|
|
|
* besteht aus zwei Komponenten:
|
|
|
|
* Geheimnis (Secret) - zufällige Zahl (Pre Image) welche gehasht ist
|
|
|
|
* Zeitschloss
|
2021-11-16 17:13:24 +01:00
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
2021-11-16 16:58:15 +01:00
|
|
|
* wer das Pre Image kennt besitzt den kryptographischen Beweis um die Transaktion zu tätigen
|
|
|
|
* werden in bidrektionalen Kanälen verwendet
|
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
### Routing
|
|
|
|
|
|
|
|
* ermöglicht Zahlungen zwischen beliebigen Knoten, wenn es eine Route gibt
|
|
|
|
* Idee des Onion-Routing:
|
|
|
|
* Sender muss zuerst Pfad ermitteln
|
|
|
|
* für jeden Hop können Transaktionen verschachtelt werden
|
|
|
|
* Knoten können für die Dienstleistung des Geld weiterleitens eine Gebühr erheben
|
|
|
|
* die Gebühr wird über das Gossip-Protokoll dem Netzwerk mitgeteilt
|
2021-11-15 17:47:56 +01:00
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
|
|
|
|
## Verwendung
|
|
|
|
|
|
|
|
* lntxbot
|
|
|
|
* Bluewallet
|
|
|
|
* Phoenix
|
|
|
|
* RaspiBlitz
|
2021-11-16 16:58:15 +01:00
|
|
|
* Casa Node
|
|
|
|
* Sphinx
|
|
|
|
* Podcast 2.0
|
2021-11-15 17:47:56 +01:00
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
## Diskussion
|
|
|
|
|
2021-11-16 16:58:15 +01:00
|
|
|
* Dezentralität
|
|
|
|
* Sicherheit
|
2021-11-15 17:47:56 +01:00
|
|
|
* Entwicklungsstand
|
2021-11-16 16:58:15 +01:00
|
|
|
* Offline-Zahlungen
|
|
|
|
* Privatsphäre
|
2021-11-15 17:47:56 +01:00
|
|
|
|
|
|
|
---
|
|
|
|
<!-- fg=green,bg=black -->
|
|
|
|
|
|
|
|
## Links
|
|
|
|
|
2021-11-16 16:58:15 +01:00
|
|
|
* https://lightning.network
|
|
|
|
* https://github.com/lightning/bolts
|
|
|
|
* https://github.com/fiatjaf/lnurl-rfc
|
|
|
|
* https://explorer.acinq.co/
|
|
|
|
* https://github.com/rootzoll/raspiblitz
|
|
|
|
|