Wörterbuch

Kryptographische Hash-Funktion

Moderate

Kryptografische Hash-Funktionen erzeugen einen Hash-Wert mit fester Größe aus einer Transaktionseingabe mit variabler Größe.

Was ist eine kryptografische Hash-Funktion?

Eine kryptografische Hash-Funktion ist ein Algorithmus, d.h. eine wiederholbare Abfolge spezifischer Aktionen, die verwendet werden können, um eine beliebige Datenfolge variabler Länge in eine Zeichenfolge mit fester Länge und festem Format, Hash genannt, umzuwandeln.

Eines der einfachsten Beispiele für eine Hash-Funktion ist das Addieren der Ziffern einer Zahl, bis eine einstellige Ausgabe (Output) übrig bleibt. Wenn die Eingabe beispielsweise 49 ist, ergibt die Addition von 4 und 9 13, deren Ziffern 1 und 3 dann wieder summiert werden, sodass man die Ausgabe von 4 erhält. Unabhängig von der Länge der eingegebenen Zahl ist die Ausgabe immer eine einzelne Ziffer.

Das ist jedoch kein guter Algorithmus, denn um ihre Funktionen gut auszuführen, muss eine Hash-Funktion mehrere Eigenschaften besitzen:

  • Es sollte einfach sein, eine Ausgabe (Output) für jede gegebene Eingabe (Input) zu berechnen, aber nahezu unmöglich, den Prozess umzukehren und die Eingabe einer bekannten Ausgabe zu berechnen;
  • Determinismus — das Einspeisen einer bestimmten Eingabe in den Algorithmus sollte immer die gleiche Ausgabe erzeugen;
  • Kollisionsresistenz — es sollte sehr unwahrscheinlich sein, dass zwei verschiedene Eingaben dieselbe Ausgabe erzeugen;
  • Lawineneffekt — die Änderung von Daten (wenn auch nur minimal) in der Eingabe sollte zu einer völlig anderen Ausgabe führen.

Hash-Funktionen werden in vielen Anwendungsfällen eingesetzt, beispielsweise als Prüfsummen zur Überprüfung der Integrität von Computerdateien nach ihrer Übertragung bei längerer Speicherung oder in Randomisierungsfunktionen.

Sie sind auch eine Schlüsselkomponente beim Mining von Proof-of-Work-Kryptowährungen wie Bitcoin (BTC), der die SHA-256-Hash-Funktion verwendet. Um einen neuen Block zur Blockchain hinzuzufügen und ihre Belohnung für neu geminete Bitcoins zu erhalten, müssen Miner zunächst einen Hash-Wert erzeugen, der unter einem bestimmten Schwellenwert liegt und als Target (Ziel) bezeichnet wird.

Die Tatsache, dass Hashes pseudozufällig sind und es unmöglich ist, die Ausgabe einer Eingabe vorherzusagen, bevor sie tatsächlich durch die Hash-Funktion ausgeführt wird, stellt sicher, dass Miner keine neuen Bitcoins aus dem Nichts erstellen können und die von ihnen geleistete Arbeit nachweisen müssen.