Bitcoin: Beträgt die maximal mögliche Zahl wirklich nur 21 Millionen Bitcoins? Und wenn ja, warum gerade diese Stückzahl von 21 Millionen?
Was würde passieren, wenn nach Erreichen der 21 Millionen-Grenze Bitcoins weiterhin generiert werden? Ist das möglich?
Das ist der vorletzte Teil der apano-Blogserie über Bitcoin und Blockchain. Allen, die Teil 1, Teil 2, Teil 3, Teil 4, Teil 5, Teil 6 und Teil 7 nicht gelesen haben, empfehlen wir, dies vorab zu tun.
Dass es nur 21 Mio. Bitcoins geben wird, ist eines der wichtigsten Argumente der Bitcoin-Evangelisten. Denn nur so kann die versprochene Inflationssicherheit gewährleistet werden.
Technisch gesprochen nennt man das „Hard Cap“ (frei übersetzt absolute Obergrenze). Dieses Limit ist im Quellcode von Bitcoin verschlüsselt. Das „Hard Cap“ bedeutet folgendes: erreicht die Anzahl der Bitcoins 21 Mio., so werden die Miner keine Belohnung für die weiteren Blöcke mehr bekommen.
Das Generieren eines weiteren Bitcoins wird somit unwirtschaftlich sein, denn den Kosten für die verbrauchte Energie stehen keine Erträge gegenüber.
Das bedeutet aber noch lange nicht, dass der eine oder anderer Miner nicht versuchen kann, die Bitcoins weiterhin zu generieren und die Belohnung trotzdem für sich gut zu schreiben. Dafür sollte lediglich der Quellcode geändert werden (so eine Änderung der Quellcodes bezeichnet man als „Hard Fork“).
Der Code des Bitcoin-Protokolls ist offen, bzw. für jeden auf dem GitHub zugänglich. Schauen wir doch mal rein und versuchen wir, uns einen Überblick zu verschaffen, ohne zu tief in die technischen Details zu gehen.
Man findet im Quellcode zum Beispiel die Funktion, die die Belohnung berechnet, unter:
https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L1140
Hier ist nur provisorisch ein Ausschnitt, den Sie nicht unbedingt verstehen müssen. Die kurze Erklärung kommt sofort danach:
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams) { int halvings = nHeight / consensusParams.nSubsidyHalvingInterval; // Force block reward to zero when right shift is undefined. if (halvings >= 64) return 0; CAmount nSubsidy = 50 * COIN; // Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years. nSubsidy >>= halvings; return nSubsidy; } |
Die Funktion heißt GetBlockSubsidy (sprich „Gib die BlockBelohnung“) und berechnet die Belohnung aus zwei Werten. Der erste Wert heißt „Block Height“ und bedeutet die „Gesamthöhe“ des höchsten Blocks der Kette. Zum besseren Verständnis: Die Höhe des allerersten Genesis-Blocks war = 0. Die aktuelle „Gesamthöhe“ beträgt 712.607. Diesen aktuellen Wert findet man ebenso jederzeit im Internet, zum Beispiel unter: https://mempool.space/de/ .
Der zweite Wert kommt aus einer Konstante Namens „nSubsidyHalvingInterval“ (sprich „Belohnungs-Halbierungs-Intervall“). Dieser Wert bleibt unverändert und ist gleich 210.000. Das ist eine Konstante. Sie definiert die Anzahl der Blöcke, nach der das nächste Halving passieren soll. Sie ist fest im Quellcode hinterlegt. Das sieht man unter: https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L67 .
Mit diesen zwei Werten kann man das aktuelle Bitcoin-„Halving“ selbst ausrechnen:
- Das wäre laut der o.g. Funktion der ganzzahlige Quotient aus 712.607 (aktuelle Hohe) geteilt durch 210.000 (Konstante), und ist also gleich 3.
Das Halving ist gleich 3 – was genau bedeutet das? Das bedeutet, dass die festgelegte Anzahl der Blöcke schon dreimal erreicht und die Belohnung dreimal halbiert wurde.
Am Anfang war Belohnung wie wir schon wissen – 50 Bitcoins (BTC). Danach wurde sie ständig halbiert, nachdem die bestimmte Länge (Gesamthöhe) erreicht wurde. Die Belohnungsreihe sieht dann also so aus:
50 BTC, 25 BTC, 12.5 BTC, 6.25 BTC, 3.125 BTC … und so weiter.
Für den Genesis-Block war somit die „Gesamthöhe“ gleich 0, dem entsprechend war das Halving ebenso gleich 0. Die Belohnung war laut der oben angegebenen Reihe gleich 50 BTC.
Nachdem die erste 210.000 Blöcke erstellt wurden, wurde der ganzzahlige Quotient der Gesamthöhe geteilt durch 210.000 nicht mehr 0 sondern gleich 1 und die Belohnung wurde laut der Reihe auf 25 BTC verringert. So ging es immer weiter. Und das aktuelle „Halving“ haben wir gerade selbst ausgerechnet, das ist gleich 3 und entspricht der Position von 6.25 Bitcoins in der o.g. Reihe (Das stimmt auch, Stand 04.12.2021, mit der Realität überein).
In Anbetracht, dass die Lösung der im Teil 5 beschriebene mathematische Aufgabe Stand heute ca. 10 Minuten braucht, benötigt man für die Berechnung von 210.000 Aufgaben ca. 4 Jahre.
Belohnung | Halving | Jahr |
50 BTC | 0 | 2009 |
25 BTC | 1 | 2012 |
12.5 BTC | 2 | 2016 |
6.25 BTC | 3 | 2020 |
… | … | …. |
Um die mögliche Anzahl der Blöcke zu errechnen, sollen wir die Summe der o.g. Reihe 50 + 25 + 12 + 6.25 + … (das ergibt lt. geometrischer Reihe 100) mit der Konstante 210.000 multiplizieren. So bekommen wir die mögliche Anzahl der Blöcke und kommen auf 21 Mio. Blöcke insgesamt.
Das heißt also, wenn 21 Mio. „Münzen“ erstellt werden, wird es keine Belohnung mehr geben. Sie haben mitgerechnet? Bis jetzt stimmt alles.
An dieser Stelle ein kleiner Exkurs ins Archiv: Diesbezüglich gibt es einen interessanten E-Mail-Austausch zwischen „Satoshi Nakamoto“ und seinem Kollegen Hal Finney: https://www.metzdowd.com/pipermail/cryptography/2009-January/015004.html
Satoshi Nakamoto: Die Gesamtauflage beträgt 21.000.000 Münzen. Sie werden an Miner ausgegeben, wenn sie die Blöcke kreieren, wobei der Betrag alle 4 Jahre halbiert wird. erste 4 Jahre: 10.500.000 Münzen nächste 4 Jahre: 5.250.000 Münzen nächste 4 Jahre: 2.625.000 Münzen nächste 4 Jahre: 1.312.500 Münzen usw… Hal Finney: …Stellen wir uns vor, Bitcoin wird zum weltweit dominierenden Zahlungssystem. Dann sollte der Gesamtwert der Währung gleich dem Gesamtwert allen Reichtums der Welt sein. Aktuell liegt dieser Wert zwischen 100 bis 300 Billionen Dollar. Daraus ergibt sich für jeden Coin einen Wert von etwa 10 Millionen US-Dollar… |
Jetzt bitte nicht sofort einkaufen gehen. Diese Prophezeiung über 10 Mio. USD als Wert pro Bitcoin kann auch gar nicht, oder erst nach 100 Jahren eintreffen, so dass man das Ereignis gar nicht erlebt. Dieses Beispiel dient nur dem Verständnis, warum die Gesamtzahl 21 Mio. Stück betragen soll. Es gibt dazu auch zwei Theorien: die eine geht davon aus, dass die Zahl 21 Mio. an die Anzahl der Blöcke gebunden ist, die andere, dass Bitcoin den ganzen Reichtum der Welt abbilden können sollen. Welche Theorie stimmt, ist unbekannt.
Aber zurück zu unserer Frage: Reicht es also, die o.g. Funktion zu ändern, um nach 21 Mio. weitere Bitcoins generieren zu können?
Um diese Frage zu beantworten, schauen wir uns ein Beispielszenario an: ein Miner ändert bei sich lokal im Quellcode die o.g. Funktion, löst die (schon für uns bekannte) mathematische Aufgabe für ein weiteres Block und sendet ins Netz salopp gesprochen folgende Meldung: „Ich habe die Aufgabe gelöst, mit der Bitte zu überprüfen, ich bekomme dafür X Bitcoins“. Was passiert dann? Dann sollen die anderen Miners den Vorgang nicht bestätigen, bzw. die Mehrheit soll diese Meldung ablehnen, solange bei ihrer Version der Software noch kein solches, gleiches „Hard Fork“ eingespielt wurde.
Was macht dann der Miner mit seinem nach 21 Mio. ersten „Coin“? Dieser „Coin“ wird im Bitcoin-Netz von Mehrheit nicht akzeptiert. Das heißt, er kommt nicht in das gesamte Bitcoin-Kontobuch, bzw. nicht in die gesamte Bitcoin-Kette. Der Miner kann jedoch eigene „Coins“ weiterhin zur eigenen Kette ankoppeln. Das wird aber nicht mehr die Bitcoin-Kette sein, sondern wie gesagt, seine eigene. Und dem entsprechend wird seine „Währung“ schon nicht mehr Bitcoin heißen, da sie nicht zur Bitcoin-Kette gehört. Es entsteht somit ein „Coin“ ganz anderer Art, umgangssprachlich manchmal als „ShitCoin“ bezeichnet: eine digitale Währung mit allen Eigenschaften einer digitalen Währung, die jedoch kein weiterer Miner oder nur ein sehr begrenzter Kreis der Miner akzeptiert.
Aber was ist, wenn auch ein wesentlicher Teil der Bitcoin-Miner die neue Version der Software akzeptieren und installieren (bzw. das vorgeschlagene „Hard Fork“ ebenso einspielen) und somit den neuen „Coin“ akzeptieren, wobei die restlichen Miner beim alten System bleiben? Dann nennt man den Vorgang die „Spaltung“. So entstanden zum Beispiel Bitcoin-Cash, oder Ethereum-Classic: eine Gruppe der Miner ändert die Regeln und geht weiter nach eigenen Regeln vor. Es ist deshalb immer die Frage, was die Mehrheit der Krypto-Gesellschaft bevorzugt.
Was wäre dann, wenn die meisten (mehr als 51%) Miner das „Hard Fork“ einspielen, um nach 21 Mio. Bitcoins weitere Bitcoins erstellen zu können?
Dieses Szenario sei rein technisch möglich. Es hängt, wie gesagt vom Update ab – „Hard Fork“. Es soll lediglich zeitnah bei der Mehrheit der Miner eingespielt werden, damit das Ganze funktioniert.
Warum sollte das nicht passieren?
Erstens wird es eventuell kein Miner riskieren, aus dem stark etablierten Bitcoin auf eine andere, unbekannte Währung umzusteigen. Zweitens glaubt jeder Bitcoin-Enthusiast stark an die Zukunft des Bitcoins. Doch rein technisch gesehen steht dem nichts im Wege. Viele „Hard Forks“ gab es sogar bereits in der Krypto-Geschichte. Und ob der Glaube an Bitcoin auch in der Zukunft weiterhin besteht, ist die Frage. Zum Thema „Bitcoin-Philosophie“ kommen wir auch noch einmal im letzten Teil separat.
Das interessanteste kommt zum Schluss!
Lesen Sie im letzten Teil:
- Bitcoin – ist das doch die größte Verschwörung aller Zeiten?
- Die technische Details, über die man am wenigsten spricht.
- Das Schlusswort und der wichtigste Fazit unserer Blogserie.
Abonnieren Sie den apano-Blog. Klicken Sie dazu
Quellen:
cryptography Info Page (metzdowd.com)
Bitcoin – Browse Files at SourceForge.net
mempool – Bitcoin Explorer
#bitcoin #blockchain #kryptowaehrung