Wie wird ein Doublespend im Lightning Network verhindert?

Wie geht Lightning Network mit doppelten Ausgaben um? Was passiert, wenn die andere Person nicht online verfügbar ist, um die Integrität der Transaktionen durchzusetzen?

PFB mein Verständnis des Lightning Network.

Lightning Network baut eine zusätzliche Schicht über dem Bitcoin-Netzwerk auf, die eine sofortige Off-Chain-Übertragung des Eigentums an Bitcoin ermöglicht. Lightning Network nutzt bidirektionale Zahlungskanäle, die aus Adressen mit mehreren Signaturen bestehen. Das bedeutet, dass Bitcoin in einer Multi-Signatur-Adresse gespeichert wird, wobei Transaktionen eine Multi-Signatur-Adresse als Eingabe verwenden und auf zwei verschiedene Adressen als Ausgabe verweisen. Die Transaktionen innerhalb des Beleuchtungsnetzwerks werden nicht an das Bitcoin-Netzwerk gesendet, solange der Kanal geöffnet ist (um die Belastung der Blockchain zu reduzieren).

Wie wird Alice in diesem Beispiel daran gehindert, doppelt auszugeben?

  1. Alice und Bob senden beide 0,05 BTC an eine gemeinsame 2-von-2-Multisig-Adresse. Dazu ist eine Transaktion auf der Bitcoin-Blockchain erforderlich.

  2. Alice möchte Bob 0,1 BTC zahlen. a. Alice erstellt eine neue Transaktion B2 und ändert das Guthaben auf 0,4 BTC für Alice und 0,6 BTC für Bob. b. Alice unterschreibt B2 und sendet an Bob c. Jetzt erstellt Bob eine neue Transaktion A2 und ändert das Guthaben auf 0,4 BTC für Alice und 0,6 BTC für Bob. d. Bob unterschreibt A2 und sendet an Alice. Kann Alice nach Schritt 2a (bevor Bob die Transaktion bestätigt) den Kanal schließen und das Geld doppelt ausgeben?

In Ihrem Beispiel sind beide Transaktionen identisch. Sie haben die gleichen Salden.
Vielen Dank! Habe die Frage bearbeitet. Möchten Sie wissen, wie LN Alice daran hindert, denselben BTC an Bob auszugeben und denselben zu übertragen, indem der Kanal geschlossen wird, wenn Bob nicht online ist?
Welche Transaktion sendet Alice, um den Kanal zu schließen?
Kann sie den anfänglichen Transaktionssaldo von 0,5 BTC an die Blockchain übertragen und den Kanal einseitig schließen? während Bob nicht verfügbar ist, um die Transaktion im LN-Kanal zu überprüfen
Hat Bob die „Anti-Cheat“-Transaktion von Alice erhalten und gesendet, nachdem sie ihm B2 geschickt hatte?
Nein, kann Alice in diesem Fall ihre Münzen doppelt ausgeben?
Hat Bob Alice Waren oder Dienstleistungen bereitgestellt? Wenn ja, ja. Aber nur, weil Bob das Protokoll nicht richtig befolgt hat.
Vielen Dank! Wie erzwingt das Protokoll im Allgemeinen die Integrität der Transaktionen, da es nicht an die Blockchain gesendet wird?

Antworten (3)

Doublespends sind nicht möglich, da eine Zahlung auf LN erst dann als abgeschlossen gilt, wenn beide Zahlungskanalinhaber den vorherigen Zustand des Zahlungskanals aufgehoben haben, indem sie ihrem Partner ein Verstoßmittel übergeben, das den vorherigen Zustand ungültig macht.

Daher sollte Bob den Service, den Alice gekauft hat, nicht übergeben, bis die Zahlung abgeschlossen ist. Sobald die Zahlung abgeschlossen ist, kann Alice den alten Zustand nicht mehr senden, ohne sich für die Straftransaktion zu öffnen, die von Bob gesendet wird.

Basierend auf Ihren Kommentaren denke ich, dass ein grundlegendes Problem, das Sie vermissen, darin besteht, dass die andere Partei zu diesem Zeitpunkt online sein muss , um mit LN zu bezahlen. Es stellt sich nicht die Frage „was passiert, wenn Bob offline ist“, denn wenn er offline ist, ist keine Zahlung möglich.

