Artikel, Technik, Deflation, Education

Eine technische Reise mit dem Bitcoin-Halving zu Einundzwanzig Millionen.

Witty⚡ Witty⚡
Witty⚡
7 Minuten Lesedauer
Eine technische Reise mit dem Bitcoin-Halving zu Einundzwanzig Millionen.
Eine technische Reise mit dem Bitcoin-Halving zu Einundzwanzig Millionen.

Blockzeit: 783500

Ich möchte euch mit auf meine Reise nehmen und herausfinden, wie das Bitcoin-Halving und die 21-Millionen-Grenze im Bitcoin Core Quellcode verankert sind. Dabei werden wir die Funktion ‘GetBlockSubsidy’ genauer betrachten und uns ansehen, wie sie die Blockbelohnung und den Halving-Mechanismus implementiert.

Zunächst einmal, was ist das Bitcoin-Halving? Das Halving ist ein Mechanismus, der alle 210.000 Blöcke (ungefähr alle vier Jahre) die Blockbelohnung für Miner halbiert. Dieser Prozess setzt sich fort, bis die Blockbelohnung auf weniger als einen Satoshi sinkt, wodurch effektiv keine neuen Bitcoins mehr erzeugt werden und die Gesamtmenge auf 21 Millionen begrenzt bleibt.

Schauen wir uns nun die Funktion GetBlockSubsidy im Detail an:

https://github.com/bitcoin/bitcoin/blob/a70911492fcd1f726782cca2f1ffac18c25e8fb4/src/validation.cpp#L1541

Die Funktion beginnt mit der Berechnung der Anzahl der bisherigen Halvings: int halvings = nHeight / consensusParams.nSubsidyHalvingInterval; Dabei wird die aktuelle Blockhöhe nHeight durch das Halving-Intervall consensusParams.nSubsidyHalvingInterval (210.000) dividiert.

https://github.com/bitcoin/bitcoin/blob/e695d8536e534f1e59de4a62a0d87a93e7a73456/src/kernel/chainparams.cpp#L76

Vor der Anpassung der Blockbelohnung gibt es eine Bedingung: if (halvings >= 64) return 0; Diese Bedingung überprüft, ob die Anzahl der Halvings 64 oder mehr beträgt. Wenn das der Fall ist, wird die Funktion sofort beendet und gibt 0 als Blockbelohnung zurück. Dies stellt sicher, dass nach 64 Halvings keine neuen Bitcoins mehr erzeugt werden.

Als nächstes definiert die Funktion die ursprünglichen Blockbelohnung: CAmount nSubsidy = 50 * COIN; Hier wird die Variable nSubsidy auf den Wert von 50 Bitcoins gesetzt, wobei COIN eine Konstante ist, die 100.000.000 repräsentiert (1 Bitcoin besteht aus 100 Millionen Satoshis).

Schließlich wird die Blockbelohnung, basierend auf der Anzahl der Halvings, angepasst: nSubsidy >>= halvings; Dieser Rechtsverschiebe-Operator (>>=) wird verwendet, um die Bits des Wertes von nSubsidy um die Anzahl der Halvings nach rechts zu verschieben. Dies entspricht einem Dividieren durch 2, wodurch die Blockbelohnung effektiv halbiert wird.

Durch die Kombination dieser Schritte in der Funktion GetBlockSubsidy wird der Halving-Mechanismus und die 21-Millionen-Grenze im Bitcoin Core Quellcode umgesetzt. So entsteht ein deflationäres System, bei dem das Angebot an neuen Bitcoins im Laufe der Zeit abnimmt und schließlich aufhört, wodurch der Wert von Bitcoin langfristig gestärkt wird.

Nachdem du nun die technischen Aspekte des Bitcoin-Halvings und der 21-Millionen-Grenze kennst, kannst du deine Reise in die faszinierende Welt von Bitcoin fortsetzen.

Referenzen: https://github.com/bitcoin/bitcoin

value-4-value