23 Juni 2021 13:19

Hasch

Was ist ein Hash?

Ein Hash ist eine mathematische Funktion, die eine Eingabe beliebiger Länge in eine verschlüsselte Ausgabe einer festen Länge umwandelt. Unabhängig von der ursprünglichen Datenmenge oder Dateigröße hat der eindeutige Hash immer die gleiche Größe. Darüber hinaus können Hashes nicht verwendet werden, um die Eingabe aus der gehashten Ausgabe „zurückzuentwickeln“, da Hashfunktionen „einseitig“ sind (wie ein Fleischwolf; Sie können das Hackfleisch nicht wieder in ein Steak stecken). Wenn Sie jedoch eine solche Funktion für dieselben Daten verwenden, ist ihr Hash identisch, sodass Sie überprüfen können, ob die Daten gleich (dh unverändert) sind, wenn Sie ihren Hash bereits kennen.

Hashing ist auch für das Blockchain Management in Kryptowährungen unerlässlich.

Die zentralen Thesen

  • Ein Hash ist eine Funktion, die die verschlüsselten Anforderungen erfüllt, die zum Lösen einer Blockchain-Berechnung erforderlich sind.
  • Hashes haben eine feste Länge, da es fast unmöglich ist, die Länge des Hashs zu erraten, wenn jemand versucht, die Blockchain zu knacken.
  • Dieselben Daten erzeugen immer denselben Hash-Wert.
  • Ein Hash ist wie eine Nonce oder eine Lösung das Rückgrat des Blockchain-Netzwerks.
  • Ein Hash wird basierend auf den Informationen im Blockheader entwickelt.

Wie ein Hash funktioniert

Typische Hashfunktionen verwenden Eingaben variabler Länge, um Ausgaben einer festen Länge zurückzugeben. Eine kryptografische Hash-Funktion kombiniert die Message-Passing-Fähigkeiten von Hash-Funktionen mit Sicherheitseigenschaften.

Hash-Funktionen sind häufig verwendete Datenstrukturen in Computersystemen für Aufgaben wie das Überprüfen der Integrität von Nachrichten und das Authentifizieren von Informationen. Sie gelten zwar als kryptographisch „schwach“, weil sie in polynomieller Zeit gelöst werden können, sind aber nicht leicht zu entziffern.

Kryptografische Hash-Funktionen fügen typischen Hash-Funktionen Sicherheitsfunktionen hinzu, wodurch es schwieriger wird, den Inhalt einer Nachricht oder Informationen über Empfänger und Absender zu erkennen.

Insbesondere weisen kryptografische Hashfunktionen diese drei Eigenschaften auf:

  • Sie sind „kollisionsfrei“. Dies bedeutet, dass keine zwei Eingabe-Hashes auf denselben Ausgabe-Hash abgebildet werden sollten.
  • Sie können ausgeblendet werden. Es sollte schwierig sein, den Eingabewert für eine Hash-Funktion aus ihrer Ausgabe zu erraten.
  • Sie sollten rätselfreundlich sein. Es sollte schwierig sein, einen Eingang auszuwählen, der einen vordefinierten Ausgang bereitstellt. Daher sollte der Eingang aus einer möglichst breiten Verteilung ausgewählt werden.


Aufgrund der Funktionen eines Hashs werden sie häufig in der Online-Sicherheit verwendet – vom Schutz von Kennwörtern über das Erkennen von Datenverletzungen bis hin zur Überprüfung der Integrität einer heruntergeladenen Datei.

Hashing und Kryptowährungen

Das Rückgrat einer Kryptowährung ist die Blockchain, ein globales Hauptbuch, das durch die Verknüpfung einzelner Transaktionsdatenblöcke gebildet wird. Die Blockchain enthält nur validierte Transaktionen, was betrügerische Transaktionen und doppelte Ausgaben der Währung verhindert. Der resultierende verschlüsselte Wert ist eine Reihe von Zahlen und Buchstaben, die den Originaldaten nicht ähneln und wird als Hash bezeichnet. Beim Kryptowährungs-Mining wird mit diesem Hash gearbeitet.

Hashing erfordert die Verarbeitung der Daten eines Blocks durch eine mathematische Funktion, die zu einer Ausgabe mit fester Länge führt. Die Verwendung einer Ausgabe mit fester Länge erhöht die Sicherheit, da jeder, der versucht, den Hash zu entschlüsseln, nicht in der Lage ist, einfach anhand der Länge der Ausgabe festzustellen, wie lang oder kurz die Eingabe ist.

