Ein Block Header ist eine kompakte, fest strukturierte Datenstruktur am Anfang eines Blocks, mit der Nodes und schlanke Clients die Integrität einer Blockchain überprüfen können, ohne jede darin enthaltene Transaktion herunterzuladen oder erneut zu verarbeiten. Bei Bitcoin ist der Header genau 80 Bytes groß, weshalb Block Explorer und Simplified Payment Verification (SPV) Wallets eine vollständige Chain-Historie in Megabytes statt Hunderten von Gigabytes synchronisieren können.
Der Bitcoin-Header enthält sechs Felder: eine Versionsnummer, die angibt, welche Konsensregeln gelten, den Hash des Headers des vorherigen Blocks (der Verweis, der Blocks buchstäblich miteinander verkettet), die Merkle Root, die alle Transaktionen im Block zusammenfasst, einen Timestamp, das komprimierte Difficulty-Target sowie die Nonce, die Miner bei der Suche nach einer gültigen Proof-of-Work-Lösung durchlaufen. Da das Feld mit dem Hash des vorherigen Blocks jeden Header mit seinem Vorgänger verknüpft, verändert das nachträgliche Ändern einer historischen Transaktion den Hash dieses Blocks und macht damit jeden nachfolgenden Header ungültig, sodass ein Angreifer die Arbeit für die gesamte verbleibende Chain wiederholen müsste.
Account-basierte Netzwerke wie Ethereum erweitern das Konzept: Ihre Header legen zusätzlich eine State Root, eine Receipts Root und Angaben zum Gasverbrauch fest, da sich Validatoren nicht nur darüber einig sein müssen, welche Transaktionen stattgefunden haben, sondern auch über die resultierenden Kontostände und den Contract-Speicher.
Da der Header allein ausreicht, um den Proof of Work eines Blocks und die Echtheit seiner Transaktionen zu bestätigen, bildet er die Grundlage für:
- Leichte und mobile Wallets, die der längsten gültigen Header-Chain vertrauen
- Merkle Proofs, mit denen eine einzelne Transaktion gegen die Merkle Root des Headers verifiziert werden kann, ohne den vollständigen Block
- Cross-Chain-Bridges und Oracles, die Header prüfen, um Ereignisse auf einer anderen Chain zu bestätigen