So funktioniert die Kryptowährung Bitcoin

Seite 2: Bitcoin-Mining

Inhaltsverzeichnis

Ein Miner prüft alle eingehenden Transaktionen auf Gültigkeit (Signaturen stimmen, Ausgangssumme nicht größer als Eingangssumme, kein Output mehrfach als Input verwendet) und verwirft ungültige. Die gültigen sammelt er zu einem Block. Dazu packt er noch einen Zeitstempel und den Hash des vorangehenden Blocks sowie eine Zahl, die sogenannte Nonce. Über das Ganze bildet er einen Hash, indem er zweimal den SHA-256-Algorithmus anwendet. Das Bitcoin-System verlangt nun, dass dieser Hash kleiner als ein vorgegebener Zielwert sein muss.

Dadurch wird die Aufgabe, einen gültigen Hash zu finden, schwierig: Kryptografische Hash-Funktionen wie SHA-256 haben die Eigenschaft, dass sie nicht umkehrbar sind. Man kann also leicht zu einem Datenblock einen Hash finden, aber der umgekehrte Weg von einem vorgegebenen Hash zu einem Datenblock ist praktisch unmöglich. Die Hash-Funktion verhält sich fast wie ein Zufallsgenerator: Ändert man an den Eingabedaten auch nur ein Bit, kommt ein völlig anderes Ergebnis heraus.


Wenn der errechnete Hash nicht kleiner als der geforderte Zielwert ist, bleibt dem Miner nichts anderes, als die Nonce eins hochzuzählen und den Block erneut zu hashen. Er tut dies so lange, bis der Hash zufällig einmal klein genug ist. Die Wahrscheinlichkeit, mit der das passiert, ergibt sich direkt aus dem Zielwert: Je kleiner die Zielvorgabe, desto geringer die Wahrscheinlichkeit, desto schwieriger also die Rechenaufgabe, einen geeigneten Hash zu finden.

Alle Miner arbeiten gleichzeitig an dieser Aufgabe, aber nicht exakt an derselben. Jeder Miner fügt nämlich in seinen Block eine spezielle Transaktion ein, die ihm den Lohn für seine Mühe in Form neuer Bitcoins überweist. Diese sogenannte Coinbase-Transaktion sammelt außerdem alle Transaktionsgebühren ein, die in den anderen Transaktionen in Form nicht ausgegebener Teilbeträge enthalten sind.

Der Miner, der als Erster einen gültigen Hash findet, hat das große Los gezogen und veröffentlicht seinen Block im Netz. Da der Block den Hash des vorigen Blocks enthält, sind die Blöcke miteinander verkettet zur sogenannten Blockchain. Einen gültigen Hash zu finden, ist wie gesagt sehr schwierig, ihn zu überprüfen aber leicht. Dazu muss man den Block nur einmal hashen und sich überzeugen, dass das Ergebnis mit dem veröffentlichten Hash übereinstimmt.

Die Blockchain ist das ewige Rechnungsbuch der Bitcoin-Währung. Nur Transaktionen, die darin enthalten und durch die fortlaufende Kette von Hashes wieder und wieder beglaubigt werden, sind gültig. Für den Fall, dass es einmal Verzweigungen in der Blockchain gibt, sind die Bitcoin-Clients so programmiert, dass sie beim Minen immer die längste Kette fortsetzen.

Dadurch ist das System robust gegen Störungen, etwa wenn das Netz vorübergehend in mehrere Teile zerfällt oder wenn zufällig zwei Miner gleichzeitig jeweils ihren gelösten Block veröffentlichen. Vor allem aber schützt das rechenintensive Mining vor Manipulationen. Ein Angreifer, der das System manipulieren wollte, müsste mehr Rechenleistung aufbringen als alle ehrlichen Teilnehmer des Systems zusammen.


Manipulationen sind vor allem für die Vergangenheit interessant, indem man nämlich zunächst jemandem Geld überweist und die entsprechende Transaktion dann – nachdem man den Gegenwert erhalten hat – wieder verschwinden lässt. Um einen alten Block zu manipulieren, müsste man aber eine gültige Kette von Blöcken errechnen, die länger als die ehrliche Kette wird. Das ist umso aussichtsloser, je länger der zu manipulierende Block zurückliegt. Wer so viel Rechenleistung unter seiner Kontrolle hat, betätigt sich besser als Miner und schürft so auf ganz legalem Wege Bitcoins. Damit trägt er zur Stabilität der Währung bei, was ja in seinem eigenen Interesse ist.

Das Bitcoin-System passt die Schwierigkeit der Rechenaufgabe so an, dass im Schnitt alle zehn Minuten ein Block erzeugt wird. Dazu justiert es nach jeweils 2016 Blöcken die Zielvorgabe für die Hash-Funktion. Diese Anzahl Blöcke sollte 14 Tage gebraucht haben, sechs Blöcke pro Stunde. Ging es schneller, wird die Schwierigkeit erhöht, hat es länger gedauert, wird sie reduziert.

So sollte eine neue Transaktion nach ungefähr zehn Minuten in der Blockchain auftauchen. Wenn Händler und Kunden sicher sein wollen, dass wirklich Geld geflossen ist, warten sie bis dahin oder noch ein wenig länger: Je mehr Blöcke hinter einer Transaktion in der Blockchain hängen, desto unwahrscheinlicher ist es, dass diese Kette noch von einer längeren – mit einer anderen Version der Wahrheit – abgelöst wird.

Die Schwierigkeit der zu lösenden Hashes steigt seit Einführung der virtuellen Währung. Gut zu erkennen sind die rapiden Anstiege, wenn bei der Blockerzeugung neue Technologien zum Einsatz kommen. So wurde zuerst mit der CPU und später der GPU von Desktop-Rechnern geschürft, mittlerweile kommt spezialisierte Hardware wie FPGAs und ASICs zum Einsatz.

Zwar wurde die Schwierigkeit seit Bestehen der virtuellen Währung ein paar Mal nach unten angepasst, generell steigt sie aber – besonders seit Anfang 2013, als ASIC-basierte Spezialhardware für das Mining aufkam und so die Rechenleistung explodierte.