Wie Double Spending funktioniert?
article-2708

Wie Double Spending funktioniert?

Alice Cooper · 28. August 2025 · 6m ·

Grundlagen

In der Welt des digitalen Geldes ist Double-Spending ein kritisches Problem. Dieses tritt auf, wenn dieselben Mittel gleichzeitig an zwei Empfänger gesendet werden. Ohne geeignete Gegenmaßnahmen wird das Protokoll grundlegend kompromittiert, da es keine Möglichkeit für Nutzer gibt zu überprüfen, ob sie einzigartige Einheiten erhalten haben, die nicht bereits woanders ausgegeben wurden.

Um die Integrität digitalen Geldes zu gewährleisten, ist es entscheidend, die Duplizierung spezifischer Einheiten zu verhindern. Das gesamte System würde zusammenbrechen, wenn ein Nutzer Einheiten kopieren und mehrfach einfügen könnte, wodurch ein Überangebot an Mitteln entstünde. Ebenso wäre es unmöglich, dass Alice dieselben 10 Einheiten gleichzeitig an Bob und Carol sendet. Daher müssen Mechanismen vorhanden sein, die dieses Verhalten verhindern und sicherstellen, dass digitales Geld effektiv funktionieren kann.

Lösungen für das Double-Spending-Problem

Es gibt zwei Ansätze, um Double-Spending bei digitalen Transaktionen zu verhindern: der zentrale Ansatz und der dezentrale Ansatz. Beim zentralen Ansatz überwacht eine Instanz das System und kontrolliert Ausgabe sowie Verteilung der Einheiten, während beim dezentralen Ansatz gleichberechtigte Teilnehmer um ein Regelwerk herum koordiniert werden müssen, um Betrug zu verhindern.

Zentralisierte Lösungen

David Chaums eCash ist ein Beispiel für eine zentralisierte Lösung des Double-Spending-Problems. Sie ist erheblich leichter umzusetzen als dezentrale Alternativen, da eine Instanz das System verwaltet und die Ausgabe und Verteilung der Einheiten kontrolliert. Um Nutzern digitale Vermögenswerte auszustellen, kann eine Bank Blind-Signaturen verwenden, wie in David Chaums 1982er Aufsatz "Blind Signatures for Untraceable Payments" beschrieben.

Angenommen, ein Nutzer namens Frank möchte 100 $ in digitalem Bargeld erhalten. Frank muss die Bank informieren und eine Zufallszahl erzeugen, zu der er einen Blinding-Faktor hinzufügt, damit die Bank nicht einzelne Einheiten zurückverfolgen kann. Frank übermittelt diese Daten an die Bank, die sein Konto belastet und Nachrichten signiert, die bestätigen, dass jede der fünf Informationen für 20 $ einlösbar ist. Frank kann nun die von der Bank ausgegebenen Mittel ausgeben.

Zur Veranschaulichung: Emilys Restaurant akzeptiert digitales Bargeld und Frank entscheidet sich, dort zu essen. Er legt zwei Zufallszahlen offen, die als eindeutige Identifikatoren für jede Einheit dienen, um seine 40 $-Rechnung zu bezahlen. Emily muss diese sofort bei der Bank einlösen, um zu verhindern, dass Frank sie bei einem anderen Händler ausgibt. Die Bank prüft die Gültigkeit der Signaturen, schreibt Emilys Konto mit 40 $ gut und vernichtet die verwendeten Scheine. Es müssen neue Scheine ausgegeben werden, wenn Emily ihr Guthaben auf dieselbe Weise wieder ausgeben will.

Obwohl Chaums eCash für private Übertragungen wertvoll sein kann, ist es in puncto Resilienz unzureichend, da die Bank einen zentralen Single Point of Failure darstellt. Der Wert des ausgegebenen Scheins ergibt sich allein aus der Bereitschaft der Bank, ihn gegen Dollar einzutauschen, und Kunden müssen auf deren Wohlwollen vertrauen, damit das Geld funktioniert. Dieses Problem versucht die Kryptowährung zu lösen.

Dezentralisierte Lösungen

In einem dezentralen System ist die Verhinderung von Double-Spending eine Herausforderung. Alle Teilnehmer müssen sich an Regeln halten, die Betrug verhindern und ehrliches Verhalten belohnen. Das Bitcoin-Whitepaper stellte hierfür eine Lösung vor: die Blockchain.

Eine Blockchain ist eine Datenbank mit einzigartigen Eigenschaften, die es den Teilnehmern des Netzwerks erlauben, ihre Kopien der Datenbank mit den Peers zu synchronisieren. Indem die Blockchain öffentlich einsehbar gemacht wird, lässt sich betrügerisches Verhalten wie Double-Spending leicht erkennen und verhindern.

