Gute Trauer: Eine anhaltende Sicherheitslücke im Blitznetzwerk, die noch behoben werden muss

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining


Besuchen Sie den Originalartikel *

Was passiert, wenn Ihr Lightning Network-Routingknoten mit Mülltransaktionen gespeist wird, die niemals aufgelöst werden? Kurz gesagt, es verursacht viel Kummer beim Weiterleiten von Knoten. Was einst ein reibungsloses, globales Zahlungssystem war, kann von einem versierten Drehbuchautor mit geringem Aufwand eingesperrt werden.

In einem kleinen Team von Routing-Knoten haben wir erfolgreich einen Test des Angriffs mit echtem Geld durchgeführt und den von Joost Jager beschriebenen „Trauer“ -Angriff demonstriert. Der Angriff wird als Trauerangriff bezeichnet, da es sich nicht um einen Gelddiebstahl handelt, sondern das Einfrieren der Blitzgelder eines Opfers: eine große Überraschung. Was wir festgestellt haben, ist, dass Trauer eine ernsthafte Bedrohung für große „Wumbo“ -Kanäle darstellt, die erwarten, mit ihrem Bitcoin eine Rendite zu erzielen, nur um ihr Geld für einen bestimmten Zeitraum einzufrieren.

Dies ist meistens ein Trauerangriff: kein Verlust von Geldern, aber das Opfer kann gezwungen sein, für eine teure Channel Force Close zu bezahlen. Dies ist eine bekannte Sicherheitslücke in Mainnet Lightning und muss verstanden und priorisiert werden, insbesondere in dieser frühen Marktphase des Bitcoin Lightning Network.

Vielen Dank an Clark Burkhardt und Phillip Sheppard für ihre Bereitschaft, an diesem Test teilzunehmen, und an Jager für seine unermüdliche Arbeit, um dieser Sicherheitsanfälligkeit Aufmerksamkeit und Priorität zu verleihen. Jäger spielte die Rolle des Angreifers für unsere Demonstration, während Burkhardt und Sheppard sich mir als verbundene Opfer-Routing-Knoten anschlossen.

Wie der Angriff funktioniert

Der Angreifer sättigt einen (oder mehrere) Kanäle mit Hashed Time Locked Contracts (HTLCs), die nicht als endgültige Zahlung aufgelöst werden. Dies ist eine spezielle Rasse von HTLCs, die als HODL-Rechnungen bekannt sind. Nur 483 dieser ungelösten HTLCs sind erforderlich, um einen Kanal pro Richtung zu überwältigen. Sobald sich diese HTLCs im Kanal befinden, sind Transaktionen mit derselben Kanalrichtung nicht mehr möglich, einschließlich einer Transaktion zum kooperativen Schließen dieses Kanals.

Theoretisch könnte ein Angreifer das Opfer kontaktieren (möglicherweise über eine Keysend-Nachricht oder in einem „Zwiebelklecks“) und ein Lösegeld verlangen, um den Angriff zu stoppen. Sobald das Lösegeld bezahlt ist, kann der Angreifer die ungelösten Zahlungen entfernen und den Angriff beenden. Der Angriff kann auf unbestimmte Zeit fortgesetzt werden, wodurch alle Routing- und Zahlungsaktivitäten in diesem Kanal gestoppt werden. Dadurch werden die Gelder im Lightning-Kanal eingefroren.

Beide Zahlungsrichtungen können in einem Kanal blockiert werden, indem 483 HTLCs in jeder Richtung verwendet werden, sowohl eingehende als auch ausgehende.

Warum sollte ein Angreifer so etwas tun?

Das erste Motiv, das mir in den Sinn kommt, ist die Forderung nach einem Lösegeld. Dieser Angriff verursacht Schmerzen für das Opfer und die Zahlung eines Lösegelds kann für ein Opfer attraktiv sein, auch ohne die Gewissheit, dass der Angriff aufhören würde. Die Kontaktaufnahme mit dem Opfer kann für einen Angreifer riskant sein, aber eine Lösegeldzahlung ist möglicherweise nicht der einzige Grund, warum jemand dies tun würde.

