DUH-IT

Die Blockchain-Grundlagen 2: Wie ist ein Block aufgebaut?

DUH-IT - Innovationstransfer für die Region Dortmund-Unna-Hamm

Ein Projekt von TU Dortmund und Fraunhofer IML gefördert durch EFRE/JTF NRW

🚀 by Decker

Der Block als Baustein der Blockchain

Auf den ersten Blick sieht ein Block aus wie ein einfacher Datenbehälter.

Er besteht aus mehreren Teilen, die…

  • seinen Platz in der Kette zeigen
  • ihn eindeutig erkennbar machen
  • die Informationen speichern
  • beim Hinzufügen der Blöcke helfen

images/Grundlagen/BlocksInBC.png

Ein Blick auf die einzelnen Teile zeigt, wie sie gemeinsam dafür sorgen, dass die Daten sicher, nachvollziehbar und vertrauenswürdig bleiben.

Der Aufbau einer Blockchain

Eine Blockchain besteht aus einer Kette von Blöcken, die in chronologischer Reihenfolge miteinander verbunden sind. Jeder Block enthält Daten, die mit kryptografischen Methoden geschützt sind. Die grobe Struktur einer Blockchain kann in mehrere Schichten und Komponenten unterteilt werden:

Transaktionen

Blöcke

Blockkette

Netzwerk

images/Grundlagen/Struktur_einer_Blockchain.png
Die grundlegende Struktur einer Blockchain

Woraus besteht ein Block?

Blockheader

Neben den Transaktionsdaten enthält ein Block auch einen Blockheader (Blockkopf), welcher die Metadaten enthält.

Metadaten sind Daten über Daten – sie beschreiben, strukturieren oder erklären andere Daten, ohne selbst deren Inhalt zu sein.

images/Grundlagen/Block.png
Struktur eines einzelnen Blocks

Hash

  • Ein Hash oder eine Hashfunktion ist wie ein digitaler Fingerabdruck.

  • Sie nimmt eine Eingabe beliebiger Größe und erzeugt eine Ausgabe mit fester Länge.
images/Grundlagen/Fingerprint.png

  • Die Eingabe kann jede Art von Datei sein.
  • Eine häufig verwendete Hashfunktion ist die SHA-256 (Secure Hash Algorithm – 256 Bit).
  • Die Ausgabe ist eine Zeichenkette im Hexadezimalformat.

images/Grundlagen/Hash.png
Unwandlung einer Nachricht durch eine Hashfunktion in einen eindeutigen Hashwert

Hash

  • Ein Hash oder eine Hashfunktion ist wie ein digitaler Fingerabdruck.

  • Sie nimmt eine Eingabe beliebiger Größe und erzeugt eine Ausgabe mit fester Länge.
images/Grundlagen/Fingerprint.png

  • Eine kleine Änderung in den Eingabedaten führt zu einer drastischen Änderung der Ausgabe.

  • Zum Beispiel:

  • SHA-256 von „Dortmund“: 2ad64c143f3eb3b8177f9b9bc71f548cf0e6be163c1a73f6785b400739199850

  • SHA-256 von „dortmund“: 49ffa0597506d25557a2f436f042931eecd373c1c63b64f95f81b33528313315

  • SHA-256 von „1;7– xyz“: 1f6c9129615be16a5f01dfb59712636cf290591ac37f5f6bcd028d06838cc74f

Aus dem Hash können keine Rückschlüsse auf die ursprüngliche Eingabe gezogen werden!

Vorheriger Hash

Jeder Block ist mit dem vorherigen Block verknüpft, indem der Hash des vorherigen Blocks in seinem Header gespeichert wird.

Der erste Block in der Kette wird als Ursprungsblock bezeichnet. Da er keinen Vorgänger hat, enthält er einen speziellen Hash.

images/Grundlagen/Hashkette.png
Verknüpfung von Blöcken durch Hashes

Quizfragen

Welche Eigenschaft beschreibt eine Hash-Funktion am besten?

  • Eine Hash-Funktion erzeugt eine Ausgabe variabler Länge basierend auf der Eingabe.
  • Eine Hash-Funktion erzeugt eine Ausgabe fester Länge.
  • Eine Hash-Funktion kann die Originaldatei aus dem Hash-Wert rekonstruieren.
  • Eine Hash-Funktion funktioniert nur mit Zahlen und nicht mit Textdaten.

Quizfragen

Was passiert, wenn sich die Eingabedaten einer Hash-Funktion nur minimal ändern?

  • Die Ausgabe bleibt nahezu unverändert.
  • Die Ausgabe verändert sich leicht, aber bleibt fast gleich.
  • Die Ausgabe verändert sich sehr stark.
  • Die Hash-Funktion erkennt keine Änderungen an den Eingabedaten.

Merkle Root

  • Die Merkle Root fasst alle Transaktionen eines Blocks zu einem einzigen Hashwert zusammen.
  • Sie wird über das Hashen der Transaktionen in einem Merkle Root Tree gebildet.

  • Transaktionen werden gehasht.
  • Hashes werden paarweise erneut gehasht.
  • Am Ende entsteht die Merkle Root.
images/Grundlagen/Merkle-Root-Tree.png
Darstellung eines Merkle Root Tree

  • Jede Änderung an einer Transaktion verändert die Merkle Root und damit den Blockhash.
  • Einzelne Transaktionen lassen sich effizient nachweisen.

