8 Min. Lesezeit

SHA-256 in Bitcoin erklärt – Die Hash-Funktion hinter dem Netzwerk

SHA-256 ist das kryptografische Fundament von Bitcoin. Vom Mining über Transaktions-IDs bis hin zu Adressen – diese Hash-Funktion steckt überall im Protokoll. Wer SHA-256 versteht, versteht, warum Bitcoin mathematisch sicher ist und warum Proof-of-Work funktioniert.

«The proof-of-work involves scanning for a value that when hashed, such as with SHA-256, the hash begins with a number of zero bits.»

Satoshi Nakamoto, Bitcoin Whitepaper, 2008

Überblick

Hash-Funktionen sind mathematische Einwegfunktionen, die eine beliebige Eingabe in eine Ausgabe fester Länge umwandeln. SHA-256 erzeugt aus jeder Eingabe – ob ein einzelnes Zeichen oder ein ganzes Buch – immer einen 256 Bit langen Hashwert. Satoshi Nakamoto wählte SHA-256 als zentrale Hash-Funktion für Bitcoin, und sie durchzieht das gesamte Protokoll von Mining bis zur Adressgenerierung.

Was ist eine Hash-Funktion?

Eine kryptografische Hash-Funktion nimmt eine Eingabe beliebiger Grösse und erzeugt daraus eine Ausgabe fester Länge – den Hashwert oder «Digest». Bei SHA-256 ist diese Ausgabe immer exakt 256 Bit lang, dargestellt als 64 hexadezimale Zeichen.

Die Funktion ist deterministisch: Dieselbe Eingabe erzeugt immer denselben Hash. Das Wort «Bitcoin» ergibt jedes Mal denselben 256-Bit-Wert. Ändert man auch nur ein einziges Bit der Eingabe, entsteht ein völlig anderer Hash. Es gibt keine Möglichkeit, von der Ausgabe auf die Eingabe zurückzuschliessen – daher der Begriff «Einwegfunktion».

Eigenschaften von SHA-256

  • Einwegfunktion (Preimage Resistance): Aus dem Hashwert kann die ursprüngliche Eingabe nicht rekonstruiert werden. Man kann nur vorwärts hashen, nie rückwärts.
  • Kollisionsresistenz: Es ist praktisch unmöglich, zwei verschiedene Eingaben zu finden, die denselben Hash erzeugen. Theoretisch existieren Kollisionen (weil der Eingaberaum grösser ist als der Ausgaberaum), aber sie zu finden würde mehr Energie erfordern, als im Universum verfügbar ist.
  • Lawineneffekt (Avalanche Effect): Eine winzige Änderung der Eingabe – selbst ein einzelnes Bit – verändert im Durchschnitt die Hälfte aller Bits der Ausgabe. Es gibt kein erkennbares Muster zwischen ähnlichen Eingaben und ihren Hashes.
  • Pseudozufälligkeit: Die Ausgabe ist nicht von echtem Zufall unterscheidbar. Kein statistischer Test kann SHA-256-Ausgaben von zufälligen 256-Bit-Strings unterscheiden.

SHA-256 im Detail

SHA-256 steht für Secure Hash Algorithm mit 256 Bit Ausgabelänge. Die Funktion wurde von der NSA (National Security Agency) entwickelt und 2001 vom NIST (National Institute of Standards and Technology) als Teil des FIPS 180-2 Standards veröffentlicht. Sie gehört zur SHA-2-Familie, zusammen mit SHA-224, SHA-384 und SHA-512.

Intern arbeitet SHA-256 in 64 Runden. Die Eingabe wird zunächst in 512-Bit-Blöcke aufgeteilt und mit Padding aufgefüllt. Jeder Block durchläuft dann 64 Runden aus bitweisen Operationen: Rotationen, Shifts, XOR-Verknüpfungen und modulare Addition. Acht 32-Bit-Arbeitsvariablen werden durch vordefinierte Konstanten initialisiert und in jeder Runde transformiert. Das Ergebnis aller Runden wird zu den bisherigen Hashwerten addiert.

Die 64 Rundenkonstanten sind die ersten 32 Bits der Kubikwurzeln der ersten 64 Primzahlen – ein transparentes Design ohne versteckte Hintertüren (sogenannte «nothing-up-my-sleeve numbers»).

Wo Bitcoin SHA-256 nutzt

Mining (Double-SHA-256)

