Angenommen, Sie und ich möchten einen Zahlungskanal eröffnen.
1) Geld in Lightning
einzahlen Wir senden beide 0,05 BTC an eine gemeinsame 2-von-2-Multisig-Adresse. Dazu ist eine Transaktion auf der Bitcoin-Blockchain erforderlich.
Als „Bilanz“ erstellen wir jeweils eine 2-von-2-Multisig-Transaktion, die 0,05 BTC an Sie und 0,05 BTC an mich auszahlt. Ich unterschreibe eine Auszahlungstransaktion und gebe sie Ihnen. Wenn Sie es in Kraft setzen möchten, müssen Sie nur Ihre eigene Signatur hinzufügen und an das Bitcoin-Netzwerk senden. Umgekehrt geben Sie mir Ihre Kopie der Auszahlungstransaktion, die Sie unterschrieben haben und ich noch nicht.
Diese "Bilanzen" sind reguläre 2-von-2-Multisig-Transaktionen im Bitcoin-Netzwerk, sie sind nur noch nicht gültig, weil ihnen jeweils eine Signatur fehlt. Beachten Sie, dass diese einseitigen Auszahlungstransaktionen die ausgezahlten Gelder der ausführenden Partei für einige Zeit sperren.
2) Zahlung
Jetzt möchte ich Ihnen 0,01 BTC zahlen. Wir erstellen jeweils wie zuvor eine neue Auszahlungstransaktion ("Bilanz"), aber diese besagt, dass Sie 0,06 BTC erhalten und ich 0,04 BTC. Jeder von uns bekommt wie bisher eine vom anderen unterschriebene Transaktion.
Um sicherzustellen, dass keiner von uns die alte Auszahlungstransaktion verwenden kann, die der andere zuvor unterzeichnet hat, erstellen wir beide eine "Anti-Cheat"-Transaktion: Es ist eine Transaktion, die die Ausgaben unserer ersten Auszahlungstransaktion für die andere ausgibt.
Das heißt, wenn ich versuche, die (inzwischen veraltete) 0,05 - 0,05 BTC-Bilanz zu aktivieren, werden meine ausgezahlten Gelder für eine Reihe von Blöcken gesperrt. Dies gibt Ihnen Zeit, die „Anti-Cheat“-Transaktion zu übertragen, in der ich unterschrieben habe, dass meine 0,05 BTC-Ausgabe an Sie gesendet wird.
Trotzdem kann ich Ihnen und dem gesamten Netzwerk diese Transaktion sicher geben, da der "Anti-Cheat" nur als Reaktion auf die betrügerische Verwendung einer alten Bilanz aktiviert werden kann. Übrigens ist dieser Anti-Cheat-Mechanismus der Grund, warum Lightning den Transaction Malleability-Fix von Segregated Witness benötigt.
Mit der oben beschriebenen Einrichtung müsste ich online sein, um Sie bei einem Betrugsversuch zu erwischen, aber natürlich wäre es für mich nicht sicher, Zahlungskanäle offen zu halten, wenn ich die ganze Zeit online bleiben müsste. Um andere zu ermutigen, bei der „Anti-Cheat“-Transaktion zu helfen, haben wir einen kleinen Teil der „Anti-Cheat“-Auszahlung als Prämie festgelegt, die jeder ausgeben kann. Jetzt können wir die Anti-Cheat-Transaktion allen Knoten im Netzwerk anvertrauen, sodass jeder auf die Übertragung alter Bilanzen achten kann. Wenn es passiert, kann jeder das Kopfgeld auf sich selbst unterschreiben und den "Anti-Cheat" übertragen.
3) Netzwerkzahlung
Okay, jetzt können Sie und ich tausende Male Geld hin und her senden, mit fast sofortiger Wirkung (abhängig davon, wie schnell wir miteinander kommunizieren können), ohne eine einzige Transaktion zur Bitcoin-Blockchain hinzuzufügen. Auf der anderen Seite würden sie, wenn einer von uns jemals versuchen würde, den anderen zu betrügen, sofort vor Gericht gebracht werden, indem der Streit auf der Blockchain zu ihrem eigenen Nachteil beigelegt würde. Ziemlich schick, aber noch nicht sehr nützlich.
Durch die Theorie der sechs Trennungsgrade, ist jeder durch nur wenige Hops mit jedem anderen Teilnehmer verbunden. Angenommen, Sie möchten Bob, der Barista ist, Geld schicken und Ihnen gerade einen Kaffee gekocht haben. Bob ist ein Freund von Alice, während ich einen Zahlungskanal mit Alice habe. Nehmen wir zur Veranschaulichung an, dass jeder Zahlungskanal zwei BTC enthält, die zu gleichen Teilen aufgeteilt sind. Sie haben keine direkte Verbindung zu Bob.
Unser „Netzwerk“ sieht nun so aus:
You <-- 1BTC ----- 1BTC --> Me <-- 1BTC ----- 1BTC --> Alice <-- 1BTC ----- 1BTC --> Bob
Da Sie keinen direkten Zahlungskanal zu Bob haben (und es sehr ineffizient wäre, wenn Sie mit jedem Geschäftspartner, den Sie jemals treffen, einen Zahlungskanal erstellen müssten), leiten Sie Ihre Zahlung über das Netzwerk weiter. Anstatt wie oben beschrieben nur eine Aktualisierung des Saldos zwischen Bob und Ihnen zu schreiben, wird dies zu einer konzertierten Anstrengung: Ihre Brieftasche findet eine Route von Ihnen zu Bob, die a) ausreichend Liquidität, b) die geringsten Gebühren und c) die wenigsten Sprünge hat . Um eine Zahlung zu tätigen, aktualisiert jeder beteiligte Zahlungskanal seine Salden. Mit einer Zahlung von 0,01 BTC für den Kaffee aktualisiert dies unser Netzwerk auf:
You <-- 0.99BTC ----- 1.01BTC --> Me <-- 0.99BTC ----- 1.01BTC --> Alice <-- 0.99BTC ----- 1.01BTC --> Bob
Wie Sie sehen können, haben sich die Salden an den Enden entsprechend von Ihnen zu Bob verschoben, aber die anderen Teilnehmer haben denselben Saldo (obwohl sie auf andere Zahlungskanäle verschoben wurden). Es ist wichtig zu wissen, dass die Transaktion nur vollständig oder gar nicht durchgeführt werden kann . Entweder aktualisieren wir alle die Salden oder niemand tut es.
Stellen Sie sich nun vor, Sie haben nicht nur den einen Zahlungskanal mit mir, sondern Sie haben vielleicht ein Dutzend Zahlungskanäle mit anderen Benutzern! :)
4) Einvernehmliches Schließen eines Kanals
Anders als im obigen Fall, in dem eine Seite den Kanal einseitig schließt, kann einer von uns den anderen auffordern, einen Kanal einvernehmlich zu schließen. Wenn wir uns einigen, erstellen wir gemeinsam eine endgültige Auszahlungstransaktion, die keine Gelder sperrt und eine sofortige Ausgabe nach der Bestätigung ermöglicht. Wir könnten diese Transaktion sogar dazu verwenden, einen Teil unseres Guthabens direkt an einen Dritten in der Blockchain auszugeben oder einen anderen Zahlungskanal zu schaffen.
5) Kompromisse
Weiterlesen:
Mit Lightning können Sie Münzen zwischen zwei Brieftaschen sperren und dann spezielle Transaktionen zwischen jeder Brieftasche senden, die erst "echt" werden, wenn sie der Blockchain hinzugefügt werden. Aber das tust du nicht, denn On-Chain kostet dich mehr Gebühren, also aktualisierst du die Transaktionen untereinander ständig.
Lightning ermöglicht es nicht nur, Transaktionen Off-Chain von A nach B zu senden, sondern auch von A nach B nach C usw. Das würde es ermöglichen, ein großes Netzwerk zu schaffen, in dem die meisten Transaktionen Off-Chain stattfinden, was Sie nicht brauchen jedem vertrauen können und wo alle Transaktionen sofort erfolgen.
Lightning Network ist eine Schicht über der Bitcoin-Blockchain. Lassen Sie mich näher darauf eingehen.
Es ist eine Technologie, die Bitcoin schneller und skalierbarer macht und Bitcoin so verbessert, dass Bitcoin Hunderte oder Tausende von Transaktionen pro Sekunde verarbeiten kann. Derzeit verarbeitet Bitcoin etwa sieben Transaktionen pro Sekunde, was im Vergleich zu Visa und Mastercard sehr niedrig ist Hunderte oder Tausende von Transaktionen pro Sekunde. Das Bitcoin-Lightning-Netzwerk ist ein Vorschlag, der dabei helfen kann, von sieben Transaktionen pro Sekunde auf Hunderte oder Tausende Transaktionen pro Sekunde umzusteigen, ohne eine zentrale Einheit zu haben und ohne das Vertrauen zwischen den Knoten zu verlieren.
Wie funktioniert das Lightning-Netzwerk?
Es funktioniert von Ihnen und mir, wo wir uns gegenseitig Bitcoins auf einem Kanal außerhalb der Blockchain senden können, sodass wir einen Kanal untereinander in der Blockchain einrichten, wir beginnen miteinander zu kommunizieren und Transaktionen außerhalb der Blockchain zu senden. Wir können Hunderte oder Millionen solcher Transaktionen durchführen, ohne sie an die Blockchain zurückzusenden. Wenn wir diesen Kanal außerhalb der Blockchain erstellen, können wir beliebig viele Transaktionen durchführen, ohne das gesamte Netzwerk zu belasten.
Also in ihrem Whitepaper, die diese Idee auch vorgeschlagen haben, in der ich eine Transaktion an eine andere Person senden kann, ohne eine direkte Verbindung zu dieser anderen Person herzustellen. Lasst mich erklären, Leute...
Angenommen, ich und mein Freund senden einander Transaktionen außerhalb der Blockchain, also kann mein Freund eine Verbindung zu einer anderen Person X herstellen, sodass es im Lightning-Netzwerk möglich ist, Gelder von mir über meinen Freund an Person X zu senden. Ich brauche keine direkte Verbindung zu Person X. Es ist wirklich eine gute Möglichkeit, Gelder durch das Netzwerk zu verbreiten, ohne viele direkte Verbindungen herzustellen, die auch das gesamte Lightning-Netzwerk belasten könnten.
Das ist vergleichbar damit, wie das Internet heute funktioniert. Wenn ich ein Paket sende, kann es durch viele verschiedene Knoten geleitet werden, und die Knoten kümmern sich nicht wirklich darum, woher das Paket kommt und wohin es geht, sie kümmern sich nur darum, wohin sie es als nächstes senden sollen und Die nächste Person kann es also woanders hinschicken, und dann wäre es endlich am endgültigen Bestimmungsort angekommen. Es ist ähnlich, wie ein Lightning-Netzwerk funktioniert, wenn ich eine Verbindung zu meinem Freund habe und mein Freund eine Verbindung zu jemand anderem hat. Ich könnte Geld von mir über meinen Freund an jemand anderen schicken, mein Freund würde nicht einmal wissen, ob das Geld an Person X gehen soll oder ob Person X Person Y schicken soll.
Kannst du dieser mittleren Person vertrauen?
Ich möchte etwas Geld von mir an meinen Freund Sachin senden und ich möchte dieses Geld über die mittlere Person Shivam an Sachin senden, also habe ich einen Kanal von mir zu Shivam und dann hat Shivam einen Kanal zu Sachin, jetzt möchte ich mein Geld senden zu Sachin. Wie kann ich Shivam vertrauen? Vielleicht nimmt Shivam mein Geld für sich und sendet nichts an Sachin, also wird diese Sache kryptografisch behandelt und die Transaktion wird mir zurückerstattet, wenn Sachin meine Transaktion nicht innerhalb einer bestimmten Zeit erhält.
Probleme im Lightning-Netzwerk?
Das Schlimmste, was mir in diesem Blitznetzwerk passieren könnte, ist, dass eine untreue Mittelsperson mein Geld für einige Tage zurückhält und ich nach Ablauf dieser Tage mein Geld durch das Protokoll des Netzwerks zurückerstattet bekomme. Ein weiteres Problem mit diesem Netzwerk ist, dass Leute viele Kanäle machen könnten, sie könnten Kanäle sofort öffnen und schließen, um das Netzwerk zu belasten. Um einen Kanal zu öffnen, müssen wir diese Informationen an die Haupt-Blockchain übertragen. Wenn also eine böswillige Person versucht, Hunderte von Kanälen pro Sekunde zu öffnen und zu schließen, könnte dies die Blockchain wirklich belasten. Darin arbeiten sie.
Neumusik