In der Blockchain sind Hashes allgegenwärtig: Transaktions-IDs sind Hashes, Blöcke werden durch Hashes miteinander verknüpft, und beim Bitcoin-Mining werden ununterbrochen Hashes berechnet. Was genau ist ein Hash und warum ist er so wichtig? Dieser Artikel erklärt es mit möglichst wenigen Fachbegriffen.
Das Mining von $BTC besteht im Grunde darin, immer wieder SHA-256-Hashes zu berechnen, bis ein Ergebnis gefunden wird, das die Schwierigkeitsanforderungen erfüllt. Aktuell: 71.194,11 (24 Std. -3,9 %).
■ Was ist ein Hash?
Eine Hashfunktion wandelt Daten beliebiger Länge in eine Ausgabe fester Länge um. Diese Ausgabe nennt man Hashwert oder auch Digest. SHA-256 erzeugt beispielsweise immer eine Ausgabe von 256 Bit, was in hexadezimaler Schreibweise 64 Zeichen entspricht.
Man kann sich einen Hashwert als „Fingerabdruck“ von Daten vorstellen: Bei denselben Daten ist der berechnete Fingerabdruck immer gleich. Ändert man auch nur ein einziges Zeichen, wird der Fingerabdruck völlig anders.
■ Was zeichnet eine gute Hashfunktion aus?
Erstens: Einwegfunktion. Es ist nahezu unmöglich, aus dem Hashwert die ursprünglichen Daten abzuleiten. Zweitens: Kollisionsresistenz. Es ist nahezu unmöglich, zwei unterschiedliche Datensätze zu finden, die denselben Hashwert ergeben. Drittens: Das Ergebnis ist nicht vorhersehbar. Ohne die Berechnung tatsächlich durchzuführen, lässt sich die Ausgabe nicht kennen.
Wichtig ist: Hashing ist keine Verschlüsselung. Verschlüsselte Daten lassen sich mit einem Schlüssel wiederherstellen. Ein Hash ist hingegen eine Einwegfunktion: Aus dem Hashwert lässt sich der ursprüngliche Inhalt nicht rekonstruieren.
■ Wo wird Hashing in der Blockchain eingesetzt?
Bitcoin verwendet SHA-256 zur Berechnung von Block-Hashes und Transaktions-IDs und wendet den Algorithmus dabei zweimal an. Bei der Erzeugung gängiger P2PKH- und P2WPKH-Adressen wird der öffentliche Schlüssel zuerst mit SHA-256 und anschließend mit RIPEMD-160 gehasht (bei Taproot-Adressen wird dagegen direkt der öffentliche Schlüssel verwendet). Ethereum nutzt Keccak-256; die Adresse besteht aus den letzten 20 Bytes des Keccak-256-Hashes des öffentlichen Schlüssels.
Im Header jedes Blocks ist der Hash des vorherigen Blocks gespeichert. Wird ein beliebiger früherer Block verändert, ändert sich sein Hash, und alle nachfolgenden Blöcke stimmen nicht mehr überein. Das ist einer der Gründe, warum eine Blockchain so schwer zu manipulieren ist. Beim Bitcoin-Mining werden fortlaufend unterschiedliche Eingaben ausprobiert, bis ein Hash berechnet wird, der die Schwierigkeitsanforderungen erfüllt.
■ Was bringt das normalen Nutzern?
Um eine Überweisung zu überprüfen, kannst du mit dem Transaktions-Hash im Block-Explorer danach suchen. Das ist viel zuverlässiger, als sich auf einen Screenshot zu verlassen. Nach dem Herunterladen einer Wallet-Software kannst du den offiziellen SHA-256-Prüfwert abgleichen, um sicherzustellen, dass das Installationspaket nicht manipuliert wurde.
■ Kurz gesagt
Merke dir einen Satz: Ein Hash ist der Fingerabdruck von Daten. Er kann veröffentlicht und verglichen, aber nicht zurückgerechnet werden. Einen Transaktions-Hash kannst du bedenkenlos weitergeben; deinen privaten Schlüssel und deine Wiederherstellungsphrase hingegen niemals. Vorsicht ist völlig in Ordnung – am Leben zu bleiben ist viel wichtiger, als bei einem einzelnen Geschäft möglichst viel zu verdienen.
Wenn ich etwas ausgelassen habe, können wir gern in den Kommentaren darüber sprechen.