Quizfrage

Welche Eigenschaft trifft auf die Merkle Root zu?

  • Sie hängt von allen Transaktionen im Block ab.
  • Sie ist ein Hash der ersten Transaktion.
  • Sie wird vom Nutzer manuell eingegeben.
  • Sie ist nur für den Empfänger relevant.

Nonce (“Number used only once”)

  • Es ist möglich, ein Ziel für den Hash-Wert festzulegen.
  • Dieses Ziel wird manchmal auch als Block-Schwierigkeit oder Netzwerk-Schwierigkeit bezeichnet.
  • Zum Beispiel könnte das Ziel für den Hash-Wert sein, dass er mit einer Null (oder mit X Nullen) beginnen muss.
  • Die Daten müssen mit einem neuen, unbekannten Wert, der Nonce, erweitert werden, um das Ziel zu erreichen.
images/Nonces/Nonce1.png

Nonce (“Number used only once”)

  • Es ist möglich, ein Ziel für den Hash-Wert festzulegen.
  • Dieses Ziel wird manchmal auch als Block-Schwierigkeit oder Netzwerk-Schwierigkeit bezeichnet.
  • Zum Beispiel könnte das Ziel für den Hash-Wert sein, dass er mit einer Null (oder mit X Nullen) beginnen muss.
  • Die Daten müssen mit einem neuen, unbekannten Wert, der Nonce, erweitert werden, um das Ziel zu erreichen.
images/Nonces/Nonce2.png
  • Die Transaktionsdaten Dortmund und die Nonce Nonce hashen sich zusammen zum Hash ee15e…

Nonce (“Number used only once”)

  • Nonces bestehen aus:
  • Zahlen (z. B. 0, 1, 42) – sehr verbreitet
  • Buchstaben (z. B. a, X, zK) – selten
  • Hexadezimalen Zeichen (z. B. 0a3f, ff12) – häufig
  • Das Nonce-„Rätsel“ kann nur durch Trial-and-Error gelöst werden.
  • Beispielziel: Der Hashwert muss mit einer Null beginnen.
images/Nonces/Nonce3.png
  • Mit der Nonce 0 beginnt der Hash mit 5a31c…, sie erfüllt also nicht die Bedingung.

Nonce (“Number used only once”)

  • Nonces bestehen aus:
  • Zahlen (z. B. 0, 1, 42) – sehr verbreitet
  • Buchstaben (z. B. a, X, zK) – selten
  • Hexadezimalen Zeichen (z. B. 0a3f, ff12) – häufig
  • Das Nonce-„Rätsel“ kann nur durch Trial-and-Error gelöst werden.
  • Beispielziel: Der Hashwert muss mit einer Null beginnen.
images/Nonces/Nonce4.png
  • Mit der Nonce 1 beginnt der Hash mit e48fa…, die Bedingung ist also weiterhin nicht erfüllt.

Nonce (“Number used only once”)

  • Nonces bestehen aus:
  • Zahlen (z. B. 0, 1, 42) – sehr verbreitet
  • Buchstaben (z. B. a, X, zK) – selten
  • Hexadezimalen Zeichen (z. B. 0a3f, ff12) – häufig
  • Das Nonce-„Rätsel“ kann nur durch Trial-and-Error gelöst werden.
  • Beispielziel: Der Hashwert muss mit einer Null beginnen.
images/Nonces/Nonce5.png
  • Mit der Nonce 43 beginnt der Hash mit 01ab0…, der Hash erfüllt also die Bedingung einer führenden Null.

Difficulty

  • Die Difficulty zeigt, wie schwer es ist, einen neuen Block zur Blockchain hinzuzufügen.
  • Sie legt fest, wie „stark“ der Hash eines Blocks sein muss, damit er gültig ist.

  • Hohe Difficulty → schwieriger → Beispielziel: Hash muss mit 123 beginnen
  • Niedrige Difficulty → einfacher → Beispielziel: Hash muss mit a beginnen

  • Eine höhere Difficulty macht es schwerer, Blöcke zu manipulieren oder zu fälschen.

Die Blockkomponenten zusammengefasst

Blockkomponente Funktion
Transaktionsdaten Transaktionen im Block.
Hash Eindeutiger Fingerabdruck des Blocks zur Integritätssicherung.
Metadaten (Blockheader)
Vorheriger Block Hash Verbindet mit Vorgängerblock.
Timestamp Dokumentiert den Zeitpunkt der Blockerstellung.
Merkle Root Kombinierter Hash aller Transaktionen zur Verifizierung.
Nonce Variable Zahl für die Erfüllung einer Hash-Bedingung.
Difficulty Maß für die Schwierigkeit einer Aufgabe

Mit dem Wissen über den Blockaufbau erfahren Sie in der folgenden Lerneinheit, wie sich einzelne Blöcke miteinander verknüpfen lassen.

images/Logos/DUH-IT_Logo.png
Blockchain in der Logistik: Innovationstransfer für die Modellregion „Dortmund-Unna-Hamm“

Die Erstellung dieser Inhalte wurde durch das Forschungsprojekt DUH-IT gefördert.

images/Logos/tud_logo.png images/Logos/EU-MWIKE.png images/Logos/FraunhoferIML.png