Doppelausgaben
![Double-spending bitcoin example](http://bitcoinwiki.org/wp-content/uploads/2023/12/400px-Double_spend-copy.jpg)
Double-Spending (Doppelausgaben) ist die erfolgreiche Verwendung der gleichen Mittel zweimal. Doppelausgaben von Bitcoin sind nicht möglich, da Bitcoin dank einer jeden Transaktion, die zur überprüfenden Blockchain hinzugefügt wird, vor einem Doppelausgabenproblem geschützt ist und die Mehrheit der in dieser Transaktion enthaltenen Mittel nicht zuvor ausgegeben werden konnte.
Doppelausgaben sind ein potenzieller Fehler in einem System vom digitalen Bargeld, bei dem dasselbe digitale Token mehr als einmal ausgegeben werden kann. Dies ist möglich, weil ein digitales Token aus einer digitalen Datei besteht, die dupliziert oder verfälscht werden kann. [1] Wie bei Falschgeld, solche Doppelausgaben führen zur Inflation durch Schaffung eines neuen Betrags betrügerischer Währung, die vorher nicht existierte. Dies entwertet die Währung im Verhältnis zu anderen Währungseinheiten und verringert das Benutzervertrauen sowie die Zirkulation und Beibehaltung der Währung. Grundlegende kryptographische Techniken zur Vermeidung von Doppelausgaben bei gleichzeitiger Wahrung der Anonymität in einer Transaktion sind blinde Signaturen und insbesondere in Offline-Systemen, Secret Splitting.
Inhaltsverzeichnis
Double-Spending in Blockchain
![double spending bitcoin](http://bitcoinwiki.org/wp-content/uploads/2023/12/360px-Tree_chain_two_branch.png)
Die folgenden Schritte sind erforderlich, ein erfolgreiches Problem mit zwei Ausgaben durchzuführen:
- Ausführen einer Transaktion, die vor der Zahlung ausgeführt wird.
- Heimliches Mining mit dem Block, der diese letzte Transaktion enthält.
- Warten Sie auf die Transaktion, die das Geld an den Verkäufer sendet, um genügend Bestätigungsblöcke zu erhalten, und der Verkäufer wird seine Waren übergeben, sicher, dass das Geld schließlich ihm zugeeignet ist.
- Fahren Sie fort, den geheimen alternativen Zweig zu minen, bis er mehr als öffentlich wird, danach wird er zum Netz übergetragen. Da die neue Filiale länger als alle anderen ist, wird sie als gültig angesehen, und die BTC-Übertragung an den Verkäufer wird durch das Senden von Münzen an den Angreifer ersetzt.
(a) – Vernetzen Status vor den Aktionen des Angreifers. (b) – Die Verzweigung Links enthält eine Transaktion zum Senden von btc an den Verkäufer. Hat 2 Bestätigungen. Daraufhin hat der Verkäufer sein Produkt übergeben. Zu diesem Zeitpunkt hat der Angreifer einen Block generiert, der die angreifende Transaktion enthält. (c) Wenn es dem Angreifer gelingt, eine längere Kette zu erstellen, postet er sie im Netzwerk und die Bitcoins werden ihm zurückgegeben.
Es stellt sich die Frage: Wie hoch ist die Wahrscheinlichkeit, dass ein Angreifer eine Verzweigung generieren kann, die länger ist als die Verzweigung, die von allen anderen erstellt wird?
Um die Situation zu simulieren, lassen Sie uns einige vereinfachende Annahmen treffen, die wir in der folgenden Analyse verwenden werden: Die Gesamtgeschwindigkeit des Abbaus im allgemeinen Netzwerk und des Angreifers bleibt konstant. Die gesamte Abbaugeschwindigkeit wird H sein, wobei sich ein Teil von pH
auf ehrliche Miners und qH
auf den Angreifer bezieht. Zur gleichen Zeit: p + q = 1
. Das heißt, die Wahrscheinlichkeit, dass der Block ein ehrliches Netzwerk findet, ist p
und der Angreifer ist q
.
Die Komplexität von Mining bleibt konstant. Wir bezeichnen z = n – m
die Anzahl der Blöcke, in denen ein ehrliches Netzwerk gegenüber einem Angreifer einen Vorteil hat. Nach jeder Entdeckung eines neuen Blocks ändert sich z, genauer zu sahen, z steigt um 1, wenn Block von einem ehrlichen Netzwerk gefunden wird, und sinkt um 1, wenn der Angreifer es tut. Mathematisch ist dies eine Markov-Kette. Wenn z den Wert -1 erreicht, schlägt der Angriff fehl. Wenn dies nie passiert, ist der Angriff fehlgeschlagen. Da wir daran interessiert sind, ob z = -1 jemals werden wird, und wann es passieren wird, können wir Markov`s Kettentheorie verwenden, um das Problem zu lösen, wobei jeder Schritt die Tatsache repräsentiert, den Block von jemandem zu finden. zi + 1
kann (zi+ 1)
mit der Wahrscheinlichkeit p
oder (zi - 1)
mit der Wahrscheinlichkeit q
sein.
Vermeidung der Doppelausgaben
Die Vermeidung der Doppelausgaben hat zwei allgemeine Formen: zentralisiert und dezentralisiert.
Der Wert des „Doppelausgaben“-Problems ist, dass Bitcoin oder Teile davon mehr als einmal ausgegeben werden können, d.h. es ist möglich, eine theoretisch unmögliche Operation durchzuführen. Ein Mechanismus zur Überprüfung von Transaktionen wurde entwickelt, dieses Problem zu bekämpfen. Die Bestätigung erfolgt in der folgenden Reihenfolge:
- Durchführung der Transaktion.
- Die Aufnahme von Transaktionen in den Block.
- Bestätigung der Transaktion. Der Status einer „legitimen“ Transaktion wird nach sechs Bestätigungen vergeben. Diese Anzahl von Bestätigungen basiert auf der Wahrscheinlichkeitstheorie, nach der das Risiko einer solchen Operation unbedeutend ist (weniger als 0,1%). Die Gründer des entwickelten Schutzmechanismus sind der Ansicht, dass eine Person nicht mehr als zehn Prozent der Miners des Netzwerks besitzen kann. Wie Sie wissen, speichern Miners alle Informationen über das Netzwerk und bestätigen Transaktionen.
- Die Transaktion wird als legitim anerkannt.
Zentralisiert
Dies wird normalerweise unter Verwendung einer zentralen vertrauenswürdigen dritten Partei implementiert, die überprüfen kann, ob ein Token ausgegeben wurde. [1] Dies stellt normalerweise einen einzigen Fehlerpunkt sowohl aus Sicht der Verfügbarkeit als auch aus Vertrauenswürdigkeit dar.
Dezentralisiert
Bis 2007 wurde eine Reihe verteilter Systeme zur Vermeidung von Doppelausgaben vorgeschlagen.
Die Kryptowährung Bitcoin implementiert eine Lösung im Frühjahr 2009. Es verwendet ein kryptografisches Protokoll namens Proof-of-Work, um die Notwendigkeit für eine vertrauenswürdige dritte Partei zu vermeiden, Transaktionen zu validieren. Stattdessen werden Transaktionen in einem öffentlichen , Blockchain genannt, aufgezeichnet. Eine Transaktion gilt als gültig, wenn sie in der Blockchain enthalten ist, die den größten Rechenaufwand enthält. Dies macht eine doppelte Ausgabe unmöglich und unbegreiflicher, wenn die Größe des gesamten Netzwerks wächst. Andere Kryptowährungen haben auch ähnliche Eigenschaften [2].
Arten von Bitcoin-Angriffen
Race Angriff
Wenn die Transaktion keine Bestätigungen hat, können Geschäfte und Dienstleistungen, die Zahlung akzeptieren, einem sogenannten „Race attack“ ausgesetzt sein. Zum Beispiel werden zwei Transaktionen aus denselben Fonds erstellt und dann an verschiedene Shops / Services gesendet. In diesem Fall erhält nur einer dieser Shops das Geld – eine Transaktion aus diesem Shop erscheint zuerst in der Blockchain.
Shops können zahlreiche Vorsichtsmaßnahmen ergreifen, um diese Art von Angriff zu reduzieren, aber es ist immer gut, sich daran zu erinnern, sollten Sie Transaktionen ohne Bestätigung akzeptieren.
Finney Angriff
Eine andere Art vom Angriff. Geschäfte oder Dienstleistungen, die Transaktionen ohne Bestätigung akzeptieren, sind betroffen. „Finney Attack“ ist ein Angriff, der die Teilnahme des Mining-Experten erfordert, um wiederholte Transaktionen zum Block hinzuzufügen. Das Risiko eines solchen Angriffs kann unabhängig von präventiven Maßnahmen von Geschäften oder Dienstleistungen nicht auf Null reduziert werden, erfordert jedoch die Beteiligung eines Mining-Experten und eine ideale Kombination von beitragenden Faktoren. Es kostet viel Geld und ist keine Kleinigkeit. Genau wie bei der anderen Art vom Angriff muss der Laden oder Dienst seine Politik bezüglich Transaktionen ohne irgendeine Bestätigung ernsthaft betrachten.
Vektor76 Angriff
Auch als „Angriff mit Bestätigung“ bezeichnet. Dies ist eine Kombination der beiden oben genannten Angriffe, die dem Täter die Möglichkeit geben, zweimal mit einer Bestätigung Geld auszugeben.
Brute Force Angriff
Dieser Angriff ist auch dann möglich, wenn der Shop oder Dienst mehrere Transaktionsbestätigungen erwartet. Es erfordert, dass der Angreifer im Besitz von relativ leistungsfähiger Hardware (Hash-Frequenz) ist.
Der Täter sendet eine Transaktion an den Shop, die für ein Produkt / eine Dienstleistung bezahlt, und sucht weiterhin nach einer Verbindung in der Blockchain (Blockchain Fork), die diese Transaktion erkennt. Nach einer bestimmten Anzahl von Bestätigungen sendet der Shop das Produkt. Wenn der Täter an dieser Stelle mehr als n Blöcke gefunden hat, bricht er seine Blockchain Fork und erhält sein Geld zurück, aber wenn der Täter dies nicht geschafft hat, kann der Angriff als Fehlschlag gewertet werden und das Geld wird an den Laden geschickt, wie sollte der Fall sein.
Der Erfolg dieses Angriffs hängt von der Geschwindigkeit (Häufigkeit von Hash) des Angreifers und der Anzahl der Bestätigungen für den Shop / Dienst ab. Wenn der Angreifer beispielsweise 10% der Rechenleistung des Bitcoin-Netzwerks besitzt und der Shop 6 Bestätigungen für eine erfolgreiche Transaktion erwartet, beträgt die Erfolgswahrscheinlichkeit eines solchen Angriffs 0,1%.
> 50% Attacke
- Hauptsrtikel: 51-Prozent-Angriffe
Wenn der Täter mehr als 50% der Bitcoin-Macht kontrolliert, ist die Erfolgswahrscheinlichkeit des oben genannten Angriffs 100%. Aufgrund der Tatsache, dass der Täter öfter Blöcke generieren kann als der andere Teil des Netzwerks, kann er seine eigene Blockchain erstellen, bis er länger als der „integrale“ Teil des Netzwerks wird.