Bitcoin: Kryptographie der virtuellen Währung

Bitcoin ist der bislang erste erfolgreiche Versuch, eine Währung auf Basis von kryptographischen Algorithmen zu erstellen. Hinter Bitcoin steht keine zentrale Bank und keine feste Organisation. Damit so ein System funktioniert, sind eine Reihe von Herausforderungen zu meistern. Zentral ist die Idee, dass alle Geldtransaktionen dauerhaft gespeichert und für alle nachvollziehbar sind. Dazu kommt das Konzept des "Minings", bei dem Teilnehmer, die umfangreiche Hash-Berechnungen durchführen, belohnt werden. Das Herzstück von Bitcoin ist die sogenannte Block Chain, ein ewiges Logfile über alle Bitcoin-Transaktionen.
Die größte Schwierigkeit einer Digitalwährung ist das sogenannte "Double Spending"-Problem. Darunter wird schlicht die Tatsache verstanden, dass sich digitale Daten üblicherweise trivial und verlustfrei kopieren lassen. Geld, das sich trivial kopieren lässt, ergibt keinen Sinn, denn Tauschwert hat eine Währung nur, wenn sie knapp ist. Um das mehrfache Ausgeben einer Bitcoin zu verhindern, wird jede Transaktion in der sogenannten Block Chain gespeichert. Das bedeutet, dass sich der Weg jeder Bitcoin bis zu ihrer Entstehung zurückverfolgen lässt.
Jeder Teilnehmer des Bitcoin-Netzwerks kann sich die vollständige Block Chain herunterladen und jede Transaktion der Vergangenheit verifizieren. Würde ein Nutzer versuchen, sein Geld doppelt auszugeben, wäre das für andere Nutzer nachvollziehbar und die Transaktion würde als ungültig verworfen werden.
Die Block Chain wird naturgemäß immer größer. Aktuell (Mai 2013) hat diese bereits eine Größe von 7 GByte. Sollte sich die Nutzung von Bitcoin weiter intensivieren, könnte es sein, dass die pure Größe der Block Chain und die Menge der übertragenen Daten zum Flaschenhals der Bitcoin-Nutzung wird.
Public Keys
Um am Bitcoin-System teilzunehmen, muss sich ein Nutzer zunächst ein Schlüsselpaar erzeugen. Hierbei kommt ein Public-Key-System zum Einsatz, das ähnlich funktioniert wie die Verfahren, die auch zum Verschlüsseln und Signieren von E-Mails oder HTTPS-Verbindungen eingesetzt werden. Bitcoin setzt hier auf das sogenannte ECDSA-Verfahren, welches auf der Mathematik der elliptischen Kurven basiert.
Die kryptographischen Details sind komplex, zentral ist, dass jeder Bitcoin-Teilnehmer mit Hilfe seines privaten Schlüssels Transaktionen digital signieren kann.
Mining und neue Blocks
Ein wichtiger Teil des Bitcoin-Protokolls ist das sogenannte Mining. Dies dient zwei Zwecken: Neues Geld wird damit erstellt und Transaktionen werden bestätigt. Beim Mining wird in einem rechenaufwendigen Prozess eine kryptographische Prüfsumme, ein sogenannter Hash, mit dem Verfahren SHA-256 über alle seit dem letzten Block angefallenen Geldtransfers berechnet. Zusätzlich zu den Transaktionen wird eine Prüfsumme des letzten Blocks und eine Zufallszahl gehasht. Gültig ist der neue Hash nur dann, wenn er mit einer bestimmten Anzahl an Nullen beginnt. Die Zahl der benötigten Nullen steigt im Laufe der Zeit, somit wird der Rechenaufwand immer höher. Einen gültigen Hash kann man nur durch simples Ausprobieren von verschiedenen Zufallszahlen erhalten, daher ist der Aufwand hierfür sehr hoch.
Wer nun erfolgreich einen gültigen Hash erzeugt hat, hat damit einen neuen Block erstellt, der von allen Teilnehmern des Bitcoin-Netzwerks auf seine Korrektheit überprüft und anschließend der Block Chain hinzugefügt wird. Im Schnitt entsteht etwa alle zehn Minuten ein neuer Block.
Als Belohnung für das erfolgreiche Erzeugen eines neuen Blocks erhält der Teilnehmer zum einen eine festgelegte Summe an Bitcoins und außerdem alle Transaktionsgebühren für Transaktionen, die er mit seinem Block bestätigt hat. Somit entstehen mit jedem neuen Block neue Bitcoins.
Dieses System wird allerdings nicht ewig weiterlaufen. Die Gesamtzahl der erzeugbaren Bitcoins ist im Protokoll beschränkt. Sobald 21 Millionen Bitcoins im Umlauf sind, wird dieser Prozess gestoppt. Jede Bitcoin wiederum kann unterteilt werden, die kleinstmögliche Einheit ist ein Satoshi, ein Zehnmillionstel einer Bitcoin. Die Begrenzung der Bitcoins ist weitgehend willkürlich und nur durch das Protokoll festgelegt. Es wäre ebenso möglich, ein Bitcoin-ähnliches System mit unbegrenzter Geldmenge zu erstellen.
Langfristig wird das im Bitcoin-Sytem vorhandene Geld dann vermutlich weniger werden. Der Grund dafür: Sobald jemand aus dem System ausscheidet, ist auch sein Geld verloren. Das kann etwa passieren, wenn jemand seinen privaten Schlüssel durch einen Datenverlust, etwa eine defekte Festplatte, verliert oder schlicht das Interesse an Bitcoin verliert. Wie viel Geld durch Datenverluste vernichtet wird, lässt sich allerdings nicht feststellen, da es für das System nicht zu unterscheiden ist, ob jemand seinen Schlüssel verloren hat oder nur für einige Zeit inaktiv war.
Einen Anreiz, weiterhin zu minen, besteht auch dann noch, wenn alle Bitcoins erzeugt sind. Denn die Transaktionsgebühren erhält weiterhin der, der einen Block bestätigt. Die Höhe der Transaktionsgebühren bestimmt jeder Bitcoiner freiwillig nach eigenem Ermessen. Andersrum entscheiden aber auch die Bitcoin-Miner nach eigenem Ermessen, welche Transaktionen sie in einen neuen Block aufnehmen. Wer also seine Gebühren bei einem Geldtransfer sehr niedrig ansetzt, läuft möglicherweise Gefahr, dass dieser für längere Zeit nicht vom Netzwerk bestätigt wird, da für die Miner kein Anreiz besteht, Transaktionen mit geringen Gebühren in ihre Blöcke aufzunehmen.
Ein Problem ergibt sich, wenn zwei Teilnehmer etwa zur gleichen Zeit einen neuen Block erzeugen. So kann es für kurze Zeit sein, dass unterschiedliche Teilnehmer des Netzwerks einen unterschiedlichen Block als aktuell gültigen betrachten. Langfristig setzt sich dann jedoch der Block durch, für den als Erstes ein Nachfolgeblock erstellt wird, denn die Bitcoin-Teilnehmer akzeptieren immer die längste Chain als aktuell gültige.
Mining mit der GPU
Das Minen ist heute sehr aufwendig. Gewöhnliche CPUs sind kaum in der Lage, die notwendigen Hash-Berechnungen in hoher Geschwindigkeit durchzuführen. Fast alle Bitcoin-Miner, die sich im Privaten an der Berechnung beteiligen, setzen daher auf High-End-Grafikkarten. Einige Anbieter stellen inzwischen sogar spezielle Bitcoin-Hardware her.
Heutzutage minen die wenigsten Bitcoin-User alleine. Üblicherweise schließen sie sich zu sogenannten Mining-Pools zusammen. Sie berechnen gemeinsam den nächsten Block und teilen das gewonnene Geld anschließend auf.
Wenig überraschend gibt es auch fragwürdige Methoden des Bitcoin-Minings. So sind schon erste Trojaner aufgetaucht , die die Rechenleistung ihrer Opfer dafür missbrauchen. Eine Software(öffnet im neuen Fenster) der Computerspiele-Community E-Sports Entertainment Association (ESEA) League nutzte die Rechenpower ihrer Benutzer ebenfalls zum Erzeugen von Bitcoins – ohne dass diese davon wussten.
Pseudonym statt anonym
Da die vollständige Block Chain allen Nutzern zur Verfügung steht, ist es trivial möglich nachzuvollziehen, wie sich das Bitcoin-Geld in der Vergangenheit bewegt hat. Allerdings ist niemand gezwungen, den Zusammenhang zwischen seiner realen Identität und seinem Bitcoin-Schlüssel preiszugeben. Sobald ein Nutzer irgendeine Transaktion durchführt, die mit seiner Identität in Verbindung steht, etwa einen Einkauf unter dem eigenen Namen, gibt er seine Anonymität jedoch auf.
Um dies zu umgehen, ist es aber möglich, nicht nur mit einer, sondern mit zahlreichen Bitcoin-Identitäten unterwegs zu sein. So kann ein Nutzer beliebige Transaktionen zwischen den eigenen Identitäten durchführen.
Illegale Inhalte in der Chain
Das Bitcoin-Wiki(öffnet im neuen Fenster) listet eine ganze Reihe von möglichen Sicherheitsproblemen des Bitcoin-Systems auf. Einige davon haben vermutlich das Potenzial, das gesamte Bitcoin-System zu Fall zu bringen.
Ein mögliches Problem ist die Tatsache, dass in der Block Chain beliebige Daten mit untergebracht werden können. Der Grund dafür ist, dass jede Transaktion mit beliebigen Daten versehen werden kann. Vergleichbar ist das etwa mit dem Verwendungszweck bei einer gewöhnlichen Banküberweisung.
Ein böswilliger Nutzer könnte nun eine Transaktion(öffnet im neuen Fenster) mit Daten ausstatten, die illegal sind, man denke etwa an gestohlene Kreditkartendaten oder kinderpornografische Inhalte. Technisch würde dies das System nicht beeinträchtigen. Allerdings wäre es fortan in vielen oder sogar allen Ländern illegal, die Daten der Block Chain zu besitzen oder zu verbreiten.
Spaltung des Systems
Ein zentraler Aspekt des Block-Chain-Systems ist es, dass sich alle Teilnehmer einig sind, was ein gültiger Block ist. Daraus können sich Probleme ergeben. So ist es etwa möglich, dass in neueren Versionen der Bitcoin-Software neue Features eingebaut werden. Alte Clients akzeptieren dann neuere Blöcke nicht mehr. Solange die Mehrzahl der Nutzer auf die neue Version umsteigt, macht das nicht viel aus, denn diese setzt sich durch die überlegene Rechenleistung praktisch automatisch durch.
Bitcoin ist freie Software, insofern ist es jedem möglich und erlaubt, eine eigene angepasste Bitcoin-Software zu erstellen. Auch ist es vorstellbar, dass jemand eine eigene Bitcoin-Software schreibt. Das ist an sich kein Problem, solange sich alle unterschiedlichen Bitcoin-Implementierungen über das Protokoll einig sind. Größere Probleme könnten sich aber ergeben, wenn es Streit in der Bitcoin-Community über neue Funktionen gibt.
Angenommen, die originale Bitcoin-Software implementiert eine neue Funktion. Das könnte etwas Einfaches wie etwa ein neuer Hash-Algorithmus sein, aber auch grundlegende Änderungen, etwa die Einführung einer Protokollerweiterung für anonyme Transaktionen oder gar die Aufhebung der Geldmengenbeschränkung. Viele Nutzer würden vermutlich eine solche Änderung ablehnen und weiterhin entweder eine alte Softwareversion oder eine alternative Bitcoin-Software einsetzen.
Einen ähnlichen Fall gab es bereits. Im März(öffnet im neuen Fenster) spaltete sich die Block Chain kurzzeitig auf, da Teile des Netzwerks eine Funktion der Version 0.8 nutzten, viele Anwender aber noch mit der älteren Softwareversion 0.7 unterwegs waren. Das war lediglich ein technisch ungeplanter Fehler, eine dauerhafte Spaltung konnte damals verhindert werden.
Was in einem Streitfall zwischen verschiedenen Bitcoin-Clients passieren würde, ist schwer vorherzusagen. Technisch würde sich dann die Block Chain aufspalten und unterschiedliche Nutzer würden unterschiedliche Varianten der Block Chain als aktuell gültige akzeptieren. Die Auswirkungen auf den Geldwert wären vermutlich chaotisch, denn ab dann wäre unklar, was eine "echte" Bitcoin ist.



