Was ist eine doppelte Ausgabe?

Was ist eine doppelte Ausgabe?

Was muss ich als jemand, der Bitcoin verwendet, darüber wissen, wie das Bitcoin-System doppelte Ausgaben verhindert? Gibt es noch Umstände, unter denen sie auftreten können?

Antworten (4)

Eine doppelte Ausgabe ist ein Angriff, bei dem der angegebene Satz von Münzen in mehr als einer Transaktion ausgegeben wird. Es gibt zwei Hauptmethoden, um doppelte Ausgaben zu tätigen:

  • Senden Sie zwei widersprüchliche Transaktionen schnell hintereinander in das Bitcoin-Netzwerk. Dies wird als Rassenangriff bezeichnet .
  • Minen Sie eine Transaktion in einen Block und geben Sie dieselben Coins aus, bevor Sie den Block freigeben, um diese Transaktion ungültig zu machen. Dies wird als Finney-Angriff bezeichnet .
  • Besitzen Sie mehr als 51 % der gesamten Rechenleistung des Bitcoin-Netzwerks, um jede beliebige Transaktion rückgängig zu machen, und haben Sie die vollständige Kontrolle darüber, welche Transaktionen in Blöcken erscheinen. Dies wird als 51-%-Attacke bezeichnet .

Um Schäden durch den ersten Angriff zu vermeiden, warten Sie, bis eine Bestätigung für eine bestimmte Transaktion erscheint. Um Schäden durch den zweiten Angriff zu vermeiden, warten Sie, bis 6 Bestätigungen für eine Transaktion angezeigt werden, oder weniger, wenn die Transaktion klein ist (aber immer noch mindestens 1 erforderlich ist). Schäden durch den dritten Angriff können das gesamte Bitcoin-Netzwerk lahmlegen, also machen Sie sich keine Sorgen – Ihr Unternehmen wird höchstwahrscheinlich nicht das Hauptziel sein (es ist unwahrscheinlich, dass dies geschieht, ohne dass wirklich viel Geld involviert ist).

Weitere Informationen zu all diesen Angriffen finden Sie in meiner Masterarbeit zum Thema Bitcoin-Sicherheit .

Diese Antwort könnte verbessert werden, indem erklärt wird, dass Münzen nur einmal ausgegeben werden können und wie der Doppelausgabenangriff für den Empfänger schädlich sein könnte.
"Ihr Unternehmen wird höchstwahrscheinlich nicht das Hauptziel sein (es ist unwahrscheinlich, dass dies geschieht, ohne dass wirklich viel Geld involviert ist)." Das stimmt nicht besonders, denn wenn Sie viel Mining-Power besitzen, werden die Angriffskosten für Sie sehr gering, sodass Sie mit geringen Kosten viele Menschen zerstören können. Außerdem braucht man dafür kein großes Geld. Alles, was Sie brauchen, ist, einen der größten Mining-Pools zu hacken.
@iYalovoi, "Alles, was Sie brauchen, ist, einen der größten Mining-Pools zu hacken" ... das, oder ein unehrlicher Systemadministrator eines ausreichend großen Mining-Pools zu sein ...
Um Schäden durch den ersten und zweiten Angriffstyp zu verhindern - wer soll das Warten auf die Bestätigung übernehmen? Der Empfänger oder der Absender? Fragen, weil es so klingt, als würden Sie sagen, dass der Empfänger "Schaden verhindern" kann, indem er wartet, aber er / sie ist in diesen Situationen tatsächlich dem Absender ausgeliefert. Ein böswilliger Absender wäre sicherlich nicht daran interessiert, abzuwarten, wenn der Angriff kurz hintereinander etwas erfordert.

Als Händler können Sie die Wahrscheinlichkeit von Verlusten durch doppelte Ausgaben durch einen Rennangriff verringern, indem Sie Ihren Knoten richtig konfigurieren (keine eingehenden Transaktionen, explizite ausgehende Verbindungen zu gut verbundenen Knoten). Es besteht immer noch ein kleines Risiko, selbst mit dieser Konfiguration betrogen zu werden, aber es ist selten und relativ zufällig. Somit wird der Angreifer dadurch abgeschreckt, dass bei nur selten Erfolgen beim Double Spending jeder fehlgeschlagene Versuch ein gewinnbringender Verkauf an den Händler ist und somit auf Dauer für den Angreifer unrentabel und für den Händler gewinnbringend ist.

