Momentan ist ja in Berlin der 28. Congress des CCCs, also eine Massenveranstaltung für Hacker, Sicherheitsinteressierte und solche, die es werden wollen, und mal wieder total überbelegt.
Einer der Vorträge wurde vom bekannten Sicherheitsexperten Dan Kaminsky gehalten und drehte sich ums Thema "Black Ops of TCP/IP 2011", einem großen Teil seines Vortrages widmete er einer sicherheitskritischen Bewertung des Systems Bitcoins und dessen Implementierung (Folien zum Vortrag gibt es hier:
Black Ops of TCP/IP 2011 « Dan Kaminsky's Blog ).
Wenn Kaminsky wo zuschlägt, dann bleibt meistens kein Auge trocken, weil er erstens wirklich gut darin ist, die Schwachpunkte eines Systems, das als sicher gilt, zu finden und aufzuzeigen, dass dem nicht so ist - und er zweitens meistens mit seinen Analysen Recht hat. Kaminsky genießt ein hohes Ansehen in der Branche, unter anderem ist er auch derjenige, der 2008 den berüchtigten DNS-Bug herausfand und publizierte (Spiegel Online dazu:
Internet-Zentralregister DNS: Wie ein Riesenloch im Netz die Sicherheit bedroht - SPIEGEL ONLINE - Nachrichten - Netzwelt ).
Seinem Ruf wird Kaminsky bei dem Vortrag mal wieder mehr als gerecht, und seine Analyse über Bitcoin hat es in sich, denn nach Kaminsky ist Bitcoin weder anonym, sicher noch skaliert es wirklich gut. Kurz gesagt: es ist fürn Arsch. Aber nun gehen wir mal ins Detail.
Nach Kaminsky ist Bitcoin das: "Ein Overlaynetzwerk des Internets, von dem seine Benutzer
glauben, dass es gewisse Eigenschaften habe."
Das bedeutet schon: es hat diese Eigenschaften nicht.
Er selber findet Bitcoin höchst erstaunlich, weil ganze Klassen an Fehlern einfach nicht da sind und es auch schwer sei, es zu verstehen. Zitat: "The first five times you think you understand it, you don´t." Weiterhin sagte er, dass man sich besser gleich den Code anschauen sollte, weil die Spezifikation des Systems seit Ewigkeiten nicht mehr aktualisiert worden sei.
Bitcoin hat nach seiner Analyse fast alle Fehlerquellen abgestellt, die nicht durch das Design selbst existieren würden.
Bitcoin selber skaliert nach Kaminsky nicht, er vergleicht das mit Visa: angenommen, es würden 2000 Transaktionen pro Sekunde stattfinden, dann müsste pro Sekunde ein Gigabyte durchs Internet gejagt werden, damit das System noch funktionieren würde, man bräuchte alleine dafür eine Bandbreite von 8 Gigabit/Sekunde.
Dazu kommen noch hohe Anforderungen an den Cluster (Client ?), nämlich mindestens 50 Prozessorkerne plus ein Haufen GPUs fürs Mining und weil Bitcoin grundsätzlich alle jeweils stattgefundenen Transaktionen auf jedem Client speichert, würde man alle 21 Tage eine neue 3 Terabytefestplatte brauchen (Kostenpunkt um die 200 Euro).
Dann gibt es im Netzwerk normale Nodes und Supernodes. Supernodes sind für ihn Banken, er beschreibt es so: "Ein herzliches Willkommen dem neuen Chef, der dem alten Chef verdammt ähnlich sieht."
Weiterhin meint er, dass das Peer-to-Peer-Modell irgendwann verschwinden könnte, denn wenn etwas groß genug werden würde, würde es meist auf ein Banksystem umschwenken.
Aufgrund der Internas, wie Bitcoin arbeitet, kann jeder nach Kaminsky an eine valide Transaktion zusätzliche Informationen dranhängen.
Nach Kaminsky gibt es momentan ca. 50000 Nodes im Netzwerk. Um herauszufinden, wer die Quelle einer Transaktion ist, müsse man nur seinen Client gleichzeitig mit allen Nodes des Netzwerks verbinden. Das geht inzwischen sogar in der Skriptsprache Python und wurde schon verwirklicht. Der erste Node, der dann einen über eine neue Transaktion informiert, ist gleichzeitig die Quelle dieser Transaktion. Damit kann man Transaktionen eindeutig IP-Adressen zuordnen. Ein positiver Nebeneffekt eines solchen Clients sei es, dass eigene Transaktionen so rasend schnell funktionieren.
Das herausfinden von Nodes sei einfach: man müsse nur spezielle IRC-Kanäle abgrasen und das Internet nach Rechnern mit offenem Port 8333/TCP, zusätzlich kann man die bereits bekannten Nodes nach deren verbundenen Nodes abfragen.
Eine wichtige Erkenntnis von Kaminsky ist diese: Bitcointransaktionen sind zwar anonymer als Paypal oder Kreditkarten, aber wenn man nicht spezielle Vorkehrungen trifft wie den Betrieb über I2P oder Tor, dann ist es ziemlich sicher, dass ein motivierter Angreifer die eigenen Transaktionen der eigenen IP zuordnen kann.