Seedor
Info

Das Wichtigste in Kürze:

  • Als „Hash“ wird das Ergebnis einer mathematischen Funktion bezeichnet, die aus einer beliebigen Eingabemenge eine völlig veränderte Ausgabemenge mit festgelegter Größe schafft.
  • Es ist sehr leicht das Ergebnis aus einer Eingabe zu berechnen, jedoch extrem schwierig aus dem Ergebnis auf die Eingabe zurückzurechnen.
  • Eines der bekanntesten Hash-Verfahren, das u.a. bei Bitcoin zum Einsatz kommt ist der „Secure Hash Algorithm – 256“ (SHA-256).

Jeder, der sich mit Kryptowährungen beschäftigt, stolpert früher oder später über Begriffe, wie Hash oder Hashrate. In unserem heutigen Blocktrainer 1×1 wollen wir klären, was es mit einem Hash auf sich hat und warum dieser für Kryptowährungen unerlässlich ist.

Doch vorerst solltest du dir noch unser “Blocktrainer 1×1: Was ist eigentlich Kryptographie?” durchlesen. Dieser Artikel wird dir einen perfekten Einstieg geben, um das folgende Thema besser zu verstehen.

Was ist ein Hash und wie entsteht er?

Der Name “Hash” bzw. “Hashfunktion” kommt vom englischen Verb “to hash” und bedeutet zu deutsch “zerhacken”. Du nimmst eine Datenmenge und zerhackst und vertauschst sie um sie in eine andere Form zu bringen. Das Ziel einer Hashfunktion ist es, eine große Eingabemenge auf eine kleinere Zielmenge abzubilden. Die Zeichenfolge, die das Ergebnis dieser Funktion darstellt, wird als “Hash” bezeichnet.

In der Kryptographie wird eine Hashfunktion auch als mathematische Einwegfunktion beschrieben. Ein Text lässt sich in eine Richtung über einen Hash einfach verschlüsseln, während sich der verschlüsselte Text nur sehr schwer in den Ursprungstext zurückrechnen lässt.

Ein Beispiel gefällig?

Auf Blocktrainer.de findest du einen 9408 Wörter langen Artikel über
Das bullische Plädoyer für Bitcoin” von Vijay Boyapati.

Ich nehme nun diesen Text und hashe ihn mittels SHA-256. (Was das ist werde ich dir später verraten) Dabei kommt folgende Ausgabe heraus:

 

bcec5ca31ba2793b001a7a3de4e035a6b57fb8a72087bb023aa58f7f26d99eb5

 

Hier noch weitere Beispiele. Beobachte, wie kleine Unterschiede, den ganzen Hash verändern.

1) Hier das Wort “hallo”, welches über SHA-256 gehasht wurde.

 

d3751d33f9cd5049c4af2b462735457e4d3baf130bcbb87f389e349fbaeb20b9

 

2) Hier das Wort “Hallo”, welches über SHA-256 gehasht wurde.

 

753692ec36adb4c794c973945eb2a99c1649703ea6f76bf259abb4fb838e013e

 

3) Hier das Wort “hallo!“, welches über SHA-256 gehasht wurde.

 

f4facd09fc865aa866b1390e02911b27f599bd52793d3835429862f900b76d6c

 

Egal was wir eingeben, ob lange ob kurze Texte, ob wir ein Wort klein oder groß schreiben, ob wir Zeichen hinzufügen oder weglassen, es wird immer ein neuer individueller Hash generiert werden, der augenscheinlich keine Systematik enthält und eine vordefinierte Länge (hier 64 Zeichen) besitzt.

Versucht eine Entität, den Ursprungstext über eine Umkehrfunktion zurückzurechnen, wird er viel Zeit benötigen, da die Rückrechnung fast unmöglich ist!

Hashkollisionen

