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
Quizzes & Challenges
Quizzes
Challenges
/
Einführung in Blockchain

bookÜberblick Über Hashing

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

Note
Mehr erfahren

Hashing ist ein Verfahren, das eine Eingabe nimmt und eine Zeichenkette fester Länge erzeugt, 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 durch die Erstellung eines eindeutigen Fingerabdrucks abzusichern;
  • 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 zentrale Eigenschaften auf:

Hashing, insbesondere unter Verwendung einer guten Hashfunktion, lässt sich mit der Zubereitung eines Smoothies vergleichen. Nachfolgend eine entsprechende Illustration:

Tatsächlich ist es möglich, die ursprüngliche Eingabe anhand eines Hashs zu ermitteln, allerdings würde dies zu viel Zeit in Anspruch nehmen, um praktisch umsetzbar zu sein.

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, entwickelt von der National Security Agency (NSA), und bekannt für ihre starken Sicherheitsmerkmale, wodurch sie gegen Kollisionen, Preimage-Angriffe und andere kryptografische Schwachstellen resistent ist.

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

Hier eine Abbildung zur Veranschaulichung:

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 endgültige 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 anschließend mit einem anderen gepaart, und das Paar wird gemeinsam 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 endgültige 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:

Wie zu sehen ist, enthält unser Block 6 Transaktionen (jeweils als Tx bezeichnet) und durch Hashing und Paarbildung 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 bilden. 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?

Select the correct answer

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

Awesome!

Completion rate improved to 6.25

bookÜberblick Über Hashing

Swipe um das Menü anzuzeigen

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

Note
Mehr erfahren

Hashing ist ein Verfahren, das eine Eingabe nimmt und eine Zeichenkette fester Länge erzeugt, 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 durch die Erstellung eines eindeutigen Fingerabdrucks abzusichern;
  • 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 zentrale Eigenschaften auf:

Hashing, insbesondere unter Verwendung einer guten Hashfunktion, lässt sich mit der Zubereitung eines Smoothies vergleichen. Nachfolgend eine entsprechende Illustration:

Tatsächlich ist es möglich, die ursprüngliche Eingabe anhand eines Hashs zu ermitteln, allerdings würde dies zu viel Zeit in Anspruch nehmen, um praktisch umsetzbar zu sein.

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, entwickelt von der National Security Agency (NSA), und bekannt für ihre starken Sicherheitsmerkmale, wodurch sie gegen Kollisionen, Preimage-Angriffe und andere kryptografische Schwachstellen resistent ist.

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

Hier eine Abbildung zur Veranschaulichung:

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 endgültige 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 anschließend mit einem anderen gepaart, und das Paar wird gemeinsam 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 endgültige 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:

Wie zu sehen ist, enthält unser Block 6 Transaktionen (jeweils als Tx bezeichnet) und durch Hashing und Paarbildung 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 bilden. 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?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 4
some-alt