🧱 Der Bitcoin Block

Das fundamentale Bauteil der Blockchain.

👶 Für Einsteiger (ELI15)

Stell dir ein riesiges, magisches Buchhaltungsbuch vor, das Ledger. Da Millionen von Menschen gleichzeitig Überweisungen tätigen wollen, können wir nicht jede Zeile einzeln schreiben.

Stattdessen sammeln wir alle Transaktionen von etwa 10 Minuten auf einem Blatt Papier (Zielabstand 10 Minuten: chainparams.cpp, nPowTargetSpacing). Dieses Blatt ist der Block.

Der Clou: Bevor das Blatt ins Buch geheftet wird, wird es mit einem digitalen Wachssiegel versiegelt (Mining). Dieses Siegel enthält mikroskopische Spuren des vorherigen Blattes. Wenn jemand versucht, auf Seite 50 etwas zu radieren, bricht das Siegel auf Seite 51, 52, 53 und so weiter.

Block #800000
Hash dieses Blocks:
0000...a054
Tx1, Tx2...
Block #800001
Previous Hash:
0000...a054
Tx: Alice -> Bob
Tx: Carl -> Dave

Der aktuelle Block enthält zwingend den Hash des Vorgängers ("Previous Hash", Whitepaper, Abschnitt 4).
So entsteht die untrennbare Kette. Hash gekürzt; echter Wert von Block #800'000 (mempool.space), die Transaktionen sind nur ein Beispiel.

👨‍🔬 Wissenschaftliche Analyse

Ein Block ist eine Datenstruktur, die Transaktionen aggregiert. Er besteht aus zwei Hauptkomponenten: dem Block Header (80 Bytes = 4 + 32 + 32 + 4 + 4 + 4, block.h, CBlockHeader) und dem Block Body.

1. Der Block Header (Metadaten)

Nur der Header wird für den Proof-of-Work gehasht (block.cpp, CBlockHeader::GetHash). Er enthält:

Feld Beschreibung
Version Versionsnummer des Blocks (4 Bytes).
Previous Block Hash Der Fingerabdruck des vorherigen Blocks. Verbindet die Kette.
Merkle Root Ein einziger Hash, der alle Transaktionen im Body zusammenfasst (Whitepaper, Abschnitt 7).
Timestamp Zeitstempel des Blocks in Unix-Sekunden (4 Bytes).
Bits (Difficulty) Der Zielwert, den der Miner unterbieten muss (pow.cpp, CheckProofOfWork).
Nonce Die "Number used once", die beim Minen variiert wird (Whitepaper, Abschnitt 4).

2. Der Block Body & Die Coinbase Transaktion

Im Body liegen die Transaktionen. Hier passiert die Magie der Geldschöpfung. Die allererste Transaktion im Block ist immer einzigartig (Regeln «bad-cb-missing» / «bad-cb-multiple» in validation.cpp):

Index 0 (Coinbase)
Input: (Keiner / Null-Verweis)
➝
Output: Miner Adresse
3.125 BTC + Gebühren
Index 1
Input: Alice (Signatur)
➝
Output: Bob
0.5 BTC
Index 2
Input: Carl (Signatur)
➝
Output: Dave
1.2 BTC

Die Coinbase hat genau einen Input ohne Vorgänger (Null-Verweis, transaction.h, IsCoinBase). Die Blocksubvention halbiert sich alle 210'000 Blöcke: 3.125 BTC gelten seit Block 840'000; im Beispielblock #800001 oben wären es noch 6.25 BTC gewesen (validation.cpp, GetBlockSubsidy, chainparams.cpp, nSubsidyHalvingInterval).

🙅‍♂️
Achtung Verwechslungsgefahr: Die "Coinbase Transaction" ist ein technischer Fachbegriff für diese erste "Schöpfungs-Transaktion". Sie hat nichts mit der US-Krypto-Börse "Coinbase" zu tun; die Firma trägt nur denselben Namen.