Bitcoin, Blockchain & Co. — Die Wahrheit und nichts als die Wahrheit (überarbeitete Ausgabe 2021/22). Joe Martin
Чтение книги онлайн.
Читать онлайн книгу Bitcoin, Blockchain & Co. — Die Wahrheit und nichts als die Wahrheit (überarbeitete Ausgabe 2021/22) - Joe Martin страница 12
Dabei haben die Miner die Aufgabe, die Transaktionsdaten und den Hash-Wert des letzten, ihnen bekannten Blocks und einen weiteren Wert, den sie erraten müssen, in der Formel zusammenzurechnen, um einen, vom Grundalgorithmus des ganzen Bitcoin-Systems vorgegebenen Wert, zu unterschreiten. Das klingt jetzt erst einmal monströs, ist aber, wenn man die einzelnen Schritte nacheinander anschaut, doch nicht so kompliziert.
In der Formel werden also alle Transaktionen zusammengerechnet, dazu der Hash-Wert des letzten Vorgängerblocks. Das könnte der neue Hash-Wert des Blocks sein und würde sehr schnell gehen.
Damit wäre aber unser Problem nicht behoben, dass ständig neue und gegebenenfalls auch manipulierte Blocks an die Nodes gesendet würden. So könnte man auch das Netzwerk lahmlegen, weil die Nodes ganz einfach überflutet würden. Deshalb hat Nakamoto die schon erwähnte Bremse eingebaut.
Diese Bremse funktioniert so, dass im Grundsystem des ganzen Netzwerks, dem sogenannten „Core“, ein weiterer Algorithmus steckt, der alle zehn Minuten vorgibt, wie viele führende Nullen der errechnete Hash-Wert besitzen muss. Hört sich auch wieder kompliziert an, ist allerdings ganz einfach. Man kann es sich ungefähr so vorstellen:
Wenn die gesuchte Zahl 1 wäre, dann muss der Hash-Wert des neuen Blocks kleiner als 1,0 sein. 0,999999 und alle kleineren Werte wären dann zulässig.
Die Miner suchen nun diese kleineren Werte, indem sie in die Formel, neben den Transaktionen und dem Hash des letzten Blocks, auch noch eine beliebige weitere Zahl einsetzen, die als „Nonce“ bezeichnet wird. Also zum Beispiel:
0,745(Summe der Transaktionen)·0,872571(Hash-Wert des Vor-gänger-Blocks)·1,7656(Nonce)=1,1477
Damit wäre die Nonce mit einem Wert von 1,7656 nicht die richtige, weil sie größer als 1 ist. Der Miner muss nun neu rechnen und es mit einer anderen Nonce versuchen. Tatsächlich muss der berechnete Hashwert nicht kleiner als eine bestimmte Zahl sein, sondern eben eine bestimmte Anzahl von führenden Nullen zeigen. Also zum Beispiel vier führenden Nullen: 0,000072863 oder sechs führende Nullen: 0,00000052415. So oder so muss der Miner rechnen, was das Zeug hält, um diese Vorgabe zu erfüllen.
Das Geheimnis hinter dem sogenannten „Mining“
Im Prinzip ist es nichts anderes als lustiges Zahlenraten. Zahlen in eine Formel einsetzen und dann schauen, ob das Ergebnis so viele führende Nullen mit sich bringt wie die vom System geforderten. Es ist natürlich klar, dass die Formel sehr viel komplizierter ist als in dem Beispiel von oben.
Entscheidend ist, dass das Ergebnis einer Hash-Formel schon bei minimalen Änderungen der Ausgangswerte enorme Veränderungen des Endwerts mit sich bringt, wie weiter oben dargestellt wurde.
Deshalb ist es auch kein einfaches lineares Probieren nach dem Motto, 1,7656 ist zu groß, also nehmen wir einfach 1,4441. Wenn das immer noch zu viel ist, dann eben 1,2982. So einfach ist es eben nicht. Im Gegenteil. Da das Ergebnis nicht linear ist, kann es sein, dass ein größerer Wert der Nonce in der Formel zu einem kleineren Endwert führt. Wie schon gesagt, die Augen eines Mathematikers glänzen bei solchen Formeln, Laien nehmen es staunend zur Kenntnis. Für den Fall, dass man gefragt wird, welche Art von Berechnung erforderlich ist, um einen Hash-Wert zu errechnen, kann man auf die sogenannte „elliptische Kurvenformel“ verweisen. Das aber nur, wenn das Gegenüber immer weiter nachfragt. Dann hören die Nachfragen normalerweise auf.
Dem Miner bleibt also tatsächlich nichts anderes übrig, als zu raten, zu rechnen, zu vergleichen und wenn das Ergebnis nicht klein genug ist, das Ganze wieder von vorne, mit einer neuen Nonce, zu starten. Wir reden hier aber nicht nur von 100 oder 1.000 Versuchen, sondern von Milliarden Rechenoperationen pro Sekunde, die das ganze Bitcoin-Netzwerk ständig ausführt. Die Einheit, in der diese Rechenleistung erfasst wird, sind die sogenannten „Mega-Hashes“, „Giga-Hashes“ oder sogar „Peta-Hashes“. Also Millionen Hash-Berechnungen pro Sekunde beziehungsweise Milliarden oder Billiarden Hash-Berechnungen pro Sekunde.
Solche Berechnungen sind nichts mehr für handelsübliche Com-puter, da die Anforderungen an die Rechenleistung nicht mehr von diesen Maschinen erbracht werden können. Deshalb kommt es heutzutage zur Arbeitsteilung zwischen Nodes und Minern.
Die Nodes verwalten die dezentral abgespeicherten Daten und die Miner berechnen die neuen Blocks.
Am Anfang, als das Bitcoin-System im Jahr 2009 startete, war es noch möglich, mit einer ganz normalen CPU (dem zentralen Chip in unseren Computern wie zum Beispiel ein Pentium) den Hash-Wert der Blocks zu berechnen. Irgendwann wurde es aber zu kompliziert und zu aufwendig und die Softwareexperten haben die Berechnung auf die sogenannten GPUs (Graphic Processing Units) ausgelagert. Das sind die Spezialchips in den Grafikkarten. Grafik-karten müssen auch sehr viel und sehr schnell rechnen können, damit sie zum Beispiel in einem Spiel die Hintergrundbilder berechnen und auf dem Bildschirm darstellen können, während der Spieler mit einer schußbereiten Pistole durch eine Stadt läuft. Wegen dieser Eigenschaften sind GPUs viel besser geeignet, diese komplizierten Rechnungen durchzuführen.
Wer schneller ist, verdient mehr Geld
Im gesamten Netzwerk sind viele Miner installiert. Alle rechnen gleichzeitig an jedem neuen Block und versuchen, die Nonce zu erraten. Sie nehmen also Transaktionen aus dem Pool und packen diese zusammen mit dem Hash des letzten Blocks in den neuen Block. Dann suchen sie einen Wert für die Nonce, berechnen und vergleichen das Ergebnis mit der Anforderung des Systems. Wenn der Wert kleiner ist als die Anforderung des Systems, wird der Block abgeschlossen und an die mit dem Miner verbundenen Nodes versendet, damit diese den neuen Block an ihre lokale Kette anhängen und an andere Nodes weiter versenden, damit diese wiederum den neuen Block an ihre jeweilige Kette anhängen. So wird die Blockchain weiter und weiter verlängert.
Was aber hat das mit Geld verdienen zu tun? Nun, zum einen müssen die Bitcoins ja irgendwie entstehen und zum anderen brauchen die beteiligten Computer zwar keine Pizza und Pasta zum arbeiten, aber Strom. Und Strom kostet den Betreiber Geld. Warum sollte er nun etwas bezahlen, von dem er nichts hat und von dem er für sich nicht mindestens Pizza und Pasta kaufen kann oder auch mal ein Steak oder einen leckeren Fisch?
Hier kommt nun wieder ein genialer Gedanke von Satoshi Nakamoto ins Spiel: Der Miner erhält für seine geleistete Arbeit eine Erfolgsprovision!
Die Berechnung des neuen Blocks wird von allen Minern im Netzwerk ständig parallel vorgenommen und einer wird der erste sein, der einen neuen Block gehashed, also den Richtgen Hash-Wert für diesen Block erraten hat. Dieser Miner erhält nun die Belohnung. Eine Belohnung, die aus Bitcoins selbst besteht, die zu diesem Zweck einfach neu entstehen.
Während die Notenbank neue Banknoten drucken muss, werden im Bitcoin-Netzwerk einfach dem Miner in dem Block, den er gerade erzeugt hat, neue Bitcoins zugesprochen. Zum Beispiel 50 Bitcoins als Belohnung für jeden neuen, richtig gehashten Block. Wenn der Block von den Nodes an die bestehende Blockchain angehängt wird, dann werden damit diese 50 Bitcoins legitimiert und sie gehören dem Miner, der als erstes den neuen Block gefunden hat. Damit hat jeder ein Incentive, so schnell wie möglich zu rechnen und neue Blocks zu hashen.
Das ist auch der Weg, wie Bitcoins sozusagen „geboren“ werden. Technisch packen die Miner einfach in jeden Block eine Transaktion, in der sie sich selbst diese Belohnung auszahlen. Wird der Block vom Netzwerk validiert, existieren die Bitcoins von diesem Zeitpunkt an, denn sie stehen ja in der unveränderlichen Blockchain.
Immer