Ich denke dezentral wäre eher wenn dritte die selben Transaktionen verifizieren könnten. Angenommen Geschäftspartner A zahlt Coins and B, dann geht die Transaktion verloren ohne glattgestellt zu werden. Einer hat ein Interesse daran dass sie verloren bleibt, der andere nicht. Aber beide haben keine unabhängigen Nodes die die Transaktion bestätigen könnten. Oder?
Warum sollte ein Dritter die Transaktion verifizieren müssen? A zahlt Coins an B. Sobald B die Zahlung aktzeptiert hat gibt es keine Möglichkeit für A, die Transaktion rückgängig zu machen.
Das ist wie bei Bargeld. A bezahlt B. Sobald B das Geld bekommen und die Echtheit verifiziert hat kann A die Zahlung nicht mehr rückgängig machen. Deshalb ist diese Bargeld Transaktion von A an B doch noch lange nicht zentralisiert?!
Aber ist es nicht so dass B das Geld erst sicher hat wenn er den Kontostand glatt gestellt hat, also auch Bitcoins am Ende bekommen hat? Der ganze Zweck von LN besteht doch aber offenbar darin dass man nicht sofort glatt stellt, sondern erstmal sammelt und dann mit einer Bitcointransaktion mehrere kleine interne Transaktionen glatt stellt. Heißt dass dann nicht dass, wenn der Transaction Channel zusammenbricht, die Daten verlorengehen, die Glattstellung nicht mehr erfolgen kann?
An dem Punkt wäre es gut wenn der Payment Channel nicht nur eine Sache zwischen diesen beiden Parteien wäre sondern dritte die vorherigen Transaktionen nachvollziehen könnten, so dass sie wiederhergestellt werden können.
Oder welche Sicherung gibt es für den Fall?
Wenn bei den Zwischentransaktionen nicht glatt gestellt wird, besteht dann nicht die Gefahr dass die Zwischentransaktionen verloren gehen?
Geht eine Zwischentransaktion verloren ist es, als ob sie niemals abgeschickt wurde. Sobald der Empfänger sie bekommt und er die Signatur verifiziert hat, kann der aktuelle Stand des Payment Channel vom Empfänger glattgestellt werden, indem er diese gültige Transaktion ins Bitcoin Netzwerk sendet. Damit wäre dieser Payment Channel dann geschlossen.
Aber ist nicht genau das ein Problem? Siehe oben.
Ach du meinst jede dieser LN-Transaktionen hat eine gültige Bitcointransaktion die der Empfänger notfalls in Bitcoinnetzwerk schicken könnte? Dann, solange der Empfänger diese Transaktion erstellen kann verliert er keine Coins?
Richtig. Es steht den Geschäftspartnern frei, den Zahlungskanal jederzeit zu schliessen und damit den den Saldo zu finalisieren. Solange der Kanal besteht können jedoch beliebige viele Transaktionen durchgeführt werden, die am Ende aber nur als Saldo in der Blockchain auftauchen.
Man könnte es als eine Art Kompression betrachten. Ausserdem sinkt die Belastung des Bitcoin Netzwerk mit der Anzahl der Transaktionen pro Kanal deutlich. Daneben steigt die globale Transaktionsleistung des Bitcoin Netzwerk stark an, da durch diese kreative Art der Nutzung praktisch beliebig viele Off-Chain Transaktionen parallel durchgeführt werden können. Für die Transaktionen über den Kanal entfällt auch die Confirmation Time, da sie gesichert ist, sobald der Empfänger die Signatur erfolgreich verifiziert hat.
Ah ok, die Sicherung besteht also darin dass der Empfänger eine gültige Bitcointransaktion hat die er propagieren kann wenn der Paymentchannel zusammenbricht. Also muss der Empfänger nur, wenn er sich absichern will, Backups dieser Transaktionen machen und er wäre abgesichert wenn der Channel zusammenbricht.
Was ist aber wenn der Sender in der Zwischenzeit die Bitcoinadresse, von der gesendet werden sollte, leert? Dann wären die Transaktionen die der Empfänger gesichert hat sinnlos geworden.
Diese Off-Chain Transaktionen sind sozusagen der Geldaustausch. Verliert der Empfänger die letzte Transaktion und der Sender weigert sich, diese nochmal zu schicken, verliert der Empfänger das Geld. D.h. der Geldempfänger muss immer die letzte Transaktion speichern oder den Payment Channel schliessen.
Klingt riskant und für mich ist dezentral was anderes. Das wäre wenn 1000 andere Nodes wüssten dass die Transaktion stattgefunden hat und es kein "weigern" des Senders geben kann.
Es kann auch ohne Dritte keine Weigerung des Senders geben. Hat der Sender eine gültige Transaktion an den Empfänger übergeben, hat er (fast) keine Möglichkeit mehr, diese Transaktion rückgängig zu machen. Er kann nur noch den aktuellen Transaktionsstand finalisieren und damit den Kanal schliessen.
Anmerkung: Praktisch kann er natürlich den Empfänger umbringen, bevor dieser die Transaktion finalisiert. Oder er hackt die Rechner des Empfängers und löscht die Transaktion, bevor dieser sie finalisiert hat.
Sagst du dass die Coins des Senders, die verschickt werden sollten, blockiert sind wenn er diese Transaktion erstellt hat und an den Empfänger weitergegeben hat?
Nein. LN ist eine Weiterentwicklung der Payment Channel. Damit können Transaktionen zusätzlich bidirektional durchgeführt werden und vor allem können Transaktionen sicher über Dritte geleitet werden. Damit können die LN Channels länger bestehen bleiben und es lassen sich Netzwerke von Geschäftsbeziehungen abbilden. Mit Webseiten hat das ganze überhaupt nichts zu tun, allerdings wird ein Protokoll entwickelt, um die Kommunikation zwischen den Geschäftspartnern zu standardisieren und vor allem zu abstrahieren. Während Payment Channel heute schon vollständig funktioniert, fehlen für LN noch ein paar Funktionen bei Bitcoin.
Diese Dritte könnten dann die Transaktion verifizieren als eine Art Escrow? Trotzem, eine weitere Partei ist nicht das selbe wie 1000e Nodes bei Bitcoin.
Nein, die Dritten verifizieren dabei nur ihre eigenen Geschäftsverbindungen. Wenn sie nicht kooperieren, kommt keine Zahlung zwischen den eigentlichen Geschäftspartnern zustanden und das wissen diese beiden Geschäftspartner auch. In diesem Fall müssen sie sich einen anderen Weg für die geplante Zahlung suchen.
Also sind Transaktionen die erstellt wurden vom Sender, die aber vom Dritten nicht verifiziert wurden nicht dahingehend abgesichert dass der Sender die gleichen Bitcoins noch einmal verschicken kann bevor der Empfänger die Transaktionen glatt stellt?
Letztendlich verifizieren trotzdem die tausende Bitcoin Knoten das Geschäft. Nur eben nicht jede einzelne Zahlung, sondern den gesammten Prozess des Zahlungskanals. Damit ist dann sichergestellt, dass effektiv jede einzelne Zahlung über das Bitcoin Netzwerk abgesichert wird.
Das ganze ist übrigens nicht komplett kostenlos: Damit das Bitcoin Netzwerk so einen Zahlungskanal absichern kann, muss die genutzte Summe an diesen Kanal gebunden werden. D.h. so ein Zahlungskanal hat einen Einfluss auf die Liquidität. Möchte ich nächstes Jahr 100 Einkäufe im Gesammtwert von 2 BTC über einen solchen Zahlungskanal abwickeln, muss ich diese 2 BTC besitzen und sperren. Habe ich die 2 BTC (noch) nicht, muss ich die Geschäfte zeitlich gestaffelt in mehrere Zahlungskanäle aufteilen.
Ach der Sender besitzt die Bitcoins gar nicht mehr wenn er die Transaktion erstellt? Obwohl, selbst dann frage ich mich was passiert wenn der Empfänger nicht glatt stellt und der Sender versucht die selben Bitcoins an jemand anderen zu schicken. Und das müsste er ja tun können wenn dritte die Transaktion nicht verifizieren.