Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Überblick Über Hashing | Blöcke und Transaktionen
Einführung in Blockchain

Überblick Über Hashing

Swipe um das Menü anzuzeigen

Hashing und Block-Hashes wurden bereits mehrfach erwähnt, aber das Konzept selbst wurde noch nicht im Detail betrachtet. Nun ist es an der Zeit zu verstehen, was Hashing eigentlich ist.

Note
Mehr erfahren

Hashing ist ein Prozess, bei dem eine Eingabe genommen und eine Zeichenkette fester Länge erzeugt wird, die typischerweise als Hexadezimalzahl dargestellt wird. Die Ausgabe, bekannt als Hash, wirkt zufällig und ändert sich vollständig bei jeder Änderung der Eingabe, eine Eigenschaft, die als "Lawineneffekt" bezeichnet wird.

Eigenschaften von Hashfunktionen

In der Blockchain werden Hashfunktionen verwendet, um:

  • Transaktionen zu sichern, indem für jede ein einzigartiger Fingerabdruck erstellt wird;
  • Adressen aus öffentlichen Schlüsseln zu generieren;
  • Die Verknüpfungen in der Blockchain durch Block-Hashes herzustellen.

Vor diesem Hintergrund weist eine gute Hashfunktion für die Blockchain mehrere wichtige Eigenschaften auf:

Hashing, insbesondere mit einer guten Hashfunktion, lässt sich mit dem Zubereiten eines Smoothies vergleichen. Schauen wir uns die folgende Abbildung an:

Hashing-Illustration

Tatsächlich ist es möglich, die ursprüngliche Eingabe zu einem Hash zu finden, allerdings würde dies so viel Zeit in Anspruch nehmen, dass es praktisch nicht umsetzbar ist.

Block-Hashing

Um den Hash eines bestimmten Blocks zu berechnen, verwendet Bitcoin die SHA-256-Hashfunktion, die einen 256-Bit (32-Byte) Hash erzeugt. Sie ist Teil der SHA-2-Familie, die von der National Security Agency (NSA) entwickelt wurde und für ihre starken Sicherheitsmerkmale bekannt ist, wodurch sie gegen Kollisionen, Preimage-Angriffe und andere kryptografische Schwachstellen resistent ist.

Der Hash eines Bitcoin-Blocks wird berechnet, indem die Block-Header-Daten verwendet werden. Diese Daten werden zweimal in die SHA-256-Hashfunktion eingegeben, ein Vorgang, der als Double SHA-256 bezeichnet wird.

Hier ist eine Abbildung zur Veranschaulichung:

Block-Hashing

Der resultierende 256-Bit-Hash muss bestimmte Kriterien erfüllen, die durch das Schwierigkeitsziel des Netzwerks definiert sind. Liegt der Hash nicht unter dem Zielwert, wird der Nonce angepasst und der Hash erneut berechnet, bis ein qualifizierender Hash gefunden wird. Dieser finale Hash ist der eindeutige Bezeichner des Blocks.

Merkle-Wurzel

Die Merkle-Wurzel ist ein einzelner Hash, der alle in einem Block enthaltenen Transaktionen repräsentiert. Die Berechnung beginnt mit den Hashes jeder einzelnen Transaktion unter Verwendung von doppeltem SHA-256.

Jeder Transaktionshash wird dann paarweise mit einem anderen kombiniert, und das Paar wird zusammen gehasht, um einen neuen Hash zu erzeugen. Dieser Prozess des Paarens und Hashens wird Schicht für Schicht fortgesetzt, bis nur noch ein Hash übrig bleibt. Der finale Hash ist die Merkle-Wurzel, die die gesamte Menge der Transaktionen zusammenfasst und deren Integrität gewährleistet, indem sie sie in einen einzelnen Wert kodiert. Diese hierarchische Struktur ist als Merkle-Baum bekannt.

Das folgende Beispiel veranschaulicht, wie ein Merkle-Baum gebildet wird:

Merkle-Baum

Wie Sie sehen können, enthält unser Block 6 Transaktionen (jeweils als Tx bezeichnet) und durch Hashing und das Paaren neuer Hashes wird eine Merkle-Wurzel berechnet.

Note
Hinweis

Immer wenn der ganz rechte Hash kein Paar hat, wie bei Hash56 in unserem Beispiel, wird dieser letzte Hash dupliziert, um ein Paar zu erstellen. Diese Technik erhält die Integrität und Effizienz der Merkle-Baum-Struktur auch bei ungerader Anzahl von Transaktionen oder Hashes zu einem bestimmten Zeitpunkt.

question mark

Wie groß ist die Ausgabemenge der SHA-256-Hashfunktion, die in der Bitcoin-Blockchain verwendet wird?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Abschnitt 2. Kapitel 4
some-alt