Bitcoin · Grundbegriffe

Was ist ein Hash?

Der digitale Fingerabdruck, der die Blockchain zusammenhält: was ein Hash ist, wie SHA-256 funktioniert und welche Rolle Hashes beim Mining spielen.

Samy Nomikos · 5 Min. Lesezeit

Kurz gesagt

  • Ein Hash ist das Ergebnis einer mathematischen Funktion, die beliebige Daten in eine Zeichenfolge fester Länge verwandelt.
  • Den Hash zu berechnen ist einfach. Aus dem Hash auf die ursprünglichen Daten zu schliessen, ist praktisch unmöglich.
  • Bitcoin verwendet das Verfahren SHA-256, eines der bekanntesten und sichersten.

Wer sich mit Bitcoin beschäftigt, stolpert ständig über die Wörter «Hash» und «Hashrate». Sie gehören zu den wichtigsten Bausteinen des ganzen Systems: Ohne Hashes gäbe es weder eine sichere Blockchain noch Mining. Dieser Beitrag erklärt, was ein Hash ist und warum er so nützlich ist. Etwas Hintergrund liefert der Beitrag Was ist Kryptographie?

Was ist ein Hash?

Der Begriff kommt vom englischen Verb «to hash», zerhacken. Genau das passiert: Eine Hashfunktion nimmt Daten beliebiger Grösse – ein Wort, einen Brief, ein ganzes Buch – zerhackt und vermischt sie nach festen Regeln und spuckt am Ende eine kurze Zeichenfolge fester Länge aus. Diese Zeichenfolge nennt man den Hash, manchmal auch Hashwert oder Prüfsumme.

In der Kryptographie gilt eine Hashfunktion als Einwegfunktion: In die eine Richtung ist sie leicht zu berechnen, in die andere praktisch nicht umkehrbar. Man kann sich das vorstellen wie das Mischen von Farben: Aus Blau und Gelb wird schnell Grün, aber aus dem Grün lassen sich die genauen Ausgangsfarben nicht mehr zurückgewinnen.

Ein Beispiel

Am besten versteht man Hashes, wenn man sie sieht. Hier die SHA-256-Hashes einiger kurzer Texte:

EingabeSHA-256-Hash
Bitcoinb4056df6691f8dc72e56302ddad345d65fead3ead9299609a826e2344eb63aa4
bitcoin6b88c087247aa2f07ee1c5956b8e1a9f4c7f892a70e324f1bb3d161e05ca107b
Bitcoin!b81bf654dc352f66a0fcb51da8a260b60cf4a92dcf01f04f5f523961d9f6a6d7
Samy Nomikos648c9f519fb0a907fabb453fc24ea4714e12a85a53428c0ea2438329e09fa225

Drei Dinge fallen auf:

  • Kleine Änderung, völlig anderes Ergebnis: Ob grosses oder kleines B, ob mit oder ohne Ausrufezeichen – jeder Unterschied führt zu einem komplett anderen Hash.
  • Kein Muster: Den Hashes sieht man nicht an, wie ähnlich sich die Eingaben waren.
  • Immer gleich lang: Der Hash hat immer 64 Zeichen, egal ob die Eingabe ein einzelnes Wort oder ein ganzes Buch ist. Auch ein Text mit Tausenden Wörtern ergibt einen Hash mit genau 64 Zeichen.

Und das Wichtigste: Aus dem Hash lässt sich die Eingabe nicht in vernünftiger Zeit zurückrechnen. Wer nur b405…3aa4 kennt, kann nicht herausfinden, dass «Bitcoin» dahintersteckt – ausser durch Raten.

Wozu das gut ist

Weil schon die kleinste Änderung den Hash völlig verändert, eignen sich Hashes hervorragend als digitaler Fingerabdruck. Lädst du eine Software herunter, kannst du ihren Hash mit dem vom Hersteller veröffentlichten vergleichen: Stimmen sie überein, wurde die Datei unterwegs nicht manipuliert. Webseiten speichern Passwörter nicht im Klartext, sondern nur ihren Hash; beim Anmelden wird der Hash deiner Eingabe mit dem gespeicherten verglichen. Und bei Bitcoin hält der Hash jedes Blocks die ganze Blockchain zusammen.

Hash-Kollisionen

Eine Hashfunktion, die in Kryptowährungen wie Bitcoin eingesetzt wird, muss für jede Eingabe einen eindeutigen Ausgabewert liefern. Mathematisch gesehen gibt es zwar unendlich viele mögliche Eingaben, aber nur eine begrenzte Zahl möglicher Hashes – es muss also theoretisch Eingaben mit gleichem Hash geben. Entscheidend ist, dass man solche Paare praktisch nie findet.

