Lektion 1 von 9
Was eine Blockchain wirklich ist
Du erklärst die drei Bausteine einer Blockchain ohne Hype, kennst die Eigenschaften von Hashfunktionen und misst den Lawineneffekt mit SHA-256 in Python.
Worum es geht
Mara ist im 2. Lehrjahr bei der Sennhauser Software AG in Zug. Ein Verband von Alpkäsereien hat ein Problem: Im Handel tauchen Käselaibe mit gefälschten Herkunftsetiketten auf. Ein Händler in Zürich kann heute nicht selbst prüfen, ob das Zertifikat «Alp Glattalp, 38 Laibe» echt ist oder ob jemand ein PDF abgeändert hat. Jemand im Verband hat gesagt: «Das lösen wir mit einer Blockchain, die ist fälschungssicher.»
Maras Berufsbildner fragt im Teammeeting trocken zurück: «Was genau ist daran fälschungssicher?» Genau diese Frage beantwortest du in diesem Kurs, und zwar ehrlich. Eine Blockchain ist weder Zauberei noch Geldanlage. Sie ist eine Datenstruktur mit ein paar besonderen Eigenschaften, die in wenigen Situationen sehr nützlich sind und in vielen anderen nur Kosten verursachen.
In dieser ersten Lektion lernst du die Grundidee und den wichtigsten Baustein kennen: die Hashfunktion. Du programmierst sie in Python aus und siehst selbst, warum schon ein geändertes Zeichen auffällt. Später im Kurs baust du eine eigene Mini-Blockchain, prüfst, ob ein Projekt überhaupt eine Blockchain braucht, schreibst einen Smart Contract auf einem kostenlosen Testnetz und beurteilst Kosten und Datenschutz. Echtes Geld brauchst du dafür nie.
Die Idee: ein Kassabuch mit vielen Kopien
Stell dir die Kasse eines Turnvereins vor. Normalerweise führt der Kassier das Kassabuch allein. Alle müssen ihm vertrauen. Wenn er nachträglich eine Zeile ändert, merkt das niemand.
Jetzt ändern wir drei Dinge:
- Jede Seite ist versiegelt. Auf jeder neuen Seite steht ein Fingerabdruck der vorherigen Seite. Wer eine alte Seite ändert, zerstört den Fingerabdruck, und das fällt auf der nächsten Seite auf.
- Jede Buchung ist unterschrieben. Nur wer den passenden Schlüssel hat, kann eine gültige Buchung in seinem Namen auslösen.
- Alle Mitglieder haben eine Kopie. Eine neue Seite gilt erst, wenn sich die Mitglieder nach festen Regeln geeinigt haben, welche Seite als nächste gilt.
Genau das ist eine Blockchain. Fachlich ausgedrückt: ein verteiltes Register (Distributed Ledger), in dem Einträge in Blöcken gesammelt werden, die über Hashwerte verkettet sind. Transaktionen sind digital signiert, und ein Konsensverfahren legt fest, wie sich viele Knoten (Computer im Netz) ohne zentrale Stelle auf denselben Stand einigen.
| Baustein | Schützt gegen | Lektion |
|---|---|---|
| Hashverkettung | unbemerkte Änderung alter Einträge | 1 und 2 |
| Merkle-Baum | unbemerkte Änderung einzelner Transaktionen im Block | 3 |
| Digitale Signatur | Transaktionen im fremden Namen | 3 |
| Konsens | eine einzelne Partei, die allein bestimmt, was gilt | 4 |
Hashfunktionen: der digitale Fingerabdruck
Eine Hashfunktion nimmt beliebige Daten, ein Wort, ein PDF oder einen ganzen Film, und berechnet daraus einen kurzen Wert mit fester Länge, den Hashwert (kurz Hash). Bei Blockchains wird meist SHA-256 verwendet (Bitcoin) bzw. Keccak-256 (Ethereum). Beide liefern 256 Bit, also 32 Byte. Hexadezimal geschrieben sind das 64 Zeichen, denn ein Hex-Zeichen steht für 4 Bit.
Der Hash von abc mit SHA-256 lautet immer:
ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015adDamit ein Hash als Fingerabdruck taugt, braucht die Funktion fünf Eigenschaften:
| Eigenschaft | Bedeutung | Wozu in der Blockchain |
|---|---|---|
| Deterministisch | Gleiche Eingabe ergibt immer denselben Hash | Jeder Knoten kann nachrechnen und kommt aufs gleiche Ergebnis |
| Feste Länge | Immer 256 Bit, egal wie gross die Eingabe ist | Ein Block speichert nur 32 Byte als Verweis auf den Vorgänger |
| Lawineneffekt | Ein geändertes Zeichen ändert rund die Hälfte aller Bits | Kleinste Manipulationen fallen sofort auf |
| Einwegfunktion | Aus dem Hash lässt sich die Eingabe nicht zurückrechnen | Man kann einen Nachweis veröffentlichen, ohne den Inhalt preiszugeben |
| Kollisionsresistenz | Es ist praktisch unmöglich, zwei Eingaben mit gleichem Hash zu finden | Niemand kann ein gefälschtes Dokument mit gleichem Fingerabdruck bauen |
Ein Hash ist keine Verschlüsselung. Es gibt keinen Schlüssel und kein Entschlüsseln. Er funktioniert wie ein Fingerabdruck: Du kannst prüfen, ob ein Finger zum Abdruck passt, aber aus dem Abdruck baust du keinen Menschen.
Ordne jeder Eigenschaft einer Hashfunktion die passende Beschreibung zu.
Was «fälschungssicher» wirklich heisst
Jetzt kannst du die Frage des Berufsbildners präzise beantworten. Eine Blockchain macht nachträgliche Änderungen erkennbar (englisch tamper-evident). Wer einen alten Eintrag ändert, verändert dessen Hash, und alle anderen Teilnehmenden sehen, dass ihre Kopie anders aussieht. Mit vielen unabhängigen Kopien und einem Konsensverfahren wird eine Änderung zusätzlich praktisch undurchführbar.
Was eine Blockchain nicht kann:
- Sie prüft nicht, ob ein Eintrag wahr ist. Trägt eine Käserei «38 Laibe» ein, obwohl es 30 waren, steht die Lüge danach unveränderlich in der Kette. Fachleute nennen das Problem der Verbindung zwischen echter Welt und Kette das Orakel-Problem.
- Sie verhindert nicht, dass jemand ein echtes Etikett kopiert und auf einen fremden Käse klebt. Dafür braucht es zusätzlich Kontrollen in der echten Welt.
- Sie macht Daten nicht geheim. Auf einer öffentlichen Blockchain kann jeder alles lesen.
Ein Verbandsvertreter sagt: «Mit der Blockchain können gefälschte Käse-Zertifikate gar nicht mehr entstehen.» Welche Antwort ist fachlich richtig?
Schritt für Schritt: Ein Zertifikat hashen und den Lawineneffekt messen
Mara will den Vertretern des Verbands zeigen, was passiert, wenn jemand auf einem Zertifikat «38 Laibe» zu «39 Laibe» ändert. Sie schreibt dafür ein kurzes Python-Skript. Du brauchst nur die Standardbibliothek.
Schritt 1: Den Text in Bytes umwandeln. Hashfunktionen arbeiten mit Bytes, nicht mit Text. Deshalb wird der Text zuerst mit encode("utf-8") umgewandelt. Die Kodierung muss überall gleich sein, sonst entstehen für denselben Text verschiedene Hashes.
Schritt 2: SHA-256 berechnen. hashlib.sha256(...) berechnet den Hash, hexdigest() gibt ihn als 64 Hex-Zeichen zurück.
Schritt 3: Zwei fast gleiche Texte hashen. Nur eine Ziffer ist anders.
Schritt 4: Die unterschiedlichen Bits zählen. Beide Hashes werden in Zahlen umgewandelt und mit XOR (^) verglichen. XOR ergibt an jeder Stelle eine 1, an der sich die Bits unterscheiden. Diese Einsen zählen wir.
import hashlib
def sha256_hex(text):
"""Berechnet den SHA-256-Hash eines Textes und gibt ihn als Hex-String zurück."""
return hashlib.sha256(text.encode("utf-8")).hexdigest()
def bits_unterschied(hash_a, hash_b):
"""Zählt, wie viele der 256 Bits sich zwischen zwei Hex-Hashes unterscheiden."""
xor = int(hash_a, 16) ^ int(hash_b, 16) # 1 an jeder Stelle mit verschiedenem Bit
return bin(xor).count("1")
echt = "Zertifikat 2026-0412 | Alp Glattalp | 38 Laibe"
falsch = "Zertifikat 2026-0412 | Alp Glattalp | 39 Laibe"
h_echt = sha256_hex(echt)
h_falsch = sha256_hex(falsch)
print(h_echt)
print(h_falsch)
print("Unterschiedliche Bits:", bits_unterschied(h_echt, h_falsch), "von 256")Schritt 5: Ergebnis lesen. Die Ausgabe lautet:
5f3ea25b29f54d7c2b7a0574f6d52908f4ce5fcaa8eefb28b065dadd77c83562
ce2fd19e4b6d16eb99d694944f93bb42d2bd91236c6cdee3e128e6799e9118da
Unterschiedliche Bits: 120 von 256Eine einzige Ziffer hat 120 von 256 Bits verändert. Das ist der Lawineneffekt: Im Durchschnitt kippt jedes Bit mit einer Wahrscheinlichkeit von 50 Prozent, also erwartest du rund 128 veränderte Bits. Werte zwischen etwa 110 und 145 sind völlig normal. Die beiden Hashes haben nichts erkennbar gemeinsam. Ein Fälscher kann also nicht «ein bisschen» am Hash drehen, damit er wieder passt.
Schritt 6: Gegenprobe. Rufst du sha256_hex(echt) ein zweites Mal auf, erhältst du exakt denselben Wert. Ohne diese Eigenschaft (deterministisch) könnte niemand einen Hash nachprüfen.
Jetzt bist du dran. Im Code-Labor programmierst du diese Funktionen selbst und ergänzt eine Prüffunktion, wie sie ein Händler bräuchte: Passt dieses Zertifikat zum veröffentlichten Hash? Wenn alle Tests grün sind, hast du den wichtigsten Baustein des ganzen Moduls im Griff.
Code-Labor: Fingerabdruck eines Zertifikats
Ein Händler hat ein Zertifikat als Text vor sich und kennt den Hash, den die Kontrollstelle veröffentlicht hat. Programmiere drei Funktionen:
sha256_hex(text)gibt den SHA-256-Hash des Textes (UTF-8) als 64 Hex-Zeichen zurück.bits_unterschied(hash_a, hash_b)zählt, wie viele der 256 Bits sich zwischen zwei Hex-Hashes unterscheiden.ist_echt(text, veroeffentlichter_hash)gibtTruezurück, wenn der Text genau zum veröffentlichten Hash passt. Der veröffentlichte Hash kann in Gross- oder Kleinbuchstaben geschrieben sein und Leerzeichen am Anfang oder Ende haben, zum Beispiel weil er aus einem Mail kopiert wurde.
Nur die Standardbibliothek (hashlib) ist nötig.
Typische Fehler
- Hash mit Verschlüsselung verwechseln. «Wir verschlüsseln das Zertifikat mit SHA-256» ist falsch. Es gibt keinen Schlüssel, und niemand kann den Hash «entschlüsseln». Ein Hash beweist nur, dass Daten unverändert sind.
- «Fälschungssicher» mit «wahr» gleichsetzen. Die Blockchain schützt gegen nachträgliche Änderung, nicht gegen falsche Eingaben. Wer Unsinn einträgt, hat danach unveränderlichen Unsinn.
- Hex-Zeichen und Bits verwechseln. SHA-256 liefert 256 Bit. Das sind 32 Byte oder 64 Hex-Zeichen. Wer «64 Bit» sagt, liegt um den Faktor vier daneben.
- Kodierung nicht festlegen.
"Käse"in UTF-8 und in Latin-1 ergibt verschiedene Bytes und damit verschiedene Hashes. Lege die Kodierung fest und verwende sie überall. - Veraltete Hashfunktionen verwenden. MD5 und SHA-1 gelten als gebrochen, weil man gezielt Kollisionen erzeugen kann. Für neue Lösungen nimmst du SHA-256 oder SHA-3 bzw. Keccak-256.
Zusammenfassung
- Eine Blockchain ist ein verteiltes Register aus verketteten Blöcken mit signierten Transaktionen und einem Konsensverfahren, keine Geldanlage.
- Eine Hashfunktion erzeugt einen Fingerabdruck fester Länge. SHA-256 liefert 256 Bit = 64 Hex-Zeichen.
- Wichtige Eigenschaften: deterministisch, feste Länge, Lawineneffekt, Einwegfunktion, kollisionsresistent.
- Ein Hash ist keine Verschlüsselung. Vorhersehbare Eingaben lassen sich durch Ausprobieren erraten.
- «Fälschungssicher» heisst: Änderungen werden erkennbar. Ob ein Eintrag wahr ist, prüft die Blockchain nicht (Orakel-Problem).
- In diesem Kurs arbeitest du nur mit Python-Simulationen und dem Sepolia-Testnetz. Echtes Geld ist nie nötig.
Mit deiner eigenen KI vertiefen
Kopiere einen Prompt in Claude, ChatGPT oder Claude Code. Er macht die KI zur Lernbegleitung statt zum Lösungsautomaten.
Die drei Bausteine verstehen Chat-KI
Wenn dir noch unklar ist, wie Hash, Signatur und Konsens zusammenspielen. Die KI erklärt mit Alltagsbeispielen und prüft danach dein Verständnis.