Es gibt Umstände, unter denen ein Händler anfälliger ist. Ein unbeaufsichtigter Münzwechsler in einem Waschsalon wäre beispielsweise das Worst-Case-Szenario für den Händler. Der Angreifer verliert nichts für fehlgeschlagene Versuche (vorausgesetzt, die Maschine zieht keinen Gewinn aus jedem "Verkauf"), nimmt die Gewinne bei gelegentlichen erfolgreichen Versuchen und wird wahrscheinlich nicht wegen Betrugs erwischt, wie es der Waschsalonbetreiber tut bewusst, dass etwas passiert ist, ist der Dieb schon lange weg. (Demgegenüber steht natürlich die Wahrscheinlichkeit, dass die Blockchain-Überwachung die zahlreichen Double-Spend-Versuche erkannt hätte und der Waschsalonbetreiber somit auch dies verhindern kann.)

Der Finney-Angriff hat auch Kosten, die ihn weniger bedrohlich machen, als es den Anschein hat. Das Halten eines Blocks kostet etwa einen Dollar pro Sekunde. Wenn also einmal ein Block abgebaut, aber nicht gesendet wird und der Dieb dann 40 Sekunden braucht, um die Transaktion mit dem Händler abzuschließen, sollte es besser sein, mehr als 40 Dollar Gewinn daraus zu machen, sonst wird der Versuch am Ende unwirtschaftlich auf lange Sicht. Auch hier würde der Händler schließlich wissen, dass die doppelte Ausgabe stattgefunden hat (gemessen in Sekunden, wenn die Blockchain überwacht wird), so dass dies nicht gut funktioniert, wenn der Dieb riskiert, erwischt zu werden. Die Vorbeugung dafür besteht also darin, keine Transaktionen mit großem Wert (z. B. hundert Dollar oder mehr) ohne Verzögerung auf 0/unbestätigt durchzuführen, wenn Sie auf doppelte Ausgaben achten.

Der 51-%-Angriff, der bestätigte Transaktionen rückgängig machen würde, ist so teuer und daher so unwahrscheinlich, dass er auftritt, dass er für einen typischen Händler nicht einmal von Belang ist. (d. h. jemand, der Millionen von Dollar ausgibt, um diesen Angriffsvektor zu verdoppeln, wird, wenn es jemals passiert, Trades verfolgen, bei denen große Werte ausgetauscht werden – denken Sie, dass Goldbarren um Mitternacht unter einer Brücke gegen Bitcoins gehandelt werden. Das sind sie Sie versuchen nicht, Ihre Unterhaltungselektronik zu kaufen, die Sie per UPS versenden, noch treffen sie Sie bei Starbucks in der Hoffnung, Sie um Ihre 200 Dollar zu betrügen.)

Wenn jeder zweimal denselben Bitcoin ausgeben könnte, dann würde das ganze System zusammenbrechen, weil Bitcoins nicht knapp wären.

Das ist jedoch nicht das, was "doppelte Ausgaben" bedeutet. Eine Double-Spend-Attacke erzeugt eigentlich keine neuen Coins und hat keine Auswirkungen auf die Geldmenge. Vielmehr können Sie Münzen von jemandem zurücknehmen, dem Sie sie zuvor gegeben haben (so dass sie sie nicht mehr haben). Nichts für ungut, aber ich verstehe nicht, wie diese Antwort auf +4 kam.

Doppelt ausgeben, wenn ein Benutzer seine Coins mehr als einmal ausgeben kann. Dies geschieht normalerweise, wenn Sie zwei verschiedene Versionen des Blockchain-Ledgers erstellen können und beide zu unterschiedlichen Zeiten gültig waren.

Lesen Sie zum Verständnis dieses reale Beispiel, in dem ein Angreifer 807.000 ETC doppelt ausgeben konnte.

Angreifer hat 807.000 ETC in Ethereum Classic 51 % Attack gestohlen