Double Spending: ErklÀrung
Startseite
Artikel
Double Spending: ErklÀrung

Double Spending: ErklÀrung

Mittel
Veröffentlicht Feb 17, 2020Aktualisiert Jan 31, 2023
7m

Was ist Double Spending?

In einem digitalen Geldsystem bezeichnet Double Spending („doppelte Ausgaben“) eine betrĂŒgerische AktivitĂ€t, bei der dasselbe Geld gleichzeitig an zwei EmpfĂ€nger gesendet wird, was ein Risiko fĂŒr das System darstellt. Ohne angemessene Gegenmaßnahmen, die das Problem lösen, wĂŒrde ein Protokoll grundlegend untergraben, denn die Nutzer haben keine Möglichkeit, zu ĂŒberprĂŒfen, ob die erhaltenen Mittel nicht bereits anderweitig ausgegeben wurden.

FĂŒr ein digitales Geldsystem ist es von grĂ¶ĂŸter Bedeutung, dass Geldeinheiten nicht dupliziert werden können. Das gesamte System wĂŒrde untergraben, wenn Alice 10 Einheiten erhalten, sie 10 Mal kopieren und einfĂŒgen könnte und dann im Besitz von 100 Einheiten wĂ€re. Ebenso kann ein solches System nicht funktionieren, wenn sie dieselben 10 Einheiten gleichzeitig an Bob und Carol schicken kann. Damit Digitalgeld funktioniert, muss es also Mechanismen geben, die ein solches Verhalten verhindern.


Wie kann Double Spending verhindert werden?

Der zentralisierte Ansatz

Zentralisierte Lösungen sind wesentlich einfacher zu realisieren als dezentrale. Sie verfĂŒgen in der Regel ĂŒber eine Kontrollinstanz, die das gesamte System verwaltet und die Ausgabe und Verteilung der Einheiten kontrolliert. Ein gutes Beispiel fĂŒr eine zentralisierte Lösung fĂŒr das Problem der doppelten Ausgaben ist das von Kryptograf David Chaum entwickelte eCash-System. 

Die von Chaum in seinem Whitepaper Blind Signatures for Untraceable Payments aus dem Jahr 1982 beschriebenen Blindsignaturen können von einer Bank verwendet werden, um fĂŒr Nutzer Digitalgeld zu schaffen, das AnonymitĂ€t gewĂ€hrleistet und Peer-to-Peer-Transaktionen ermöglicht.

Wenn in diesem Fall ein Nutzer – nennen wir ihn Dan – 100 Dollar in Digitalgeld erhalten möchte, muss er dies zuerst der Bank mitteilen. Vorausgesetzt, Dan hat den Betrag auf seinem Konto, wird er eine Zufallszahl generieren (oder bei kleineren StĂŒckelungen mehrere). In diesem Beispiel erzeugt er fĂŒnf Zufallszahlen, denen jeweils ein Wert von 20 Dollar zugewiesen wird. Um die Bank daran zu hindern, diese Einheiten nachzuverfolgen, verschleiert Dan außerdem die Zufallszahlen, indem er jeder dieser Zahlen einen Blindfaktor hinzufĂŒgt.

Dann sendet er diese Informationen der Bank, die seinem Konto 100 Dollar belastet, und bestĂ€tigt mit seiner Signatur, dass jedes der fĂŒnf Datenelemente gegen 20 Dollar getauscht werden kann. Dan kann nun das von der Bank ausgegebene Geld verwenden. Er besucht Erins Restaurant gibt dort 40 Dollar fĂŒr eine Mahlzeit aus. 

Dan kann den Blindfaktor entfernen, um die mit jedem digitalen „Geldschein“ verbundene Zufallszahl offenzulegen, die als eindeutige Kennung fĂŒr jede Einheit dient (Ă€hnlich wie eine Seriennummer). Zwei davon verrĂ€t er Erin, die die digitalen Geldscheine nun sofort bei der Bank umtauschen muss, bevor sie Dan möglicherweise bei einem anderen Anbieter ausgibt. Die Bank prĂŒft, ob die Unterschriften gĂŒltig sind, und wenn alles korrekt ist, schreibt sie Erins Konto 40 Dollar gut.

Die verwendeten Scheine sind nun im Wesentlichen „verbrannt“, und es mĂŒssen mehr ausgestellt werden, wenn Erin ihren neuen Saldo auf die gleiche Weise ausgeben will.

