Skip to main content

Sind kleine Zahlungen im Lightning-Netzwerk überhaupt sicher?

Am von

Das Lightning-Netzwerk bietet viele Vorteile gegenüber gewöhnlichen Bitcoin-Transaktionen. Dazu zählen vor allem die extrem niedrigen Gebühren und die hohe Geschwindigkeit – doch auch eine weitere Eigenschaft stößt auf große Beliebtheit: Die Möglichkeit, besonders kleine Zahlungen zu tätigen. Ob man 1, 100 oder 1000 Satoshi versenden will, im Lightning-Netzwerk ist das kein Problem. Mit regulären Bitcoin-Transaktionen wären solche Zahlungen hingegen durch verhältnismäßig hohe Transaktionsgebühren entweder finanziell unsinnig, oder bei besonders geringen Beträgen erst gar nicht so einfach möglich.

Bitcoin, die in einem Lightning-Kanal genutzt werden, sind dabei stets durch die Sicherheit des Bitcoin-Netzwerks gedeckt. Dahinter steckt, vereinfacht gesagt, eigentlich nur das Austauschen und Signieren von Bitcoin-Transaktionen, die allerdings nicht direkt veröffentlicht werden, sondern vielmehr als Absicherung für den Notfall dienen, sofern einer der Teilnehmer nicht kooperieren sollte.

Doch gilt diese Sicherheit auch wirklich uneingeschränkt für alle, insbesondere kleine Zahlungen? Nein, wäre die kurze, aber viel zu knappe Antwort auf diese Frage. An vielen Stellen hört man aktuell, dass kleine Mikrozahlungen nicht gänzlich ohne Vertrauen funktionieren können, doch was ist damit überhaupt gemeint? Dieses recht komplexe, aber für das Verständnis des Lightning-Netzwerks wichtige Thema verdient deshalb eine deutlich ausführlichere und differenziertere Antwort – und genau diese möchten wir heute in diesem „Deep-Dive“ gehen!

Lese-Tipp: Upgrade für Bitcoin & Lightning: Was sind Eltoo und SIGHASH_ANYPREVOUT?

HTLCs

Während die Funktionsweise eines einzelnen Zahlungskanals noch relativ überschaubar ist, wird es bei Zahlungen, die über verschiedene Teilnehmer hinweg geleitet werden, also tatsächlich im „Netzwerk“ stattfinden, etwas komplizierter. Denn irgendwie muss zu jedem Zeitpunkt einer solchen Zahlung sichergestellt sein, dass niemand die anderen Teilnehmer betrügen kann. Der ein oder andere hat in diesem Kontext vielleicht schon einmal etwas von einem HTLC, einem Hash Time Locked Contract gehört.

Hinter diesem abstrakten Namen versteckt sich eigentlich nur ein kleines Mini-Programm, welches direkt in einer Bitcoin-Transaktion stehen kann. Genauer gesagt handelt es sich um ein besonderes Bitcoin Script, das zwei Ausgabebedingungen an einen Bitcoin-Output knüpft: Entweder kann der Empfänger (der Lightning-Zahlung) mit seiner Signatur (und Information über die Zahlung) den HTLC ausgeben, oder der Sender kann dies mit seiner Signatur nach Ablauf einer festgelegten Zeit tun, sollte ein Teilnehmer aus irgendeinem Grund nicht mehr kooperieren.

Die technischen Details sind an dieser Stelle auch gar nicht so wichtig. Für diesen Beitrag relevant ist lediglich die Tatsache, dass die Beträge von Lightning-Zahlungen, solange sie noch „unterwegs“ sind, in solchen HTLCs gesperrt werden, sodass zu jedem Zeitpunkt auf der Route zum Empfänger, niemand um sein Geld betrogen werden kann. Für kleine Zahlungen bedeutet dies allerdings auch, dass nur ein entsprechend kleiner Betrag im HTLC steht, wie hier bei der Zahlung über 5.000 Satoshi von Alice an Bob.

Vereinfachte Animation einer erfolgreichen Lightning-Zahlung mit HTLCs

Das Problem

