Warum sind doppelte Ausgaben kein Problem für Zahlungskanäle?

Micropayment Channels (MPC) können derzeit wegen der Verformbarkeit von Transaktionen nicht verwendet werden, höre ich.

AFAIK, Leute, die das sagen, haben im Hinterkopf, dass die Rückerstattungs- und Zahlungs-Tx, die als Eingabe die Einzahlungs-Tx (Dtx) haben, ungültig sein könnten, wenn der Hash der Einzahlung geändert wurde. Ich bin damit einverstanden.

Was ich nicht verstehe: Wenn es dem Angreifer gelingt, den Hash von Dtx zu modifizieren, bevor er es in die Blockchain geschafft hat, kann er es meiner Meinung nach genauso schaffen, die BTCs zu verdoppeln, die an Dtx gehen sollen. Doppelte Ausgaben scheinen also ebenso eine Bedrohung wie Formbarkeit zu sein. Doch niemand diskutiert darüber, also nehme ich an, dass etwas mit dieser Argumentation nicht stimmt. Was?

Ist folgendes richtig:

Wann immer Formbarkeitsangriffe möglich sind, ist dies auch ein Double-Spend-Angriff. ?

Danke

Antworten (1)

Tolle Frage. Um zu verstehen, wie es funktioniert, müssen Sie verstehen, dass die Eröffnung eines Mikrozahlungskanals (MPC) eine Verpflichtung erfordert, bevor Sie beginnen. Das heißt, beide Parteien müssen den Nachweis erbringen, dass sie diese Transaktionen nicht doppelt ausgeben können, bevor sie beginnen.

Wie ist das möglich? SCRIPT natürlich. Eine Transaktion (2-von-2-Ausgabe), die von anderen Transaktionen abhängig ist, wird zuerst signiert, wodurch der MPC geöffnet wird, und dann, und nur dann, geben beide Parteien die Transaktionen frei, die diese andere Transaktion gültig machen würden. An diesem Punkt sind die Gelder an den Kanal gebunden und können nicht doppelt ausgegeben werden, da sie in einer 2-von-2-Ausgabe gesperrt sind, die von beiden Parteien unterzeichnet werden muss, wodurch die Möglichkeit einer doppelten Ausgabe ausgeschlossen wird.

Eine ausführlichere Erklärung finden Sie hier .

Danke für diese Antwort. Ich kenne den Link, den du erwähnt hast, er ist hilfreich, aber die Dinge sind mir immer noch nicht 100% klar. Wenn Sie mit „Die Gelder werden dem Kanal zugesagt“ meinen, dass der Einzahlungs-Tx es in die Blockchain geschafft hat, dann unterliegt dieser Tx nicht mehr der Formbarkeit. Wenn dies jedoch nicht der Fall ist und die Formbarkeit ein Problem darstellt, dann scheint mir die doppelte Ausgabe genauso möglich zu sein wie die Formbarkeit. Warum also wird letzteres diskutiert, während ersteres nicht einmal erwähnt wird?
Eine doppelte Ausgabe der Finanzierungsübertragungen würde bedeuten, dass der Kanal nie geöffnet wird. Für beide Parteien besteht keine Gefahr, da sie dann im Wesentlichen eine ungültige Verpflichtungstransaktion unterzeichnet haben, die es überhaupt nicht in die Blockchain schaffen würde.
hmm .. danke ... es tut mir leid, dass ich mich mit dem Punkt befassen muss, aber: Angenommen, Alice verkauft einen Streaming-Dienst an Bob und sie verwenden MPC. Wenn sie nicht warten, könnte die Transaktion, die den Kanal finanziert, von Bob doppelt ausgegeben werden. Dann hat Alice Streaming verkauft und keine Bitcoins erhalten (klassischer Double-Spend-Angriff bei Zero-Confirmation-Transaktionen). (und wenn Bob nicht doppelt ausgibt, kann er natürlich immer noch Formbarkeit verwenden). Angenommen, sie entscheiden sich zu warten, bis der Einzahlungs-Tx es in die Kette schafft, ist kein doppelter Ausgaben- / Formbarkeitsangriff möglich. Mein Punkt: Formbarkeit UND doppelte Ausgaben || weder noch. Ist das richtig?
Bei der Einrichtung eines MPC „kaufen“ oder „verkaufen“ Sie nichts, bis die Finanzierungstransaktionen bestätigt sind. An diesem Punkt zahlen Sie für eine kleine Menge an Service im Pay-as-you-go-Verfahren. Wenn die Finanzierungstransaktion nicht bestätigt wird, kaufen oder verkaufen Sie den Dienst nicht. Die Anordnung dessen, was wann passiert, ist sehr wichtig und eliminiert die Möglichkeit, dass Sie sowohl den Service als auch das Geld außer in winzigen Schritten ergattern können.
Aber wenn die Finanzierungstransaktionen bestätigt sind, wie können sie noch geändert (und ihre Hashes geändert) werden? Wie kann ein Formbarkeitsangriff stattfinden, nachdem die Finanzierungstransaktionen bestätigt wurden (ich denke an den MPC)?
Sobald die Finanzierungstransaktionen bestätigt sind, gibt es keinen Formbarkeitsangriff. Der Formbarkeitsangriff findet statt, während die Finanzierungstransaktionen in einen Block gehen. Es ist möglich, dass ein bösartiger Knoten den tx-Hash ändert, wodurch die Commit-Transaktion ungültig wird. Einmal bestätigt, funktioniert der MPC einwandfrei.