Ein sekundärer Anreiz für den Start eines Trauerangriffs wäre die Störung des Routing-Wettbewerbs. Das Blockieren der Route eines Konkurrenten kann zu einer höheren Nachfrage nach einer Route führen, die einem Angreifer gehört.

Berücksichtigen Sie als Benchmark, dass der Loop-Knoten von Lightning Labs einen anhaltenden Liquiditätsbedarf hat, für den manchmal 2.500 ppm (0,25 Prozent) des Gebührensatzes (ppm) gezahlt werden. Nach meiner Erfahrung würden sie normalerweise in etwa zwei Wochen die Liquidität von 16 Millionen Sats erschöpfen (5,2 Prozent jährlicher Prozentsatz), aber das ist bei vorhandenem Wettbewerb der Fall.

Wenn ein Angreifer eine konkurrierende Route mit niedrigeren Gebührensätzen deaktivieren könnte, ist Loop möglicherweise bereit, einen höheren Gebührensatz zu zahlen (da das Liquiditätsangebot jetzt reduziert ist). Nehmen wir an, Loop würde 3.000 ppm (0,3 Prozent) zahlen und diese Liquidität schneller nutzen, da keine anderen Kanäle funktionieren. Loop könnte diese Liquidität in der Hälfte der Zeit verbrauchen, beispielsweise in einer Woche. Der Angreifer würde seine übliche Ausbeute in diesem Beispiel auf 15,6 Prozent APR mehr als verdoppeln. Die einzigen Kosten für den Angreifer sind die Kosten für das Ausführen eines Skripts auf einem vorhandenen Kanal und die psychologischen Kosten für das Unmoralische / Schädliche des Lightning-Netzwerks. Mit einem einzelnen Angriffskanal könnte ein böswilliger Schauspieler etwa neun Kanäle stören (siehe Jagers Tweets darüber).

Was würde das Opfer dieses Angriffs erleben?

Das Opfer dieses Angriffs würde nicht wirklich wissen, dass dieser Angriff stattgefunden hat, es sei denn, es wurden spezielle Warnungen für ausstehende HTLCs festgelegt. Für Thunderhub-Benutzer (ein sehr empfohlenes Tool) wird auf dem Startbildschirm eine Tabelle mit ausstehenden HTLCs sowie eine Warnung angezeigt, die besagt, dass Kanäle nur 483 ausstehende HTLCs enthalten können.

In der Praxis wurde mein Knoten schnell unzuverlässig und es kam zu mehreren App-Abstürzen, einschließlich Thunderhub, der einzigen App, die mich über das Problem informierte. Dank meines Telegramm-Bots „Balance of Satoshis“ erhielt ich dann eine Benachrichtigung über das Schließen des Kanals. Der angegriffene Kanal hat sich gewaltsam geschlossen! Das sollte nicht Teil des Experiments sein. (Weitere technische Informationen zum unwillkürlichen Schließen der Kraft finden Sie unten für zusätzliche Daten zum Schließen der Kraft.)

Was kann das Opfer tun, um einen Trauerangriff zu stoppen?

Sobald ein Angriff beginnt, kann ein Opfer im Wesentlichen nichts mehr tun, um ihn zu stoppen. Die einzige Alternative, um einen laufenden Angriff zu stoppen, wäre die gewaltsame Schließung des angegriffenen Kanals, was bedeutet, dass die Terroristen gewinnen.

Um die Verletzung zusätzlich zu beleidigen, werden durch das erzwungene Schließen des Kanals die ungelösten Zahlungen an die Transaktionsdaten in der Kette weitergeleitet, wodurch sekundäre Transaktionen in der Kette für den Initiator des erzwungenen Schließens ausgelöst werden. Bei 50 Sats / Vbyte- und 483 On-Chain-Transaktionen entspricht dies leicht einem Preis von 1 Million Sat, um die Schließung eines einzelnen angegriffenen Kanals zu erzwingen (eine Kanalschließungsgebühr von 368 USD zu heutigen Preisen). Die mehrfachen Transaktionen in der Kette treten nur auf, wenn die Ausgabe über dem Mindestzahlungslimit für "Staub" liegt. (Siehe dieses Beispiel auf testnet.)

So verhindern Sie einen Trauerangriff