Im Mining-Prozess wird der Block-Header zweimal hintereinander gehasht: SHA-256(SHA-256(block_header)). Miner verändern die Nonce im Header und hashen erneut, bis der resultierende Hash unter einem bestimmten Zielwert liegt – also mit einer bestimmten Anzahl Nullen beginnt. Dieses Double-Hashing bietet zusätzlichen Schutz gegen bestimmte kryptografische Angriffe wie Length-Extension-Attacks.

Transaktions-IDs (TXIDs)

Jede Bitcoin-Transaktion erhält eine eindeutige Kennung, indem die serialisierten Transaktionsdaten mit Double-SHA-256 gehasht werden. Diese TXID ist der «Fingerabdruck» der Transaktion und wird verwendet, um Transaktionen in Blöcken und im Mempool zu referenzieren.

Merkle Trees

Alle Transaktionen eines Blocks werden in einem Merkle Tree organisiert. Dabei werden jeweils zwei Transaktions-Hashes kombiniert und erneut mit Double-SHA-256 gehasht. Dieser Prozess wiederholt sich, bis ein einziger Hash übrig bleibt – die Merkle Root. Sie wird im Block-Header gespeichert und fasst alle Transaktionen eines Blocks in 32 Bytes zusammen. Jede Änderung an einer Transaktion verändert die Merkle Root und damit den gesamten Block-Hash.

Bitcoin-Adressen (HASH160)

Bei der Generierung von Bitcoin-Adressen kommt HASH160 zum Einsatz: RIPEMD-160(SHA-256(public_key)). Der öffentliche Schlüssel wird zuerst mit SHA-256 gehasht und das Ergebnis dann mit RIPEMD-160 auf 160 Bit verkürzt. Diese Kombination bietet zwei Vorteile: die Sicherheit von SHA-256 und die kürzere Adresslänge durch RIPEMD-160.

Sicherheit

SHA-256 erzeugt einen 256 Bit langen Hash. Das bedeutet 2256 mögliche Hashwerte – eine Zahl mit 77 Stellen. Um diese Grössenordnung greifbar zu machen:

  • Die geschätzte Anzahl Atome im beobachtbaren Universum liegt bei etwa 1080, also rund 2266. Der SHA-256-Raum ist damit in derselben Grössenordnung.
  • Wenn alle Supercomputer der Welt zusammenarbeiten würden, bräuchten sie Milliarden von Jahren, um auch nur einen Bruchteil aller möglichen Hashes durchzuprobieren.
  • Selbst ein Quantencomputer würde die Sicherheit «nur» auf 2128 reduzieren (Grover-Algorithmus) – das ist immer noch weit jenseits jeder praktischen Angreifbarkeit.

Wichtig: Bis heute ist kein praktischer Angriff auf SHA-256 bekannt. Es wurden keine Kollisionen gefunden und keine strukturellen Schwächen entdeckt, die über theoretische Überlegungen hinausgehen. SHA-256 gilt weiterhin als kryptografisch sicher.

SHA-256 vs. andere Hashfunktionen

Neben SHA-256 existieren zahlreiche andere Hashfunktionen. Die wichtigsten im Vergleich:

  • SHA-3 (Keccak): 2012 als Nachfolger von SHA-2 standardisiert. Basiert auf einem völlig anderen internen Design (Sponge-Konstruktion statt Merkle-Damgård). SHA-3 gilt als sicher und bietet eine Alternative, falls SHA-2 jemals gebrochen würde. Bitcoin nutzt SHA-3 nicht.
  • BLAKE2: Eine schnellere Alternative zu SHA-256, die in vielen modernen Anwendungen eingesetzt wird. Beliebt in Kryptowährungen wie Zcash (BLAKE2b) und für allgemeine Softwareentwicklung.
  • SHA-1 und MD5: Ältere Hashfunktionen, die als gebrochen gelten. Für SHA-1 wurden 2017 praktische Kollisionen demonstriert. Beide sind für kryptografische Zwecke nicht mehr geeignet.

Warum wählte Satoshi SHA-256? Im Jahr 2008 war SHA-256 der etablierte, bewährte Standard mit breiter Hardware-Unterstützung. Die Funktion war ausgiebig analysiert, durch NIST standardisiert und galt als die sicherste verfügbare Option. SHA-3 existierte zu diesem Zeitpunkt noch nicht, und exotischere Funktionen hätten das Vertrauen in Bitcoin erschwert. SHA-256 hat sich bisher als robust erwiesen: Über 17 Jahre später ist SHA-256 ungebrochen.

Quellen

Nächste Schritte

BTC ...