Montag, 10. Februar 2014

Bitcoin Bug, Preissturz und Mt. Gox

Als ich heute bei Fefe lesen musste, dass der Bitcoin tot sei und anschließend den Abwärztrend des Bitcoins sah, bin ich erst einmal ordentlich erschrocken. Nachdem ich mir aber näher angeschaut habe, was denn der Bug ist, musste ich schnell feststellen, dass Fefe doch manchmal gerne mal übertreibt.

Was war?

Kurz gesagt: Die Bitcoin Börse Mt. Gox wurde betrogen und Privatläute haben nichts zu befürchten. Darüber, ob man von einem Fehler im Bitcoin System sprechen kann oder ob es an dieser Stelle einfach nur unpraktisch ist, kann man sich sicher streiten.

Ganz einfache Erklärung

Nun mal zu den Basics. Um Geld von A nach B zu überweisen, wird im Bitcoin Netzwerk eine Transaktion erstellt. Das ist vereinfacht gesagt eine Sammlung aus Daten, die folgendes enthält:

  • Die Zieladresse und der Betrag bzw mehrere Zieladressen mit den zugehoerigen Betraegen
  • Eine oder mehrere Transaktionen und eine digitale Signatur dazu, um zu bestätigen, dass die Quelle im Besitz der Bitcoins ist.
  • Ein bischen anderes Zeug, das aber jetzt nicht wichtig ist.

Dadurch können in einer Bitcoin Transaktion mehrere Überweisungen in einem Schritt getätigt werden, da mehrere Quellen und Ziele möglich sind.

Um jeder Transaktion einen eindeutigen Namen zu geben, wird eine Prüfsumme über all diese Daten gebildet. Diese Prüfsumme ist jedoch nicht eine normale Summe. Ihre Berechnung ist darauf ausgelegt, dass eine kleine Änderung eine ganz andere Prüfsumme ergibt. Das passiert auch, wenn zum Beispiel Werte vertauscht werden.

Wie es gedacht ist

Lässt man sich von der Tauschbörse Mt. Gox Bitcoins auf ein Konto auszahlen, so erhät man diese Prüfsumme, welche als Name der Transaktion gilt. Diese wird einige Minuten später im Bitcoin Netzwerk "eingebrannt". Hat man keine Bitcoins erhalten, kann man sich an Mt Gox wenden, ihnen schreiben, dass die diese Transaktion nicht geklappt hat und sie zahlen die Bitcoins erneut aus. Das ist so, als wenn man eine Wahre von einem Onlineshop nicht erhält und sie bittet, diese erneut zu senden. Um zu überprüfen, ob die Reklamation stimmt, prüft Mt. Gox, ob der Transaktionsname nicht im Bitcoinnetzwerk vorhanden ist. Da diese Börsen sehr häufig Bitcoins auszahlen, verpacken sie sehr viele Auszahlungen gleichzeitig in einer Transaktion.

Nun der Hack

Jetzt kommen die Übeltäter ins Spiel! Diese lassen sich Bitcons auszahlen und verändern anschließend die Transaktion. Dazu reicht es zum Beispiel aus, zwei Adressen zu vertauschen, wodurch die Prüfsumme und somit der Name der Transaktion sich komplett ändert. Jedoch ändert sich sonst an der Überweisung nichts, wodurch sie vom Netzwerk akzeptiert werden kann. Es kann aber auch die originale Transaktion akzeptiert werden, jedoch nur eine von beiden. Das Geld wird also in jedem Fall von Mt. Gox abgezogen und den Adressen gutgeschrieben.

Hat das Netzwerk die veränderte Transaktion akzeptiert, dann hat sich auch deren Name geändert, der Mt. Gox bekannt ist. Nun beschweren sich unsere Bösewichte bei Mt. Gox, dass das Geld nicht angekommen sei (obwohl es das ist!). Mt. Gox findet den Transaktionsnamen nicht und zahlt erneut aus. Die Bösen haben also 2x kassiert.

Wo manipuliert wird ist mir nicht ganz klar. Entweder geschieht das, indem man die Transaktion abfängt und verändert weiterschickt oder beim "einbrennen" selber. Dass man selber beim "einbrennen" beteiligt sein kann ist jedoch sehr unwahrscheinlich. Bei meinem PC ist das beispielsweise im Schnitt ca ein mal in 200 Jahren. Das Abfangen muss sehr früh passieren, da sich sonst die originale Transaktion verbreitet hat und damit keine veränderte Version vom Netzwerk akzeptiert wird. Ist ist also sehr schwer, die Transaktion zu manipulieren oder ich übersehe etwas. Das ist jedoch egal, denn es ist möglich.

Mt. Gox soll halt dann genauer prüfen

Es reicht also nicht für den Mt. Gox, einfach die Transaktions ID zu prüfen. Jedoch kann er problemlos die Transaktionen speichern und bei Reklamationen überprüfen, ob die Zieladresse den Betrag erhalten hat. Das ist jedoch etwas mehr Aufwand aber durchaus umsetzbar. Jedoch ist mir jetzt nicht klar, wieso sie generell Auszahlungen stoppen. Sie haben mit den langweiligen, herkömmlichen Währungen ja schon eine Weile lang Probleme, auszuzahlen. Dadurch, dass sie jetzt auch noch keine Bitcoins auszahlen, machen sie sich keine Freunde.

Somit gilt: Eure Wallets sind nach wie vor sicher solange ihr darauf aufpasst! Niemals würde ich meine Bitcoins, falls ich welche habe, anderen online anvertrauen.

Und cool ist, dass man billig einkaufen kann :P

Der "Bug" im Bitcoin Netz ist übrigens seit 2011 bekannt und dokumentiert und Mt. Gox hätte schon lange darauf reagieren können.