Hash
Was ist ein Hash?
Ein Hash ist eine Funktion, die eine Eingabe von Buchstaben und Zahlen in eine verschlüsselte Ausgabe fester Länge umwandelt. Ein Hash wird mithilfe eines Algorithmus erstellt und ist für die Blockchain Verwaltung in der Kryptowährung unerlässlich.
Die zentralen Thesen
- Ein Hash ist eine Funktion, die die verschlüsselten Anforderungen erfüllt, die zur Lösung einer Blockchain-Berechnung erforderlich sind.
- Ein Hash ist wie ein Nonce oder eine Lösung das Rückgrat des Blockchain-Netzwerks.
- Hashes haben eine feste Länge, da es fast unmöglich ist, die Länge des Hash zu erraten, wenn jemand versucht hat, die Blockchain zu knacken.
- Ein Hash wird basierend auf den im Blockheader vorhandenen Informationen entwickelt.
Wie ein Hash funktioniert
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, wodurch betrügerische Transaktionen und doppelte Ausgaben der Währung verhindert werden. Der resultierende verschlüsselte Wert besteht aus einer Reihe von Zahlen und Buchstaben, die nicht den Originaldaten ähneln und als Hash bezeichnet werden. Beim Cryptocurrency Mining wird mit diesem Hash gearbeitet.
Das Hashing erfordert die Verarbeitung der Daten aus einem Block durch eine mathematische Funktion, was 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 anhand der Länge der Ausgabe erkennen kann, 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-Wurzel, das Nonce und den Ziel-Hash.
Der Bergmann konzentriert sich auf das Nonce, eine Folge von Zahlen. Diese Nummer wird an den Hash-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 basiert auf der Verschlüsselung von Daten mithilfe von algorithmischem Hashing.
Um den Hash zu lösen, muss der Miner bestimmen, welche Zeichenfolge als Nonce verwendet werden soll, was selbst eine erhebliche Menge an Versuch und Irrtum erfordert. Dies liegt daran, dass das Nonce eine zufällige Zeichenfolge ist. Es ist sehr unwahrscheinlich, dass ein Bergmann beim ersten Versuch erfolgreich die richtige Nonce findet, was bedeutet, dass der Bergmann möglicherweise eine große Anzahl von Nonce-Optionen testet, bevor er sie richtig macht. Je größer die Schwierigkeit ist – ein Maß dafür, wie schwierig es ist, einen Hash zu erstellen, der die Anforderungen des Ziel-Hash 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 erzielt wird. Es kann eine Hash-Eingabe effizient generieren. Dies erschwert auch die Ermittlung der Eingabe (was zum 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 zum Verschlüsseln neuer Blöcke erforderlichen Hash-Funktionen erfordert eine erhebliche Rechenleistung des Computers, die kostspielig sein kann. Kryptowährungsnetzwerke belohnen Einzelpersonen und Unternehmen, die als Bergleute bezeichnet werden, dazu, in die erforderliche Technologie zu investieren, und belohnen sie sowohl mit neuen Kryptowährungstoken als auch mit einer Transaktionsgebühr. Bergleute werden nur dann entschädigt, wenn sie als erste einen Hash erstellen, der die im Ziel-Hash angegebenen Anforderungen erfüllt.