SHA256 ist ein moderner Hashingalgorithmus, der in Blockchains dazu verwendet wird, um die Manipulation der gespeicherten Daten zu gewährleisten. Wie genau das funktioniert erfahrt ihr im folgenden Artikel.

Was ist ein Hash überhaupt?

Ein Hash ist eine Zeichenkette die nach einen bestimmten Algorithmus aus einem längeren Text oder binären Zahlen errechnet wird. Diese Zahl dient dazu, dass gewährleistet werden kann, dass keine in dem Datensatz enthaltenen  Informationen geändert wurden. Der Hashwert enthält dabei eine deutlich geringere Datenmenge als der ursprüngliche Datensatz. Ein gutes Hashingverfahren muss die folgenden Eigenschaften aufweisen:

1. Man sollte effizient mit wenig Rechenkapazität einen Hashwert für große Datenmengen ermitteln können. Beim Cryptomining kann es jedoch durchaus wünschenswert sein einen ineffizienteren Algorithmus zu verwenden, um die benötigte Rechenkapazität zu erhöhen.

2. Unumkehrbarkeit, insbesondere für kryptologische Hashingverfahren ist es essentiell, dass es unmöglich ist, aus einem Hashwert Rückschlüsse auf den gehashten Datensatz zu ziehen. Man sollte also aus dem Hashwert nicht den ursprünglichen Datensatz errechnen können.

3. Hash Kollisionen vermeiden, das bedeutet zwei Datensätze die den selben Hash erzeugen sollten praktisch unmöglich zu ermitteln sein, um das Verändern eines ganzen Datensatzes oder Teile von diesem ohne bemerkbare Veränderung des resultierenden Hash Wertes durch einen böswilligen Angreifer zu verhindern.

4. Surjektivität- jeder einzelne Hashwert sollte durch die Anwendung des Hashingalgorithmus bei entsprechender Eingabe erreichbar sein.

5. Konfusion / Diffusion - ändert sich ein kleines Detail im Datensatz also zB. ein Bit im Datensatz sollte sich möglichst ein großer Anteil der Bits im Hash ändern, im Idealfall ändert sich durch das ändern eines Bits im Datensatz durchschnittlich die Hälfte aller Bits im Hashwert.

6. Außerdem verwandelt ein Hashingb Algorithmus einen Input mit beliebiger datenmenge in einen Output mit fester größe, zB. 256 Bits. 

Was ist ein Beispiel für eine einfache Hashfunktion?
Um einfache Zahlen zu hashen, kann man beispielsweise die Modulo- Division verwenden.
Wenn m die Größe der Hashtabelle ist und k der key also der zu hashende Wert, dann lässt sich diese eher ungeeignete Methode berechnen durch:

hash(k)= k mod m 


Eine verbesserte Variante stellt zB. die Knuth Variante dar mit der Funktion:
hash(k)= (k *(k+3) ) mod m

Eine vollständige Code Implementation mit erklärung kannst du hier finden.

SHA 256 ist der Algorithmus der bei der Bitcoin Blockchain zum Einsatz kommt. Um zu verstehen wie Blockchain funktionieren ist es nicht notwendig das genaue Verfahren zu kennen, aber wen es interessiert, der findet im folgenden Video ein Schritt für Schritt Erklärung.

YouTube

Inhalte von YouTube werden aufgrund deiner aktuellen Cookie-Einstellungen nicht angezeigt. Klicke auf “Zustimmen & anzeigen”, um zuzustimmen, dass die erforderlichen Daten an YouTube weitergeleitet werden, und den Inhalt anzusehen. Mehr dazu erfährst du in unserer Datenschutz. Du kannst deine Zustimmung jederzeit widerrufen. Gehe dazu einfach in deine eigenen Cookie-Einstellungen.

Zustimmen & anzeigen