Schauen wir uns das Beispiel von eben etwas genauer an: Alice möchte Bob eine Zahlung in Höhe von 5.000 Satoshi senden. Die beiden haben keinen direkten Lightning-Kanal miteinander und leiten die Zahlung deshalb über einen dritten Teilnehmer, Oscar, weiter. Nehmen wir an, dass es sich bei Alice um eine böswillige Akteurin handelt, die versuchen wird Oscar zu sabotieren.

Normalerweise, also wenn wir die Betragshöhe mal außer Acht lassen, hätte Alice keine effektive Möglichkeit, Oscar um seine Bitcoin zu betrügen. Sie kann sich zwar weigern, den HTLC abschließend zu finalisieren, doch Oscar könnte in diesem Fall einfach auf den Ablauf der Zeitbeschränkung warten, und den HTLC mit der Schließung des Kanals selbst ausgeben. Dafür muss er zwar eine Transaktionsgebühr bezahlen, aber immerhin erhält er seine Bitcoin zurück. Alice geht in diesem Szenario nicht nur leer aus, sie schädigt durch ihr unkooperatives Verhalten außerdem ihren Ruf im Netzwerk.

Sehr interessanter Punkt auf der Konferenz von @TheBlueMatt über Lightning, der mir bisher nicht bewusst war: HTLCs für Beträge unter der aktuellen L1-Gebührenrate sind nicht vertrauenswürdig, da man genauso viel an Gebühren zahlen würde, um Diebstahl zu verhindern, wie der Wert der Zahlung selbst.

Bedeutet dies, dass in einer wahrscheinlich unvermeidlichen Umgebung hoher Gebühren kleine Lightning-Zahlungen keinen Sinn ergeben? Wenn ja, ist das nicht eine ziemlich große Einschränkung?

@jamesob auf Twitter

Der eben beschriebene Sicherheitsmechanismus verlässt sich also darauf, dass es für Oscar jederzeit möglich und vor allem sinnvoll ist, sich gegen einen manipulativen Teilnehmer zu wehren und Diebstahl zu verhindern. Doch genau diese Sinnhaftigkeit schwindet bei kleinen Beträgen in Kombination mit hoher Nachfrage im Bitcoin-Netzwerk.

Bei einer überdurchschnittlich hohen Gebührenrate von beispielsweise 100 sat/vB wäre die Ausgabe des HTLC bereits doppelt so teuer (ca. 10.000 sat) als dessen eigentlicher Wert (5.000 sat). Oscar würde also sogar Geld verlieren, obwohl er genau das eigentlich verhindern wollte. Selbst bei einer Gebühr von 50 sat/vB würde der HTLC Output in diesem Beispiel noch vollständig von der anfallenden Transaktionsgebühr verschluckt werden und Oscar ginge leer aus.

Fehlende Anreize

Bevor die ersten Bitcoin-Kritiker unter euch nun direkt mit der Mistgabel auf das Dach steigen und das Ende des Lightning-Netzwerks verkünden, müssen wir das eben beschriebene Szenario von zweierlei Seiten entschärfen. Die Realität kann nun mal selten pauschal über einen Kamm geschert werden, und es wäre schlichtweg falsch zu behaupten, dass kleine Lightning-Zahlungen grundsätzlich unsicher wären.

Zunächst sollte verdeutlicht werden, wann der oben vorgestellte Angriff überhaupt von Relevanz ist. Es muss sich nämlich um eine Zahlung handeln, die…

  1. Noch unterwegs und damit noch nicht final abgeschlossen ist.
  2. Nicht besonders wertvoll ist.
  3. Über andere Teilnehmer weitergeleitet wird.

Des Weiteren fehlt selbst bei solchen Zahlungen der praktische Anreiz, den Angriff überhaupt durchzuführen. Denn obwohl wir bisher von „Diebstahl“ gesprochen haben, kann eigentlich gar nicht wirklich etwas gestohlen werden. In unserem Beispiel geht Alice nämlich so oder so mit leeren Händen aus. Sie kann allerhöchstens Oscar finanziellen Schaden zufügen, was aber weder einen direkten finanziellen Vorteil für sie bedeutet, noch wird es Oscar das Genick brechen – es handelt sich schließlich nur um einen relativ kleinen Betrag. Wirklich oft kann Alice diesen Angriff auch nicht durchführen, denn irgendwann gehen ihr dafür die Partner aus.