Bei den kryptologischen Hashfunktionen, die für Kryptowährungen, wie Bitcoin, verwendet werden, muss sichergestellt werden, dass jede Eingabe eine andere Ausgabe zur Folge hat. Andernfalls entsteht eine sogenannte Hashkollision, wodurch der entsprechende Hashalgorithmus als “broken” und unsicher angesehen wird (im deutschen spricht man auch von einem “Bruch” der Hashfunktion).

In folgender Abbildung wird eine Hashkollision bildlich dargestellt. Alice und Bob haben zwei unterschiedliche Eingaben, bekommen aber als Ausgabe beide den Hash:”xxxyyyzzz“.

Welche Hashalgorithmen sind die gängigsten?

Zu den gängigsten Hashalgorithmen gehören mit Abstand die Gruppe der SHA-2-Familie (Secure Hash Algorithm). Die SHA-1-Gruppe gilt heute als unsicher, da in der Vergangenheit mehrmals Kollisionen entdeckt wurden.

SHA256 ist der am meisten genutzte Hashalgorithmus. Daneben gibt es noch SHA-224, SHA-384 und SHA-512, die alle aus der SHA-2-Familie stammen. Die zugefügte Zahl hinter dem SHA gibt die Länge des Hashwerts in Bits an.

Bis heute gilt SHA-256 als sicher. Dies liegt daran, dass eine Brute-Force-Attacke* auf diese Funktion im Durchschnitt 40^38 Versuche erfordern würde um den Eingabewert zu einem vorgegebenen Ergebnis zu erraten. Weil heutzutage diese Rechenleistung nicht aufgebracht werden kann, wird SHA-256 vorerst als kollisionssicher angesehen.

*Schon gewusst!: Eine Brute-Force-Attacke ist nichts anderes, als das alle Möglichkeiten zum knacken eines (z.B. Passworts) nacheinander ausprobiert werden.

Hashes beim Proof-Of-Work

Für Kryptowährungen wie Bitcoin werden, allen voran beim Prozess des Minings, Hashfunktionen benötigt. Die sogenannten Miner versuchen hierbei nämlich einen Hash zu finden, der vorgegebenen Voraussetzungen beziehungsweise Regeln entspricht.

Schon gewusst!: Die Mining-Difficulty gibt an, welche Vorraussetzungen ein Hashwert benötigt um als valide zu gelten. Über die Difficulty soll gewährleistet werden, dass unabhängig von der Rechenleistung im Netzwerk, die Blockzeit immer gleich bleibt.

Während des Mining-Prozesses wird im Endeffekt nichts anderes gemacht, als verschiedene Eingaben mit einer Hashfunktion durchzuprobieren um am Ende eine gültige Ausgabe (Hashwert) zu erhalten, die den Anforderungen der aktuellen Mining-Difficulty entspricht.

Diese Aufgaben können über CPUs und GPUs durchgeführt werden. Aber es gibt auch spezielle Mining-Hardware (ASICs), die diese Aufgabe besonders effizient durchführen können. Über ASIC-Miner haben wir bereits in einem früheren Blocktrainer 1×1 einen Artikel verfasst.

Zusammenfassung

Ein kryptographischer Hash sollte folgende fünf Eigenschaften besitzen:

  1. Ein Hash sollte deterministisch sein – Eine Nachricht sollte immer den gleichen Hashwert ergeben.
  2. Ein Hash sollte effizient sein – Die Eingabe kann über die Hash-Funktion schnell zu einer Ausgabe verarbeitet werden.
  3. Ein Hash sollte einseitig sein – Die Ursprungsnachricht darf aus dem Hashwert nicht ableitbar sein.
  4. Ein Hash sollte kollisionssicher sein – Zwei verschiedene Nachrichten dürfen nicht den gleichen Hashwert ergeben.
  5. Kleine Änderungen der Nachricht sollten zu großen Veränderungen des entsprechenden Hashwertes führen.

Bist du auch der Meinung dass Quantencomputer eine Gefahr für SHA-256 darstellen werden? Falls “Ja”, was wird in diesem Fall aus Bitcoin? Schreib deine Meinung gerne in unser forum.blocktrainer.de und diskutiere mit uns darüber.