Wenn ein Nutzer eine Transaktion verbreitet, muss diese zunächst durch Mining in einen Block aufgenommen werden, bevor sie der Blockchain hinzugefügt wird. Folglich sollte der Empfänger die Transaktion erst dann als gültig betrachten, wenn ihr Block der Kette hinzugefügt wurde. Nach Bestätigung können die Coins nicht doppelt ausgegeben werden, da das Eigentum einem neuen Nutzer zugewiesen wird und das gesamte Netzwerk dies verifizieren kann.

Im Szenario eines Restaurantbesuchs, das Bitcoin akzeptiert, muss der Kunde die Mittel an die öffentliche Adresse senden, die das Restaurant angibt. Jeder, der die signierte Transaktion vorgelegt bekommt, kann prüfen, dass der Kunde die Berechtigung hatte, die Coins zu senden. Es wird jedoch empfohlen, dass das Restaurant mindestens sechs Blockbestätigungen (etwa eine Stunde) abwartet, bevor es die Zahlung annimmt, um Betrug zu vermeiden.

Während die Blockchain das Double-Spending-Problem in einem dezentralen System löst, ist sie nicht narrensicher. Das Akzeptieren unbestätigter Transaktionen ist riskant und kann es dem Sender ermöglichen, dieselben Coins anderswo auszugeben. Je mehr Blockbestätigungen eine Transaktion erhält, desto sicherer ist sie.

Double-Spending in Bitcoin verhindern

Bitcoin wurde so konzipiert, dass Double-Spending-Angriffe verhindert werden, doch dies funktioniert nur, wenn Transaktionen in einem Block bestätigt sind. Wenn Nutzer auf Bestätigung warten, ist es für den Sender nicht einfach, die Transaktion rückgängig zu machen. Die Blockchain müsste "umgekehrt" werden, was ohne eine enorme Menge an Hashing-Power unrealistisch ist.

Allerdings sind Double-Spending-Angriffe möglich, wenn Parteien unbestätigte Transaktionen akzeptieren. Beispielsweise will ein Händler bei Kleinbetragskäufen möglicherweise nicht warten, bis die Transaktion in einen Block aufgenommen wird. In einem vollen Fast-Food-Restaurant ist das Warten auf jede Bestätigung nicht praktikabel. Wenn ein Geschäft "sofortige" Zahlungen ermöglicht, wird es anfällig für Double-Spending. Jemand könnte einen Burger kaufen und bezahlen und dann unmittelbar dieselben Mittel an seine eigene Adresse senden. Mit einer höheren Gebühr wird die neue Transaktion wahrscheinlich zuerst bestätigt und die ursprüngliche ungültig machen.

Um Double-Spending-Angriffe auf Bitcoin zu minimieren, warten Nutzer in der Regel, bis Transaktionen in einem Block bestätigt wurden. Bei Kleinbeträgen ist das Warten jedoch oft unpraktisch. In solchen Fällen kann die Annahme sofortiger Zahlungen den Händler der Gefahr von Double-Spends aussetzen. Ein Double-Spend tritt ein, wenn jemand bestellt und bezahlt und dann unmittelbar dieselben Mittel an eine andere Adresse sendet, die möglicherweise zuerst bestätigt wird und die ursprüngliche Transaktion ungültig macht.

Es gibt drei verbreitete Methoden, um ein Double-Spend durchzuführen.

  • Die erste ist ein 51%-Angriff, bei dem eine Entität oder Organisation mehr als 50 % der Hashrate kontrolliert und so Transaktionen ausschließen oder die Reihenfolge ändern kann.
  • Die zweite Methode ist ein Race-Angriff, bei dem zwei widersprüchliche Transaktionen nacheinander verbreitet werden, aber nur eine bestätigt wird. Das Ziel des Angreifers ist es, die Zahlung zu annullieren, indem nur die Transaktion validiert wird, die ihm nützt.
  • Schließlich beinhalten Finney-Angriffe, dass ein Angreifer eine Transaktion vorab in einen Block mined, diesen nicht sofort verbreitet, dieselben Coins in einer anderen Transaktion ausgibt und erst dann den zuvor geminten Block verbreitet, was die Zahlung ungültig machen kann.

Um das Risiko, Opfer eines Double-Spends zu werden, zu minimieren, sollte ein Händler vor der Annahme einer Zahlung auf Blockbestätigungen warten.

Fazit

Das Problem des Double-Spending liegt darin, dass ein Nutzer dieselben Mittel in einem elektronischen Zahlungssystem mehrfach verwendet, um finanziellen Vorteil zu erlangen. Lange Zeit gab es keine adäquate Lösung, was den Fortschritt in diesem Bereich behinderte.

Die Lösung durch Blind-Signaturen bot eine interessante Möglichkeit für zentralisierte Finanzsysteme. Später führten Proof-of-Work-Mechanismen und die Blockchain-Technologie zur Entstehung von Bitcoin als starker Form dezentralen Geldes, die wiederum tausende andere Kryptowährungsprojekte inspiriert hat.

Double Spending
Blockchain