Was ist SHA-256?
SHA-256 (Secure Hash Algorithm mit 256-Bit-Ausgabe) ist eine kryptografische Hash-Funktion.
Sie nimmt beliebig viele Daten als Eingabe und erzeugt daraus immer einen Hash mit fester Länge von 256 Bit.
Beispiel: SHA-256 der Nachricht BitcoinVonInnen (überall derselbe Hash):
Eingabe: "BitcoinVonInnen"
↓
SHA-256
↓
641f0d2354c053721b61a093932a4c081e425335ab2dc1f41d2e18508e8c66dfDer gleiche Input erzeugt immer denselben Hash.
Schon kleine Änderungen an der Eingabe führen jedoch zu einem komplett anderen Ergebnis:
"BitcoinVonInnen"
→ 641f0d2354c053721b61a093932a4c081e425335ab2dc1f41d2e18508e8c66df
"BitcoinVoninnen"
→ 28f2c14001012e402c29722ef6ee9fef3b6cb4bcd73c3f0af976176041be5f05Obwohl sich nur ein Buchstabe geändert hat, sehen die Hashes völlig unterschiedlich aus.
Interpretierte Eingabe-Bytes
Input
BitcoinBytes
42 69 74 63 6f 69 6eSHA-256 (Hex)
…Berechnung läuft …
Einwegfunktion
SHA-256 funktioniert praktisch nur in eine Richtung:
- Eingabe → Hash ist leicht berechenbar
- Hash → ursprüngliche Eingabe praktisch nicht zurückrechenbar
Deshalb eignet sich SHA-256, um Daten eindeutig und manipulationssicher darzustellen (siehe Kryptographie).
Was bedeutet 256 Bit?
Der Hash besteht intern aus genau 256 einzelnen Binärstellen (Bits). Jedes Bit kann nur 0 oder 1 sein. Das ist eine feste Ausgabelänge, nicht 256 verschiedene Hashes. Dieselbe Information kann unterschiedlich dargestellt werden:
- als Bit (
0und1) - als Byte (10111010)
- als Byte in Dezimalzahlen (186)
- oder als Hexadezimalzahlen (Hex) (0xba)
Alle drei Darstellungen meinen denselben Wert.
In Bitcoin werden Hashes fast immer als Hex dargestellt, weil Hex deutlich kompakter und lesbarer ist als reine Binärdarstellung.
Dabei gilt:
8 Bit = 1 Byte 1 Byte = 2 Hex-Zeichen
Ein SHA-256-Hash besteht daher aus:
256 Bit = 32 Byte = 64 Hex-Zeichen
Derselbe Hash von BitcoinVonInnen in drei Schreibweisen (das erste Byte ist jeweils rot markiert):
Hex (64 Zeichen, üblich):
641f0d2354c053721b61a093932a4c081e425335ab2dc1f41d2e18508e8c66dfBytes (32 Bytes, hier als Dezimal pro Byte, nur andere Schreibweise):
100, 31, 13, 35, 84, 192, 83, 114, 27, 97, 160, 147, 147, 42, 76, 8,
30, 66, 83, 53, 171, 45, 193, 244, 29, 46, 24, 80, 142, 140, 102, 223Bits (32 Bytes a 8 Bit, insgesamt 256 Bit):
01100100 00011111 00001101 00100011
01010100 11000000 01010011 01110010
00011011 01100001 10100000 10010011
10010011 00101010 01001100 00001000
00011110 01000010 01010011 00110101
10101011 00101101 11000001 11110100
00011101 00101110 00011000 01010000
10001110 10001100 01100110 11011111Wozu Bitcoin SHA256 braucht
SHA-256 ist das kryptographische Bindemittel: ändert sich irgend ein Wert in einer Transaktion, mutieren TxID, Merkle Root, Blockhash und die Verkettung zur Chain. SHA-256 macht Veränderungen in Bitcoin sofort sichtbar: jeder Node kann Hashes nachrechnen und Abweichungen erkennen.
Bitcoin verwendet SHA-256 an vielen verschiedenen Stellen im System. Dabei wird dieselbe Hashfunktion für unterschiedliche Aufgaben eingesetzt.
Beim Blockhash wird der 80 Byte große
Blockheader doppelt mit SHA-256 gehasht
(SHA256d). Das Ergebnis wird im nächsten Block als
previous block hash gespeichert und verbindet so die Blöcke miteinander.
Auch im Merkle-Baum kommt SHA-256 zum Einsatz: Dabei werden Transaktions-Hashes paarweise zusammengefasst und erneut gehasht, bis am Ende nur noch die Merkle Root übrig bleibt, die später im Blockheader gespeichert wird.
Beim Proof of Work verändern Miner ständig die Nonce im Header, um durch wiederholtes Hashen einen gültigen Blockhash zu finden, der unter dem aktuellen Target liegt.
SHA-256 wird außerdem verwendet, um Transaktionen eindeutig über ihre Hashes zu identifizieren.
Weitere Anwendungen finden sich unter anderem in Scripts, Commitments und bei der Adress-Ableitung.
SHA-256 ermöglicht es Bitcoin, Daten eindeutig zu identifizieren und selbst kleinste Veränderungen sofort erkennbar zu machen.
Das ist entscheidend, weil Informationen in einem verteilten digitalen Netzwerk beliebig kopiert, weitergegeben und verändert werden können.
So können Nodes unabhängig prüfen, ob sie wirklich dieselben Transaktionen, dieselben Blöcke und dieselbe Chain sehen, ohne einer zentralen Instanz zu vertrauen (siehe auch Trust Model).
SHA-256 ersetzt dabei weder Konsensregeln noch ECDSA Signaturen.
Hex, Text und Bytes
SHA-256 verarbeitet immer eine Folge von Bytes.
Hex-Darstellungen zeigen Bytes lediglich als Zeichen an. Erst durch das Dekodieren eines Hex-Strings entsteht die tatsächliche Bytefolge, die anschließend verarbeitet werden kann.
Text
"01000000"1 Zeichen = 1 Byte
0301310300300300300300308 Zeichen ergeben 8 Bytes
8 Bytes
SHA-256
Hash A
4c7bd668875cff9087795ee30751fd99b27d969290a23b471ef9447a7660ca3fHex-Darstellung
010000002 Hex-Zeichen = 1 Byte
01010000000000008 Hex-Zeichen ergeben 4 Bytes
4 Bytes
SHA-256
Hash B
67abdd721024f0ff4e0b3f4c2fc13bc5bad42d0b7851d456d88d203d15aaa450Obwohl beide Eingaben auf dem Bildschirm ähnlich aussehen, entstehen unterschiedliche Bytefolgen und damit unterschiedliche Hashes.
Dieser Unterschied ist bei Bitcoin besonders wichtig, da Transaktionen, Block-Header und viele andere Daten häufig als Hex dargestellt, intern jedoch als Bytefolgen verarbeitet werden.
Was macht Double SHA256?
Double SHA-256 (SHA256d) bezeichnet die zweimalige Anwendung der SHA-256-Funktion auf dieselbe Bytefolge.
Dabei wird zunächst ein normaler SHA-256-Hash berechnet. Das Ergebnis dieses ersten Durchlaufs dient anschließend als Eingabe für einen zweiten SHA-256-Durchlauf.
Der zweite Durchlauf verarbeitet dabei nicht den angezeigten Hash-Text, sondern die 32 Byte des ersten Hash-Ergebnisses.
Wichtig ist dabei:
- SHA-256 verarbeitet immer Bytes.
- Hex ist lediglich eine Darstellung dieser Bytes.
- Der zweite Durchlauf verarbeitet die 32 Byte des ersten Hashes, nicht den angezeigten Hash-Text.
- Die Interpretation der Eingabe (Text oder Hex) beeinflusst das Ergebnis des Hashes (siehe Abschnitt Hex, Text und Bytes).
Interpretierte Eingabe-Bytes
Input
BitcoinBytes
42 69 74 63 6f 69 6eErster SHA-256-Durchlauf (Hex)
…Erster Durchlauf über die interpretierten Bytes.
Double SHA-256 (Hex)
…Zweiter Durchlauf auf den 32 Rohbytes des ersten Hashes, nicht auf den Hex-Text.
Berechnung läuft …
Deep Dive: SHA256 Schritt für Schritt
SHA-256 besteht nicht aus einem einzigen magischen Schritt, sondern aus einer festen Folge kryptografischer Operationen (offizieller Standard FIPS 180 4).
Bei sha256algorithm kannst du den gesamten Ablauf Schritt für Schritt durchlaufen und beobachten, wie aus einer Eingabe am Ende ein 256 Bit großer Hash entsteht. Dort liegt der Fokus der Darstellung auf Binär (Bitfolgen, Rotationen, XOR Schritt für Schritt). Unser Walkthrough unten nutzt durchgängig Hex.
Dabei siehst du nicht nur das Endergebnis, sondern auch die einzelnen Zwischenstufen: von den ursprünglichen
Bytes, über das Padding, den Message Schedule W[0..63], bis hin zu den 64
Kompressionsrunden mit den Registern a bis h (jeweils als Hex).
Mit Weiter und Zurück folgst du exakt derselben Reihenfolge, die auch eine echte SHA-256-Implementierung intern durchläuft: Eingabe → Padding → Startwerte → Schedule → Runden → finaler Digest.
15 Bytes · 120 Bit · 1 Block à 512 Bit
Darstellung in Hex (wie Block-Hashes und Tx-IDs in Bitcoin). Auf sha256algorithm.com dieselben Schritte vor allem in Binär, inklusive sichtbarer Bit-Rotationen.
Eingabe: Nachricht als Bytes
SHA-256 arbeitet nur mit Bytes. Text wird in UTF-8 kodiert; hier jedes Byte in Hex (wie in Bitcoin üblich). Für dieselben Schritte in Binär mit Bit-Rotationen: sha256algorithm.com.