Das eCash-System von Chaum könnte fĂŒr private Überweisungen durchaus nĂŒtzlich sein, aber es scheitert an seiner Resilienz, weil die Bank eine zentrale Schwachstelle ist. Ein ausgegebener Schein ist an sich nichts wert, da sein Wert alleine von der Bereitschaft der Bank abhĂ€ngt, ihn in Dollar umzutauschen. Die Kunden sind der Bank ausgeliefert und mĂŒssen sich auf deren guten Willen verlassen, damit das Geldsystem funktioniert. Genau dieses Problem sollen KryptowĂ€hrungen lösen.


Der dezentralisierte Ansatz

Es ist eine grĂ¶ĂŸere Herausforderung, sicherzustellen, dass die Mittel in einem Ökosystem ohne Kontrollinstanz nicht doppelt ausgegeben werden können. Gleichstarke Teilnehmer mĂŒssen sich anhand einer Reihe von Regeln koordinieren, die Betrug verhindern und alle Nutzer zu ehrlichem Handeln anregen.

Die grĂ¶ĂŸte Innovation im Bitcoin-Whitepaper war eine Lösung fĂŒr das Problem der doppelten Ausgaben. Obwohl es nicht ausdrĂŒcklich erwĂ€hnt wird, schlug Satoshi die Datenstruktur vor, die heute gemeinhin als Blockchain bekannt ist.

Eine Blockchain ist eigentlich nichts anderes als eine Datenbank mit einigen einzigartigen Eigenschaften. Die Teilnehmer im Netzwerk (sogenannte Knoten) betreiben eine spezielle Software, die es ihnen erlaubt, ihre Kopie der Datenbank mit ihren Peers zu synchronisieren. Auf diese Weise kann das gesamte Netzwerk den Transaktionsverlauf ĂŒberprĂŒfen, der bis zum Genesis-Block zurĂŒckreicht. Da die Blockchain öffentlich einsehbar ist, können betrĂŒgerische AktivitĂ€ten wie Double Spending-Versuche leicht identifiziert und verhindert werden.

Wenn ein Nutzer eine Transaktion sendet, wird diese nicht sofort zur Blockchain hinzugefĂŒgt, sondern muss zuerst durch Mining in einen Block aufgenommen werden. Daher sollte der EmpfĂ€nger die Transaktion erst dann als gĂŒltig betrachten, nachdem ihr Block an die Blockchain angehĂ€ngt wurde. Andernfalls riskiert er den Verlust der Mittel, da der Absender dieselben Coins anderswo ausgeben könnte. 

Sobald die Transaktion bestĂ€tigt ist, können die Coins nicht mehr doppelt ausgegeben werden, da die Eigentumsrechte an einen neuen Nutzer ĂŒbertragen wurden – und das gesamte Netzwerk kann dies ĂŒberprĂŒfen. Aus diesem Grund wird hĂ€ufig empfohlen, mehrere BestĂ€tigungen abzuwarten, bevor eine Zahlung als gĂŒltig angenommen wird. Mit jedem zusĂ€tzlich hinzugefĂŒgten Block erhöht sich der Aufwand fĂŒr das Ändern oder Neuschreiben des Blocks mit dieser Zahlung (Stichwort: 51%-Angriff) drastisch.

Kommen wir noch einmal auf vorherige Beispiel zurĂŒck. Dan besucht Eris Restaurant erneut und bemerkt diesmal einen Aufkleber am Fenster, auf dem „Wir akzeptieren Bitcoin“ steht. Ihm hat das Essen vom letzten Mal geschmeckt, also bestellt er es noch einmal. Es kostet ihn 0,005 BTC. 

Erin gibt ihm eine öffentliche Adresse an, an die er den Betrag senden soll. Dan fĂŒhrt die Transaktion aus. Es handelt sich im Wesentlichen um eine signierte Nachricht, die besagt, dass die 0,005 BTC, die sich im Besitz von Dan befanden, nun in Erins Besitz sind. Ohne zu sehr ins Detail zu gehen, kann jeder, dem Dans signierte Transaktion vorgelegt wird, bestĂ€tigen, dass Dan tatsĂ€chlich im Besitz der Coins war und daher die Befugnis hatte, sie auszugeben.

Wie bereits erwĂ€hnt, ist die Transaktion jedoch nur gĂŒltig, wenn der Block, in dem sie enthalten ist, auch bestĂ€tigt wird. Eine unbestĂ€tigte Transaktionen ist mit den 40 Dollar in eCash aus dem vorherigen Beispiel vergleichbar, bevor sie bei der Bank in physisches Geld getauscht werden: der Sender kann sie woanders ein zweites Mal ausgeben. Es wird also empfohlen, dass Erin mindestens 6 BlockbestĂ€tigungen (etwa eine Stunde) abwartet, bevor sie Dans Zahlung akzeptiert.


Double Spending bei Bitcoin