Soll heißen: Es handelt sich um ein eher theoretisches Angriffsszenario, das keine direkte Gefahr für das Lightning-Netzwerk im Allgemeinen darstellt. Dennoch sollte man anmerken, dass besonders bei hohen Gebühren im Bitcoin-Netzwerk, kleine Zahlungen verhältnismäßig mehr Vertrauen benötigen, als es bei mittleren Beträgen der Fall wäre. Trotzdem gelten diese noch immer als sicher genug, um bedenkenlos getätigt werden zu können.

Es wird staubig

Zum Abschluss treiben wir das bisherige Szenario noch etwas weiter auf die Spitze. Unsere bisherige „kleine“ Zahlung über 5000 sat ist nämlich immerhin groß genug für eine normale Bitcoin-Transaktion. Zwar könnte es sein, dass eine solche Transaktion bei zu hohen Gebühren unökonomisch, also nicht wirklich sinnvoll, wäre, aber an dieser Stelle möchten wir mal auf die technische Umsetzbarkeit einen Blick werfen.

Denn standardmäßig hat jeder Teilnehmer im Bitcoin-Netzwerk, also jede Bitcoin Core Node, eine Einstellung festgelegt, die Transaktionen unter dem sogenannten Dust-Limit ablehnen. Diese Begrenzung ist abhängig von der Art der Transaktion und liegt bei gewöhnlichen Native-Segwit Outputs bei ungefähr 300 Satoshi. Im Lightning-Netzwerk wäre diese Grenze zwar etwas höher, aber dennoch ähnlich. Möchte man also einen HTLC ausgeben, der nur 100 sat Wert ist, würde diese Transaktion vom Netzwerk „abgelehnt“ bzw. nicht weitergeleitet werden. Formal ist solch eine „Staub-Transkation“ zwar gültig, aber dafür müsste man erstmal einen Miner überzeugen, sie in einen Block aufzunehmen.

Lightning-Zahlungen in diesem Bereich gelten, solange sie unterwegs sind, also als vertraulich, da man gar keine Möglichkeit hätte, sie mit einem HTLC abzusichern, geschweige denn diesen sinnvoll auszugeben. Auch das klingt schlimmer als es eigentlich ist, denn unser Angriffsszenario ist bei diesen mikroskopisch geringen Beträgen umso unattraktiver und stellen kein realistisches Risiko dar.

Fazit

Das Lightning-Netzwerk ist noch lange nicht perfekt. Heutige Probleme und Schwachstellen sind aber auch nicht für immer in Stein gemeißelt. Selbst wenn das hier vorgestellte theoretische Problem zu einem realen werden sollte, was wie bereits erwähnt sehr unwahrscheinlich ist, bedeutet dies nicht gleich den Weltuntergang.

Schlaue Köpfe machen sich täglich über die Skalierung und Entwicklung von Bitcoin Gedanken, und wo es ein Problem gibt, versteckt sich auch Potenzial für Verbesserungen und neue Ansätze. Umso wichtiger ist es deshalb, Schwachstellen anzusprechen und zu diskutieren, anstatt sie unter den Teppich zu kehren.

Lese-Tipp: Ark: Vielversprechender neuer Ansatz zur Skalierung von Bitcoin?


Top Preis/Leistung

Blockstream Jade

  • Einsteigerfreundlich
  • Top Preis/Leistung
  • Bitcoin Only
  • Open Source Hardware & Software
  • Kamera zum Scannen von QR-Codes
  • Bluetooth Unterstützung
  • Kein Secure Element
  • Das Click-Wheel macht die Wiederherstellung der Seed Phrase sehr umständlich
  • Mining-Funktion 
  • Die Mnemonic Phrase kann als gemalter QR-Code gespeichert werden (SeedQR)