Die andere Sache, die Sie wissen müssen – besonders wenn Sie meinten, dass Bob nach Abschluss der Zahlung offline ist – ist, dass LN kompliziert ist. An jeder Zahlung sind viele Transaktionen beteiligt. Um die vollständigen Details zu erhalten, müssen Sie das Whitepaper lesen - https://lightning.network/lightning-network-paper.pdf .

Aber ein wichtiger Punkt ist, dass Bob im Rahmen des Akzeptierens einer LN-Zahlung eine Straftransaktion erhält. Wenn Alice jemals versucht, eine Sendung zu senden, die einen alten Kanalzustand darstellt, wodurch eine frühere Zahlung rückgängig gemacht wird, kann Bob seine Strafsendung senden und das gesamte Geld im Kanal nehmen (sogar den Teil, der ihm nie gehört hat).

Aus diesem Grund wird empfohlen, dass Bob entweder ständig online bleibt oder Wachtürme mit dieser Aufgabe betraut (was den Wachtürmen keinen Zugriff auf Bobs Geld gibt).

Was hindert Bob daran, die Straftransaktion zu übertragen, selbst wenn Alice nichts falsch gemacht hat?
@ theferrit32: Die Penalty-Transaktion gibt Ausgaben aus, die sich in Alices Old-State-Transaktionen befinden, die nicht öffentlich sein sollten. Wenn Alice nicht schummelt, existieren diese Ausgaben nicht, also ist die Strafe tx ungültig und kann nichts tun.

Alice und Bob eröffnen einen Kanal mit einem festen Guthaben, das dem Betrag in der Multi-Sig-Adresse entspricht. Der Kanal beginnt mit einer Bilanz, die einen Nachweis für Alices und Bobs Bilanz enthält.

Jede Aktualisierung der Bilanz erfordert Maßnahmen und die Zusammenarbeit von Alice und Bob, daher müssen beide online sein, und jeder Schritt ist mit Eventualitäten ausgestattet, um den Prozess fair zu halten, indem ein Druckmittel gegen eine unkooperative Partei geschaffen wird.

Das Bilanzbuch ist daher für beide Parteien immer identisch. Wenn beim Schließen eines Kanals beide Parteien unterschreiben, wird der Kanal sauber geschlossen. Eine Partei könnte den Kanal selbst schließen, da sie ein signiertes Notfallskript hat, das von der anderen Partei bereitgestellt wird, aber dieses Skript enthält eine Zeitsperre. Dies gibt der anderen Partei Zeit, die Abschlusstransaktion zu sehen, zu überprüfen und anzufechten, indem sie Einzelheiten zu einem neueren Saldo, falls vorhanden, bereitstellt. Es wird keine geben, wenn die erste Partei ehrlich wäre, weil diese Partei nicht zustimmen würde, sich an weiteren Zahlungen zu beteiligen.

Die Kosten des Betrugs sind, dass der Betrüger 0 bekommt und das Opfer das ganze Guthaben bekommt. Wenn das Opfer nicht für die gesamte Dauer der Sperre online ist und die Transaktion nicht anficht, kann es Opfer doppelter Ausgaben werden. Die Benutzer sollten immer online sein und die Zeitsperre bietet im Falle von Ausfällen oder Ausfallzeiten eine Möglichkeit, um Gerechtigkeit zu üben.

Falls erforderlich, können Sie „Wachtürme“ verwenden, um sich zu schützen, wenn Ihr Knoten häufig offline ist.

Solange eine oder beide Parteien den Kanal schließen, ändert sich die Bilanz nicht und Transaktionen werden nicht durch Ihren Kanal geleitet, sodass das Blitznetzwerk niemals ein Ungleichgewicht oder doppelte Ausgaben außerhalb der Kette erfahren wird.

Sie können doppelte Ausgaben erleben, wenn Sie nicht online sind, aber mit der Zeitsperre und der Strafe für den Verlust aller Gelder ist das Risiko, am Ende schlechter dran zu sein, sehr hoch, so dass diese Art von Angriff zwar möglich, aber sehr unwahrscheinlich ist.

Das ist ein toller erster Beitrag. Willkommen auf der Seite!