Hashfunktionen: die leise Mechanik unter allem in Krypto

·4 Min. Lesezeit·Von SSP Editorial Team
SSP-Academy-Titelbild: wie Hashfunktionen in Krypto arbeiten

Hashfunktionen: die leise Mechanik unter allem in Krypto

Zerlegt man eine Blockchain in ihre wesentlichen Teile, findet man zwei Arten von Kryptografie, die fast die ganze Arbeit leisten. Digitale Signaturen entscheiden, wer ausgeben darf. Hashfunktionen halten alles andere zusammen — Blöcke, Adressen, Mining, Transaktions-IDs, sogar die Art, wie eine Wallet dekodiert, was du gleich signierst.

Hashfunktionen werden selten erklärt, weil man sie selten bemerkt. Sie sind zehn Minuten wert, denn wenn man sie verstanden hat, sieht erstaunlich viel an Krypto nicht mehr nach Zauberei aus.

Was eine Hashfunktion tut

Eine Hashfunktion nimmt eine beliebige Eingabe — ein Wort, eine Datei, einen ganzen Block Transaktionen — und erzeugt einen Fingerabdruck fester Größe. SHA-256, die Funktion, die Bitcoin nutzt, erzeugt immer 256 Bit, meist als 64 Hexadezimalzeichen geschrieben, ob man einen Buchstaben oder ein Gigabyte hineingibt.

Drei Eigenschaften machen sie nützlich:

Deterministisch. Dieselbe Eingabe ergibt immer dieselbe Ausgabe. Jeder kann sie überall neu berechnen und prüfen.

Einweg. Aus einem Fingerabdruck lässt sich die Eingabe praktisch nicht zurückgewinnen. Der einzige Weg ist, Eingaben zu raten, bis eine passt, und bei einem guten Hash ist das aussichtslos.

Kollisionsresistent. Es ist unmöglich, zwei verschiedene Eingaben mit demselben Fingerabdruck zu finden. Ändere ein einziges Zeichen, und die Ausgabe ändert sich vollständig und unvorhersehbar.

Mehr ist ein Hash nicht: ein kurzer, prüfbarer, unfälschbarer Fingerabdruck von etwas Größerem.

Wo du Hashes unbemerkt begegnest

Transaktions-IDs. Eine Txid ist einfach der Hash einer Transaktion. Deshalb ist sie eindeutig, und deshalb fügst du sie in einen Block-Explorer ein — sie bezeichnet genau eine Transaktion, und niemand kann eine andere mit derselben ID erzeugen.

Die Kette selbst. Jeder Block enthält den Hash des vorherigen Blocks. Ändere irgendetwas in einem alten Block, und sein Hash ändert sich, was die Verbindung zu jedem späteren Block zerreißt. Diese Kette von Fingerabdrücken macht Manipulationen an der Geschichte sichtbar.

Mining. Proof of Work ist eine Hash-Lotterie: Miner hashen Blockheader immer wieder, jedes Mal mit einer veränderten Zahl, bis sie ein Ergebnis unter einem Zielwert finden. Weil Hashes unvorhersehbar sind, gibt es keine Abkürzung — nur mehr Versuche, weshalb Proof of Work echte Energie kostet und dieser Aufwand Sicherheit erkauft.

Adressen. Die meisten Adressen sind Hashes von etwas. Eine klassische Bitcoin-Adresse ist ein Hash eines öffentlichen Schlüssels. SSPs Bitcoin-Adressen sind P2WSH: ein SHA-256-Hash des Witness-Skripts, das die 2-von-2-Ausgaberegel beschreibt. Was vor dem Ausgeben in der Kette steht, ist dieser Fingerabdruck, nicht die Schlüssel selbst.

Hashes in der Wallet

Hashing ist nicht nur ein Konzept auf Kettenebene. Es steckt auch in der Software, mit der du signierst.

Wenn SSP Key eine Ethereum-Transaktion dekodiert, bevor du sie genehmigst, erkennt es anhand von Funktionsselektoren, was der Aufruf tut — den ersten vier Bytes des Keccak-256-Hashes der Funktionssignatur. transfer(address,uint256) ergibt einen Wert, der mit a9059cbb beginnt; approve(address,uint256) einen, der mit 095ea7b3 beginnt. Sieht der Dekodierer diese vier Bytes am Anfang einer Transaktion, weiß er, welche Funktion aufgerufen wird, und kann dir in Klartext zeigen, dass du Token sendest oder eine Freigabe erteilst.

Das veranschaulicht schön, wofür Hashes taugen: ein kompakter, eindeutiger Fingerabdruck von etwas Längerem. Es erinnert aber auch an ihre Grenzen, denn vier Bytes sind so kurz, dass zwei verschiedene Funktionen denselben Selektor teilen können. Das ist ein Grund, warum der Dekodierer bewusst geschlossen scheitert — alles Unerwartete fällt auf Rohdaten zurück statt auf eine selbstsichere Vermutung.

Was Hashes nicht können

Sie verbergen keine kleinen Eingaben. Ein Hash ist einweg, aber stammt die Eingabe aus einer kleinen Menge von Möglichkeiten, kann ein Angreifer einfach jede hashen und vergleichen. Deshalb schützt eine gehashte PIN oder ein kurzes gehashtes Passwort sehr wenig, und deshalb sind Seed-Phrasen lange zufällige Wörter statt etwas Einprägsames.

Sie beweisen nichts über die Bedeutung. Ein Hash beweist, dass zwei Dinge identisch sind. Ob eines davon ehrlich ist, sagt er nicht. Ein perfekt geprüfter Hash einer bösartigen Transaktion bleibt eine bösartige Transaktion.

Sie sind keine Verschlüsselung. Man kann einen Hash nicht „entschlüsseln“, um das Original zurückzubekommen. Wer behauptet, einen Hash umzukehren, rät.

Warum dich das betrifft

Du wirst selten einen Hash von Hand berechnen. Aber sie zu verstehen, erklärt einiges, was sich sonst wie auswendig zu lernende Regeln anfühlt:

Warum eine Txid beweist, dass eine Zahlung existiert. Warum du eine bestätigte Transaktion nicht bearbeiten kannst. Warum Mining Energie verbraucht. Warum eine unverbrauchte Adresse einen Fingerabdruck zeigt statt deiner Schlüssel. Warum ein langer, zufälliger Seed sicher ist und ein kurzer, cleverer nicht.

Hashfunktionen sind der Teil von Krypto, der einfach funktioniert, leise, milliardenfach am Tag. Zu wissen, was sie garantieren — und was nicht —, ist einer der günstigsten Wege, das System zu verstehen, dem du dein Geld anvertraust.

Diesen Artikel teilen

Verwandte Artikel