Bitcoin wurde mit Sorgfalt entwickelt, um Double Spending-Angriffen vorzubeugen, zumindest wenn das Protokoll erwartungsgemĂ€ĂŸ verwendet wird. Nachdem ein Block mit einer Transaktion einmal bestĂ€tigt worden ist, gibt es fĂŒr den Sender keine einfache Möglichkeit, die Transaktion rĂŒckgĂ€ngig zu machen. Dazu mĂŒsste er die Blockchain „rĂŒckgĂ€ngig machen“, was ein unrealistisches Maß an Hashing-Power erfordern wĂŒrde.

Es gibt jedoch Double Spending-Angreifer, die es spezifisch auf Nutzer abgesehen haben, die unbestĂ€tigte Transaktionen akzeptieren. Bei VerkĂ€ufen von geringem Wert möchte ein HĂ€ndler möglicherweise nicht darauf warten, bis die entsprechenden Transaktionen in einen Block aufgenommen werden. Ein vielbesuchtes Fast Food-Restaurant kann es sich wahrscheinlich nicht leisten, bei jedem Verkauf auf die Abwicklung im Netzwerk zu warten. Wenn ein GeschĂ€ft also „Sofortzahlungen“ akzeptiert, wird es anfĂ€llig fĂŒr Double Spending-Angriffe. Jemand könnte einen Burger bestellen, ihn bezahlen und dann sofort dieselben Mittel an seine eigene Adresse schicken. WĂ€hlt dieser BetrĂŒger nun fĂŒr die zweite Transaktion eine höhere GebĂŒhr, als fĂŒr die erste fĂ€llig ist, wird diese neue Transaktion wahrscheinlich zuerst bestĂ€tigt und damit die erste ungĂŒltig.

Es gibt drei beliebte Methoden zur TĂ€tigung von Doppelausgaben:

  • 51% Angriffe: Einer einzelnen Person oder Organisation gelingt es, mehr als 50% der Hash-Rate zu kontrollieren, was es ihr ermöglicht, Transaktionen auszuschließen oder deren Reihenfolge zu Ă€ndern. Ein solcher Angriff ist bei Bitcoin höchst unwahrscheinlich, ist aber bei anderen Netzwerken schon vorgekommen.

  • Konkurrenz-Angriffe (Race-Attacks): Zwei konkurrierende Transaktionen werden nacheinander gesendet, wobei dieselben Mittel verwendet werden – bestĂ€tigt werden kann aber nur eine Transaktion. Das Ziel des Angreifers ist es, die Transaktion mit der Zahlung an einen Dritten zu annullieren, indem er sicherstellt, dass nur die Transaktion validiert wird, die ihm zugutekommt (er könnte z.B. die Mittel an eine von ihm kontrollierte Adresse senden). Bei Konkurrenz-Angriffen bleibt dem EmpfĂ€nger nichts anderes ĂŒbrig, als eine unbestĂ€tigte Transaktion als Zahlung zu akzeptieren.

  • Finney-Angriffe: Ein Miner nimmt eine Transaktion, z.B. fĂŒr eine Zahlung, in einen Pre-Mining-Block auf, ohne diesen sofort im Netzwerk weiterzuleiten. Stattdessen gibt er dieselben Coins im Rahmen einer anderen Transaktion aus und verbreitet erst dann seinen zuvor erstellten Block, was zur UngĂŒltigkeit der ersten Transaktion fĂŒhren kann. Finney-Angriffe erfordern eine bestimmte Abfolge von Ereignissen und dass der EmpfĂ€nger nicht-bestĂ€tigte Transaktionen akzeptiert.

Wie wir sehen, wird ein HÀndler, der auf BlockbestÀtigungen wartet, das Risiko, Opfer eines Double-Spending-Angriffs zu werden, erheblich verringern.


Zusammenfassung

Double Spending erlaubt es einem Benutzer, ein elektronisches Geldsystem zu manipulieren, um einen finanziellen Gewinn zu erzielen, indem er die gleichen GeldbetrĂ€ge mehr als einmal verwendet. Traditionell stand dem Fortschritt in diesem Bereich ein Mangel an angemessenen Lösungen fĂŒr das Problem im Wege.

GlĂŒcklicherweise boten zunĂ€chst Blindsignaturen eine interessante Lösung fĂŒr zentralisierte Finanzanwendungen. SpĂ€ter legte die Schaffung von Proof of Work-Mechanismen und der Blockchain-Technologie den Grundstein fĂŒr Bitcoin als eine effektive Form von dezentralem Digitalgeld, was wiederum Tausende von anderen KryptowĂ€hrungsprojekte inspirierte.

Beitrag teilen
Eröffne ein Konto
Setze dein Wissen in die Praxis um und eröffne noch heute ein Binance-Konto.