Jager hat an einem Proof-of-Concept-Programm gearbeitet, um Angreifer zu isolieren und zu bekämpfen. Er nennt sein Programm "Circuitbreaker". Der Circuitbreaker arbeitet auf Netzwerkebene, was dies leider bedeutet jeder muss teilnehmen, damit es effektiv ist.

Darüber hinaus muss dieses Problem von engagierten Ingenieuren / Entwicklern priorisiert und beachtet werden, um bessere Lösungen zu finden. Im Bitcoin Optech-Newsletter (Ausgabe Nr. 122 oder Nr. 126) gab es auch einige gute Diskussionen zur Änderung des Protokolls.

Dieser Angriff kann heute ausgeführt werden. Es ist ein Wunder, dass es noch nicht böswillig verwendet wurde. Dies spiegelt die Anreize für diejenigen wider, die Lightning heute nutzen, um ein offenes, universelles Zahlungsnetzwerk zu werden. Bitte teilen Sie diesen Beitrag nach Belieben, um mehr Arbeit zur Behebung dieses Problems zu fördern und zu inspirieren, bevor es echten Schaden anrichtet.

Zusätzliche technische Informationen zum unfreiwilligen Force-Close

Hier sind die Protokolle von meinem Knoten, auf dem LND 0.11 ausgeführt wird, als das oben erwähnte unfreiwillige Schließen der Kraft auftrat:

2020-11-26 21: 24: 47.374 [ERR] HSWC: Channel (657.759: 561: 0): andernfalls Link: ChannelPoint (c37bec006b18df172698a84739ca47128935e0a8666fecd1a843e49b01db207c: 0): empfangene Fehler von Peer: Chan_ID = 7c20db019be443a8d1ec6f66a8e035891247ca3947a8982617df186b00ec7bc3, err = abgelehnt Commitment: commit_height = 455, invalid_commit_sig = 3044022076fd65191eb6305b723fa6012be378413b6326e2786c38db58b4c02e1f3999d202207605ca31de8b4c5b1d9cd20dc1581dfa2383e0b4e06c8ad4f718ab5c434d8cf5, commit_tx = 02000000017c20db019be443a8d1ec6f66a8e035891247ca3947a8982617df186b00ec7bc300000000008a792e8002210d0000000000002200201031cf10a1efef261edd3d0a1a6a953b27bc25bd7150bb2b07afdc69805e02157213000000000000160014de650929042bef58b71783ae1a44834a902a8f2d542ca720, sig_hash = 4e0fb804c74376020e4c44a60969b9206eb0aaa9a89b76017d60f23ad5cf63e5 mit Fehler: Fernfehler

Die Protokolle zeigen ein "invalid_commit_sig", ein bekanntes Problem in LND. Angeblich kann dies beim erneuten Herstellen der Verbindung passieren und ist keine direkte Folge der Kanalstörung. Das Volumen der ausstehenden HTLCs macht es leider wahrscheinlicher. Jager half dabei, den Prozess als Kanalstörung -> endlose Zahlungsschleife (Fehler) -> Knoten ausgefallen -> Wiederverbindung -> ungültiges Festschreibungszeichen (Fehler) -> Kanal erzwingen – zu erklären.

Der "Endlosschleifenfehler" ist ein bekannter Fehler, der auftritt, wenn das HTLC-Limit erreicht ist und ein zusätzlicher HTLC gesendet wird. Anstatt mit einem Zahlungsfehler zu enden, versucht LND weiterhin, die Zahlung in einer Schleife durchzuführen. Informationen zur Behebung dieses Fehlers finden Sie im LND-Problem Nr. 4656.

Dies ist ein Gastbeitrag von Jestopher. Die geäußerten Meinungen sind ausschließlich ihre eigenen und spiegeln nicht unbedingt die von BTC Inc oder Bitcoin Magazine.

Free Bitcoins: FreeBitcoin | BonusBitcoin

Coins Kaufen: Bitcoin.deAnycoinDirektCoinbaseCoinMama (mit Kreditkarte)Paxfull

Handelsplätze / Börsen: Bitcoin.de | KuCoinBinanceBitMexBitpandaeToro

Lending / Zinsen erhalten: Celsius NetworkCoinlend (Bot)

Cloud Mining: HashflareGenesis MiningIQ Mining

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close