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 die Blockchain
course content

Kursinhalt

Einführung in die Blockchain

Einführung in die Blockchain

1. Erste Schritte
2. Blöcke und Transaktionen
3. Fortgeschrittene Blockchain-Konzepte

book
Überblick Über Hashing

Wir haben bereits mehrmals Hashing und Block-Hashes erwähnt, aber nicht wirklich viel Aufmerksamkeit darauf verwendet, daher ist es an der Zeit, zu besprechen, was Hashing eigentlich ist.

Eigenschaften von Hash-Funktionen

Im Blockchain-Bereich werden Hash-Funktionen verwendet, um:

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

Mit diesem Wissen hat eine gute Hash-Funktion für die Blockchain mehrere Schlüsseleigenschaften:

Hashing, insbesondere unter Verwendung einer guten Hash-Funktion, kann mit der Herstellung eines Smoothies verglichen werden. Schauen wir uns die folgende Illustration an:

Nun, tatsächlich ist es möglich, die ursprüngliche Eingabe aus einem Hash zu finden, jedoch würde es zu viel Zeit in Anspruch nehmen, um wirklich praktisch zu sein.

Block-Hashing

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

Der Hash eines Bitcoin-Blocks wird berechnet, indem die Block-Header-Daten genommen werden. Diese Daten werden zweimal in die SHA-256-Hash-Funktion eingegeben, in einem Prozess, der als Double SHA-256 bekannt ist.

Hier ist ein Bild, um die Dinge klarer zu machen:

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

Merkle-Wurzel

Wie bereits erwähnt, ist die Merkle-Wurzel ein einzelner Hash, der alle im Block enthaltenen Transaktionen repräsentiert. Die Berechnung einer Merkle-Wurzel beginnt mit den Hashes jeder Transaktion in einem Block. Auch hier wird Double SHA-256 verwendet.

Jeder Hash wird dann mit einem anderen gepaart und sie werden zusammen gehasht, um einen neuen Hash zu bilden. Dieser Prozess des Paarens und Hashens der neuen Hashes wird fortgesetzt, bis nur noch ein Hash übrig bleibt. Der endgültige Hash ist die Merkle-Wurzel, die alle Transaktionen im Block repräsentiert und ihre Integrität sicherstellt, indem sie die gesamte Menge der Transaktionen in einen einzigen Hash kodiert. Ein solcher Prozess bildet einen Merkle-Baum.

Schauen wir uns ein Beispiel für einen Merkle-Baum an:

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

Was ist die Ausgabengröße der SHA-256-Hashfunktion, die in der Bitcoin-Blockchain verwendet wird?

Was ist die Ausgabengröße 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
We're sorry to hear that something went wrong. What happened?
some-alt