Double-Spending bezeichnet in der Blockchain ein Angriffsszenario, bei dem ein Benutzer eine Kryptowährung mehrfach ausgeben kann. Diese Bedrohung besteht, weil digitale Währungen ohne physischen Nachweis dupliziert und übertragen werden können.
Was ist Double-Spending?
Double-Spending ist eine der größten Herausforderungen für Entwickler von Krypto-Währungen. Es beschreibt die Möglichkeit, dass ein Benutzer dieselbe Kryptowährung mehrmals ausgeben kann, wodurch eine Diskrepanz zwischen den Ausgaben und dem tatsächlich verfügbaren Betrag entsteht. Dies ist ein ernstes Problem, da es zu Unsicherheit und Verlust von Vertrauen in die Krypto-Währung führen kann.
Double-Spending tritt aufgrund der digitalen Natur von Kryptowährungen auf. Im Gegensatz zu Bargeld, welches physisch verfügbar ist, können Kryptowährungen dupliziert und digital übertragen werden. Eine Person könnte daher dieselbe Kryptowährung an zwei unterschiedliche Empfänger senden, was das Problem des Double-Spending verursacht.
Um dieses Problem zu bekämpfen, nutzen Kryptowährungen eine Technologie namens Blockchain. Die Blockchain ist eine öffentliche, dezentralisierte Aufzeichnung aller Transaktionen, die mit einer Krypto-Währung durchgeführt werden. Jede Transaktion wird über ein Netzwerk von Knoten verifiziert und in der Blockchain gespeichert, wodurch sichergestellt wird, dass dieselbe Kryptowährung nicht mehrmals ausgegeben werden kann.
Wichtige Stichpunkte:
- Ein technisches Problem, das sich bei der Idee einer digitalen Währung stellt, ist die Möglichkeit, dass jemand das digitale Geld duplizieren und es gleichzeitig an zwei oder mehr Orten ausgeben kann.
- Dieses Problem des „Double-Spending“ wird in blockchain-basierten Kryptowährungen wie Bitcoin durch einen Konsensmechanismus verhindert, der als Proof-of-Work (PoW) bekannt ist.
- Dieser PoW wird von einem dezentralisierten Netzwerk von „Minern“ durchgeführt, die nicht nur die Genauigkeit der vergangenen Transaktionen in der Buchhaltung der Blockchain sicherstellen, sondern auch Doppelausgaben aufdecken und verhindern
Wie funktioniert Double-Spending in der Blockchain?
Double-Spending verhindern
Die Blockchain, die einer digitalen Währung wie Bitcoin zugrunde liegt, ist allein nicht in der Lage, Double-Spending zu verhindern. Vielmehr werden alle verschiedenen Transaktionen mit der entsprechenden Kryptowährung in die Blockchain gebucht, wo sie separat geprüft und durch einen Bestätigungsprozess geschützt werden. Im Falle von Bitcoin und vielen anderen Kryptowährungen werden auf diese Weise bestätigte Transaktionen unumkehrbar; sie werden öffentlich bekannt gegeben und auf ewig aufbewahrt.
Bitcoin war die erste große digitale Währung, die das Problem des Double-Spending löste. Dies geschah durch die Implementierung dieses Bestätigungsmechanismus und die Aufrechterhaltung eines gemeinsamen, universellen Buchhaltungssystems. Auf diese Weise bewahrt die Bitcoin-Blockchain Aufzeichnungen über zeitgestempelte Transaktionen auf, die bis zur Gründung der Krypto-Währung im Jahr 2009 zurückreichen.
In der Blockchain ist ein „Block“ eine Datei mit permanent aufgezeichneten Daten. Alle neueren Transaktionen werden in Blöcke geschrieben, ähnlich wie ein Transaktionsbuch an einer Börse. Die Informationen aus den Blöcken werden alle paar Minuten dem Kassenbuch hinzugefügt; alle Knoten im Netzwerk führen eine Kopie des Blockchain-Kassenbuches. Benutzer können in der Blockchain für Bitcoin blättern und Transaktionen in Bezug auf die Menge überprüfen. Einzelheiten über die Identität des Käufers und Verkäufers in jeder Transaktion sind durch eine hochgradige Verschlüsselung geschützt, welche die Blockchain auch vor Manipulationen durch externe Quellen schützt. Wenn die Blockchain aktualisiert wird, werden auch alle Bitcoin-Wallets aktualisiert.
Der Umgang mit Double-Spending
Man stelle sich vor, man hat 1 BTC und versucht, diesen zweimal in zwei separaten Transaktionen auszugeben. Dies könnte man versuchen, indem man dieselbe BTC an zwei verschiedene Bitcoin-Adressen sendet. Beide Transaktionen gehen dann in den Pool der unbestätigten Transaktionen ein. Die erste Transaktion würde über den Bestätigungsmechanismus genehmigt und dann in den nachfolgenden Block verifiziert. Die zweite Transaktion würde jedoch durch den Bestätigungsmechanismus als ungültig erkannt und nicht verifiziert werden. Wenn beide Transaktionen gleichzeitig zur Bestätigung aus dem Pool gezogen werden, wird die Transaktion mit der höchsten Anzahl an Bestätigungen in die Blockchain aufgenommen, während die andere verworfen wird.
Damit ist das Problem des Double-Spending zwar effektiv gelöst, aber es ist nicht ganz ohne Probleme. Zum Beispiel hätte der beabsichtigte Empfänger der zweiten (fehlgeschlagenen) Transaktion keinen Anteil an der fehlgeschlagenen Transaktion selbst, und dennoch würde diese Person nicht die Bitcoin erhalten, die er oder sie erwartet hatte. Viele Händler warten auf mindestens 6 Bestätigungen einer Transaktion (was bedeutet, dass nach der fraglichen Transaktion 6 aufeinander folgende Transaktionsblöcke in die Blockchain aufgenommen wurden). Zu diesem Zeitpunkt kann der Händler sicher davon ausgehen, dass die Transaktion gültig ist.
Es gibt noch andere Schwachstellen in diesem System, die Angriffe mit Double-Spending ermöglichen könnten. Wenn ein Angreifer beispielsweise irgendwie in der Lage ist, mindestens 51% der Verfügungsgewalt über das Netzwerk zu kontrollieren, kann er doppelte Ausgaben tätigen. Wenn ein Angreifer irgendwie in der Lage wäre, die Kontrolle über diese große Rechenleistung zu erlangen, könnte er Transaktionen rückgängig machen und eine separate, alternative Blockchain schaffen. Das schnelle Wachstum von Bitcoin hat jedoch dafür gesorgt, dass diese Art von Angriffen praktisch unmöglich ist.
Proof of Work & Mining erklärt
Um das Risiko des Double-Spendings in der Praxis zu erkennen, verwendet das Bitcoin-Netzwerk Hashes und Proof-of-Work (PoW). Ein Hash ist eine lange Zahlenfolge, die durch Anwendung einer Hash-Funktion auf einen Datensatz erzeugt wird. Dabei wird immer nur ein einziger Hash generiert, der aufgrund des Lawineneffekts, durch den selbst kleinste Änderungen im Originaldatensatz zu einem völlig anderen Hash führen, nicht zurück zu den Originaldaten zu verwenden ist.
Um einen Block in die Blockchain aufzunehmen, müssen Miner einen gültigen Hash erzeugen, indem sie eine ganze Zahl, die Nonce genannt wird, hinzufügen. Dieser Prozess wird durch den Schwierigkeitsgrad erschwert, der so eingestellt wird, dass etwa alle 10 Minuten ein neuer Block hinzugefügt wird. Dieser Schwierigkeitsgrad wird durch ein Ziel für den Hash festgelegt, bei dem ein niedrigeres Ziel zu einer größeren Herausforderung führt.
Das Mining ist ein kompetitiver Prozess, aber eher eine Lotterie als ein Wettrennen. Die Miner schließen sich zusammen, um ihre Chancen auf den Blockabbau zu erhöhen und erhalten dafür Transaktionsgebühren sowie eine begrenzte Belohnung in Form neu geschaffener Bitcoins. Durch den Proof-of-Work ist es schwierig, irgendeinen Aspekt der Blockchain zu verändern, da dies den Neuabbau aller nachfolgenden Blöcke erfordern würde. Es ist auch schwer für einen Benutzer oder eine Gruppe von Benutzern, die Rechenleistung des Netzwerks zu monopolieren.