Glossar / Mining und Konsens
SHA-256
Auch bekannt als SHA256.
- Was ist SHA-256?
- SHA-256 nimmt eine Eingabe beliebiger Länge entgegen und liefert einen Fingerabdruck von 32 Byte, der jedes Mal identisch, im Voraus nicht vorhersehbar und nicht rückwärts zu berechnen ist.
Bitcoin stützt sich fast überall auf diese eine Funktion: Block-Hashes, Transaktions-IDs, Merkle-Bäume, Adressprüfsummen und die Prüfsumme in Ihrer Seed-Phrase. Die Ausgabe umfasst 256 Bit, dargestellt als 64 Hexadezimalzeichen, aus einem Raum von rund 1,2 mal 10 hoch 77 Werten. Das ist die Arithmetik, die eine falsch getippte Adresse abfängt, bevor Ihre Bitcoin irgendwohin gehen.
Wie sie funktioniert
SHA-256 zerlegt ihre Eingabe in Blöcke von 512 Bit und rührt jeden davon in 64 Runden aus Verschiebungen, Rotationen und Additionen durch.
Der durchgerührte Zustand besteht aus acht Wörtern zu 32 Bit, die mit Konstanten aus den Nachkommateilen der Quadratwurzeln der ersten acht Primzahlen initialisiert werden, während die 64 Rundenkonstanten aus den Kubikwurzeln der ersten 64 Primzahlen stammen. Diese Herkunft ist der Punkt: Es sind Zahlen, die niemand aus einem verborgenen Grund hätte wählen können, und damit begründet das Design, dass es keine Hintertür hat. Der Algorithmus wurde von der National Security Agency der Vereinigten Staaten entwickelt und 2001 von NIST veröffentlicht; die aktuelle Spezifikation ist FIPS 180-4.
Drei Eigenschaften sind es, die Bitcoin tatsächlich nutzt. Die Funktion ist deterministisch, sodass jede Maschine überall aus denselben Bytes denselben Hash ableitet. Sie hat einen Lawineneffekt, sodass ein gekipptes Bit der Eingabe etwa die Hälfte der Ausgabebits verändert, ohne ein Muster zwischen beiden. Und sie lässt sich nicht rückwärts ausführen: Niemand hat einen Weg gefunden, eine Eingabe aus einem Hash zurückzugewinnen oder zwei Eingaben mit demselben Hash zu erzeugen, der schneller wäre als rohe Gewalt. SHA-1 erlag im Februar 2017 einer praktischen Kollision, die die Forscher eine enorme Rechenleistung kostete und sich überhaupt nicht auf SHA-2 übertrug.
Bitcoin ruft sie selten nur einmal auf. Block-Header, Transaktions-IDs, Merkle-Knoten und die Prüfsumme einer Peer-to-Peer-Nachricht verwenden alle einen doppelten Durchlauf, der den Hash ein zweites Mal berechnet. Adress-Hashes nehmen einen anderen Weg, RIPEMD-160 angewendet auf einen SHA-256-Hash, und daher stammt die Nutzlast von 20 Byte einer Legacy-Adresse. Taproot brach das Muster erneut: BIP340 definiert getaggte Hashes, die SHA-256 einmal aufrufen, mit einem domänentrennenden Präfix, damit Signaturen für einen Zweck nicht für einen anderen wiederverwendet werden können.
Wo sie auftritt
Jede Hexadezimalzeichenkette mit 64 Zeichen in einem Block-Explorer ist eine SHA-256-Ausgabe. Das gilt für die Transaktions-ID, die Sie in Support-Anfragen einfügen, und für den Block-Hash, der mit einer langen Folge von Nullen beginnt; so sieht ein Header aus, der das Ziel übertroffen hat.
Zwei Stellen sind unmittelbar wichtig, wenn Sie Bitcoin halten. Eine Seed-Phrase trägt eine mit dieser Funktion gebildete Prüfsumme: 12 Wörter kodieren 128 Bit Zufall plus 4 Prüfsummenbits aus dem SHA-256-Hash dieses Zufalls, sodass eine Phrase mit einem falschen Wort etwa 15 von 16 Malen abgelehnt wird, statt stillschweigend eine leere Wallet zu öffnen. Eine Legacy-Adresse trägt eine ähnliche Absicherung, eine Prüfsumme von 4 Byte aus einem doppelten SHA-256-Durchlauf, wodurch die Wahrscheinlichkeit, dass ein zufälliger Tippfehler eine gültige Adresse ergibt, bei rund 1 zu 4,3 Milliarden liegt.
Mining-Hardware existiert für nichts anderes. Ein ASIC ist ein Chip, der diese eine Funktion und keine andere berechnet, weshalb Bitcoin-Miner nicht für Chains mit einem anderen Algorithmus wiederverwendet werden können und weshalb die Wendung SHA-256-Coin eine ganze Familie von Forks beschreibt. Beachten Sie die Grenze all dessen: Eine Prüfsumme fängt eine Adresse ab, die Sie falsch getippt haben, niemals eine Adresse, die Malware durch eine vollkommen gültige ersetzt hat, die nicht Ihnen gehört.