Was ist Double Spending?

Letzte Aktualisierung am 30. März 2018 um 17:46

Die meisten Kryptowährungen sind dezentral organisiert. Das schafft auf der einen Seite Unabhängigkeit von zentralen Organisationen, auf der anderen Seite entstehen so auch neue Probleme. Ohne zentrale Kontrolle sind Manipulationen möglich, insbesondere das sogenannte Double Spending. Hierbei versucht ein Angreifer einen Coin mehrfach auszugeben. 

Digitale Güter können leicht kopiert werden. Das gilt für Fotos genauso wie für MP3s. Diese Kopien sind nicht nur identisch, sondern auch praktisch kostenlos. Auf Grund dieser Erfahrung fragen sich Krypto-Anfänger häufig, ob es nicht genauso möglich wäre seine Coins zu kopieren. Schließlich speichert man sie ja auf seinem Rechner. Wäre dies möglich, wären Bitcoin & Co. kaum so erfolgreich. Was man tatsächlich auf seinem Rechner speichert wird im Artikel über Blockchains und über Wallets ausführlich erklärt.

Double Spending: Coins mehrfach ausgeben

Mann kann einen Coin kann also nicht kopieren. Jedoch ist in dezentralen Systemen grundsätzlich möglich einen Coin mehrfach auszugeben. Dazu erstellt man zwei signierte Transaktionen. Jede Transaktion überträgt das komplette Guthaben eines Wallets an zwei unterschiedliche Empfänger. Der Angreifer übergibt sie an unterschiedlichen Stellen ans Netzwerk.

Hierbei versucht ein Angreifer auszunutzen, dass ein Miner nicht weiß woran ein anderer Miner arbeitet. Deswegen ist es möglich, dass Miner 1 die Transaktion mit Empfänger A akzeptiert und Miner 2 die Transaktion mit Empfänger B. Das ist zunächst einmal nicht schlimm, sofern sichergestellt ist, dass nur eine Transaktion ausgeführt wird. Um dies sicherzustellen werden Transaktionen nicht unmittelbar festgeschrieben, sondern blockweise gebündelt. Jeder Miner überprüft, dass in seinem Block kein Double Spending vorkommt, also kein Coin doppelt ausgegeben wird. Ob nun Miner 1 oder Miner 2 den jeweils gültigen Block schreiben darf bestimmt das Konsensus-Verfahren der Blockchain. Wichtig ist zu verstehen, dass grundsätzlich beide Transaktionen gültig sind. Durch das blockweise Schreiben von Transaktionen schafft es aber nur eine Transaktion in die Blockchain. Diese Transaktion wird tatsächlich ausgeführt. Die andere wird verworfen.