Das Lösen des Hashs beginnt mit den im Blockheader verfügbaren Daten und löst im Wesentlichen ein komplexes mathematisches Problem. Jeder Blockheader enthält eine Versionsnummer, einen Zeitstempel, den im vorherigen Block verwendeten Hash, den Hash der Merkle Root, die Nonce und den Ziel-Hash.

Der Bergmann konzentriert sich auf die Nonce, eine Reihe von Zahlen. Diese Nummer wird an den gehashten Inhalt des vorherigen Blocks angehängt, der dann gehasht wird. Wenn dieser neue Hash kleiner oder gleich dem Ziel-Hash ist, wird er als Lösung akzeptiert, der Miner erhält die Belohnung und der Block wird der Blockchain hinzugefügt.



Der Validierungsprozess für Blockchain-Transaktionen beruht darauf, dass Daten mit algorithmischem Hashing verschlüsselt werden.

Besondere Überlegungen

Um den Hash zu lösen, muss der Miner bestimmen, welche Zeichenfolge als Nonce verwendet werden soll, was selbst einen erheblichen Aufwand an Versuch und Irrtum erfordert. Dies liegt daran, dass die Nonce eine zufällige Zeichenfolge ist. Es ist sehr unwahrscheinlich, dass ein Miner beim ersten Versuch erfolgreich die richtige Nonce findet, was bedeutet, dass der Miner möglicherweise eine große Anzahl von Nonce-Optionen testen kann, bevor er es richtig macht. Je größer die Schwierigkeit – ein Maß dafür, wie schwer es ist, einen Hash zu erstellen, der die Anforderungen des Ziel-Hashs erfüllt – desto länger dauert es wahrscheinlich, eine Lösung zu generieren.

Ein Beispiel für einen Hash

Wenn Sie das Wort „Hallo“ drücken, wird eine Ausgabe erzeugt, die genauso lang ist wie der Hash für „Ich gehe in den Laden“. Die zum Generieren des Hashs verwendete Funktion ist deterministisch, was bedeutet, dass jedes Mal, wenn dieselbe Eingabe verwendet wird, dasselbe Ergebnis erzeugt wird. Es kann effizient eine Hash-Eingabe generieren; Dies erschwert auch die Ermittlung der Eingabe (was zu Mining führt) und führt zu kleinen Änderungen an der Eingabe, die zu einem nicht erkennbaren, völlig anderen Hash führen.

Die Verarbeitung der Hash-Funktionen, die zum Verschlüsseln neuer Blöcke erforderlich sind, erfordert eine beträchtliche Rechenleistung des Computers, die kostspielig sein kann. Um Einzelpersonen und Unternehmen, sogenannte Miner, dazu zu bringen, in die erforderliche Technologie zu investieren, belohnen Kryptowährungsnetzwerke sie sowohl mit neuen Kryptowährungstoken als auch mit einer Transaktionsgebühr. Miner werden nur dann entschädigt, wenn sie als erster einen Hash erstellen, der die im Ziel-Hash beschriebenen Anforderungen erfüllt.

Häufig gestellte Fragen

Was ist eine Hash-Funktion?

Hash-Funktionen sind mathematische Funktionen, die einen gegebenen Datensatz in eine Bitfolge fester Größe, auch als „Hash-Wert“ bekannt, umwandeln oder „abbilden“.

Wie wird ein Hashwert berechnet?

Eine Hash-Funktion verwendet komplexe mathematische Algorithmen, die Daten beliebiger Länge in Daten fester Länge (z. B. 256 Zeichen) umwandeln. Wenn Sie an einer beliebigen Stelle in den Originaldaten ein Bit ändern, ändert sich der gesamte Hash-Wert, was für die Überprüfung der Wiedergabetreue digitaler Dateien und anderer Daten nützlich ist.

Wofür werden Hashes in Blockchains verwendet?

Hashes werden in mehreren Teilen eines Blockchain-Systems verwendet. Erstens enthält jeder Block den Hash des Blockheaders des vorherigen Blocks, um sicherzustellen, dass nichts manipuliert wurde, wenn neue Blöcke hinzugefügt werden. Cryptocurrency-Mining mit Proof-of-Work (PoW) verwendet außerdem Hashing von zufällig generierten Zahlen, um zu einem bestimmten Hash-Wert zu gelangen, der eine Reihe von führenden Nullen enthält. Diese willkürliche Funktion ist ressourcenintensiv und macht es für einen schlechten Akteur schwierig, das Netzwerk zu überholen.