Finden zwei verschiedene Eingaben trotzdem denselben Hash, spricht man von einer Kollision. Nehmen wir an, Alice und Bob hashen zwei völlig unterschiedliche Texte und erhalten genau dasselbe Ergebnis. Dann könnte man einen Text unbemerkt gegen den anderen austauschen, und der Fingerabdruck würde trotzdem passen. Ein Verfahren, bei dem man gezielt Kollisionen erzeugen kann, gilt als «gebrochen» und unsicher.

Verbreitete Hashverfahren

Die am weitesten verbreitete Familie ist SHA-2, kurz für «Secure Hash Algorithm 2», entwickelt vom amerikanischen Geheimdienst NSA und veröffentlicht von der US-Standardisierungsbehörde. Zu ihr gehören SHA-224, SHA-256, SHA-384 und SHA-512. Die Zahl im Namen gibt die Länge des Hashs in Bit an. Die ältere Familie SHA-1 gilt dagegen als unsicher, weil Forschende darin wiederholt Kollisionen gefunden haben.

SHA-256 ist das meistgenutzte Verfahren und gilt nach wie vor als sicher. Um zu einem gegebenen Hash eine passende Eingabe zu erraten, müsste man im Schnitt rund 2256 Möglichkeiten durchprobieren – eine Zahl mit 78 Stellen, in der Grössenordnung der geschätzten Zahl aller Atome im sichtbaren Universum. Selbst um irgendeine Kollision zu finden, wären immer noch etwa 2128 Versuche nötig, eine Zahl mit 39 Stellen. Dieses stumpfe Durchprobieren aller Möglichkeiten nennt man Brute-Force-Angriff, wie beim Knacken eines Passworts. Die gesamte Rechenleistung der Welt reicht dafür bei Weitem nicht aus. SHA-256 gilt deshalb als kollisionsresistent.

Hashes beim Mining

Auch das Mining, mit dem neue Bitcoin-Blöcke entstehen, beruht auf Hashfunktionen. Miner suchen einen Hash, der den aktuellen Regeln des Netzwerks entspricht. Dazu stellen sie einen Block zusammen, hängen eine Zahl an, den sogenannten Nonce, und berechnen den Hash. Ist er kleiner als ein festgelegter Zielwert – beginnt er also mit genug Nullen –, ist der Block gültig. Sonst probieren sie den nächsten Nonce.

Wie klein der Hash sein muss, bestimmt die Schwierigkeit (Difficulty). Das Netzwerk passt sie alle 2016 Blöcke, also etwa alle zwei Wochen, automatisch an: Kommt mehr Rechenleistung dazu, wird es schwieriger, verschwindet Rechenleistung, wird es leichter. So entsteht im Schnitt weiterhin etwa alle zehn Minuten ein Block, egal wie viele Miner mitmachen.

Wie viele Hashes alle Miner zusammen pro Sekunde berechnen, nennt man die Hashrate. Die aktuelle Hashrate des Bitcoin-Netzwerks siehst du live auf meiner Bitcoin-Seite. Rechnen könnten diese Hashes gewöhnliche Prozessoren (CPU) oder Grafikkarten (GPU). Spezialisierte Geräte, sogenannte ASIC-Miner, erledigen dieselbe Aufgabe aber um ein Vielfaches schneller und effizienter und haben die anderen längst verdrängt.

Die Eigenschaften im Überblick

Eine gute kryptographische Hashfunktion erfüllt fünf Eigenschaften:

  1. Deterministisch: Dieselbe Eingabe ergibt immer denselben Hash.
  2. Effizient: Der Hash lässt sich schnell berechnen.
  3. Einweg: Aus dem Hash lässt sich die Eingabe nicht zurückgewinnen.
  4. Kollisionsresistent: Zwei verschiedene Eingaben sollen praktisch nie denselben Hash ergeben.
  5. Lawineneffekt: Kleinste Änderungen an der Eingabe verändern den Hash vollständig.

Bleibt eine offene Frage: Könnten Quantencomputer SHA-256 eines Tages gefährden? Nach heutigem Wissen würden sie das Erraten einer Eingabe zwar beschleunigen, aber nur so weit, dass SHA-256 immer noch als sehr sicher gälte. Verwundbarer wären die Signaturverfahren – mehr dazu in Was ist Kryptographie? Wie Hashes die Blöcke zu einer Kette verbinden, erklärt Was ist eine Blockchain?

Keine Finanz- oder Steuerberatung.

Willkommen