← Startseite

Bitcoin als Verteiltes System

Teil 1: Grundlagen — Krypto-Bausteine & Transaktionen

Verteilte Systeme — Vorlesung 4

Prof. Dr. Alexandra Mikityuk · HTW Berlin · Sommersemester 2026

Master Konsens & BFT P2P-Protokoll

Warum Bitcoin in einer VS-Vorlesung?

Bitcoin ist nicht nur „Internet-Geld" — es ist das vollständigste real laufende Beispiel für ein verteiltes System mit echtem Vertrauensproblem.

Klassisches VS-Problem

Mehrere Parteien ohne zentrale Autorität müssen sich auf denselben Zustand einigen — trotz böswilliger Akteure und unzuverlässigem Netzwerk.

Bitcoin-Lösung

Konsens ohne Vertrauen — durch Kryptografie (Hashing, Signaturen), Proof of Work und ein P2P-Protokoll. Seit 2009 ohne Ausfall in Betrieb.

Was wir lernen

Wie kryptografische Primitiven, ökonomische Anreize und Netzwerk-Protokolle zusammenspielen, um Byzantine Fault Tolerance in der Praxis zu erreichen.

Themen heute (Teil 1)

Heute legen wir das Fundament — die kryptografischen Werkzeuge, ohne die nichts in Bitcoin funktioniert.

Block 1 — Das Problem

  • Was Bitcoin wirklich ist
  • Das Double-Spending-Problem
  • Die drei Säulen (Übersicht)

Block 2 — Die Bausteine

  • SHA-256 als Hash-Funktion
  • Merkle Trees
  • Public/Private Keys & Signaturen
  • Transaktionen (UTXO-Modell)
Teil 2 (nächste Woche): Blockchain · Mining · Proof of Work · P2P-Netzwerk · Konsens · 51%-Angriff · Byzantine Fault Tolerance

Was ist Bitcoin — in einem Satz?

Ein öffentliches Kassenbuch, das von tausenden Computern weltweit gleichzeitig geführt wird — und dem alle vertrauen können, ohne dass sie sich untereinander vertrauen müssen.

📒 Kassenbuch

Jede Transaktion seit 2009 — wer hat wem wieviel überwiesen — steht drin. Öffentlich, jeder kann es lesen.

🌐 Verteilt

Es gibt nicht ein Kassenbuch — es gibt eine Kopie auf jedem teilnehmenden Computer (~17.000 sogenannte „Full Nodes").

Erfunden von: einer Person/Gruppe namens „Satoshi Nakamoto" — bis heute anonym. Whitepaper: 9 Seiten, Oktober 2008. Erste Transaktion: 3. Januar 2009.

Was Bitcoin nicht ist

Drei häufige Missverständnisse aus dem Weg räumen, bevor wir tiefer einsteigen:

Kein Investment-Ratgeber

Wir reden hier nicht über „BTC kaufen oder nicht". Das ist ein anderes Seminar. Hier interessiert uns die Technik.

Kein Anonymitäts-Tool

Bitcoin-Adressen sind pseudonym, nicht anonym. Jede Transaktion ist öffentlich nachvollziehbar — für alle, für immer.

Keine klassische Datenbank

Es ist ein verteiltes Kassenbuch — keine SQL-Datenbank, kein zentraler Server, keine Tabellen. Eine neue Art Datenstruktur.

Was Bitcoin ist: ein Open-Source-Protokoll, das verteilten Konsens ohne zentrale Autorität ermöglicht. Wir studieren es als Lehrbeispiel für Verteilte Systeme — nicht als Geldanlage.

Bitcoin kam nicht aus dem Nichts — eine 25-Jahres-Geschichte

Mehrere Versuche scheiterten an genau einem Problem: dem dezentralen Konsens.

1983
eCash (David Chaum) — erstes digitales Geld mit Kryptografie. Brauchte zentrale Bank.
1997
Hashcash (Adam Back) — Proof-of-Work-Konzept gegen E-Mail-Spam. Wird in Bitcoin direkt übernommen.
1998
b-money (Wei Dai) + Bit Gold (Nick Szabo) — Konzepte für verteiltes digitales Geld. Nie implementiert.
2008 ⭐
Bitcoin-Whitepaper (Satoshi Nakamoto) — 9 Seiten, die alles ändern.
2009
Erste Bitcoin-Transaktion — 3. Januar, „Genesis Block" wird gemined.
2010
Erste reale Bezahlung — 10.000 BTC für 2 Pizzas. Heute Wert: ~ 500 Mio. €. 🍕

Das Kernproblem: Double-Spending

Bei physischem Geld unmöglich — bei digitalem Geld fundamental. Eine Datei ist beliebig kopierbar.

Szenario

Alice hat 1 BTC. Sie schickt diesen einen Bitcoin gleichzeitig an Bob (für ein Auto) und an Carol (für ein Notebook).

👤 Alice — hat 1 BTC

Tx₁ → Bob

„1 BTC für Auto"

Tx₂ → Carol

„1 BTC für Notebook"

⚠️ KONFLIKT — beide können nicht gleichzeitig gültig sein

💳 Klassisch (Bank, PayPal)

Eine zentrale Stelle entscheidet: „Alice hat noch 1 BTC, eine Transaktion wird abgelehnt." → vertraut die zentrale Stelle.

⛓️ Bitcoin-Ansatz

Kein zentraler Schiedsrichter. Stattdessen: alle Knoten einigen sich gemeinsam, welche Transaktion zuerst kam → genau die wird gültig.

Das ist Distributed Consensus: ohne zentrale Autorität die gleiche Wahrheit für alle erzeugen. Genau das, was wir in dieser Vorlesung studieren.

Klassisch vs. Bitcoin — Architektur im Vergleich

Wie unterscheiden sich die beiden Ansätze strukturell?

🏦 Klassisch (Bank, PayPal)

👤 Kunde A
👤 Kunde B
👤 Kunde C
↓ ↓ ↓
🏦 ZENTRALER SERVER
(Bank, PayPal)
💾 Datenbank

Vertrauen: alle vertrauen dem Server.
Server-Ausfall = System down.

🌐 Bitcoin (P2P)

📡
Node
📡
Node
📡
Node
📡
Node
📡
Node
📡
Node

~17.000 gleichberechtigte Knoten weltweit

💾 Jeder Knoten hält Kopie
der gesamten Blockchain

Vertrauen: niemand vertraut niemandem.
Einzelne Knoten-Ausfälle = irrelevant.

Konsequenz: beim klassischen Modell muss man dem Server vertrauen können. Bei Bitcoin nicht — die Sicherheit kommt aus der Architektur selbst (Kryptografie + Mehrheits-Konsens).

Wie löst Bitcoin das? — Drei Säulen

Diese drei Säulen schauen wir uns nacheinander an:

🔑

1. Kryptografie

Hashing (SHA-256), digitale Signaturen, Public/Private Keys — die Bausteine, mit denen Identität und Integrität nachweisbar werden.

⛓️

2. Blockchain

Eine Datenstruktur, in der jeder Block kryptografisch an seinen Vorgänger gekettet ist. Ändert man einen alten Block, brechen alle nachfolgenden.

⛏️

3. Proof of Work

Der Mechanismus, mit dem ein neuer Block zur Kette hinzugefügt wird. Erfordert echte Rechenarbeit — macht Manipulation extrem teuer.

➡️ Wir starten mit Säule 1: die kryptografischen Bausteine, ohne die nichts funktioniert.

Baustein 1: SHA-256 (Hashing)

Ein Hash-Algorithmus macht aus beliebig großem Input eine fixe Ausgabe (256 Bit = 64 Hexzeichen). Bitcoin nutzt SHA-256 als Universal-Werkzeug.

Eigenschaften, die Bitcoin braucht:

  • Deterministisch — gleiche Eingabe → immer gleiche Ausgabe
  • Schnell zu berechnen in eine Richtung
  • Praktisch nicht umkehrbar (von Hash zurück zum Input → unmöglich)
  • Avalanche-Effekt — kleinste Änderung am Input → komplett anderer Hash
  • Kollisionsresistent — zwei Inputs mit gleichem Hash zu finden ist praktisch unmöglich
"Hello"
SHA-256
185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
"hello"
SHA-256
2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
📄 PDF (5 MB)
SHA-256
a72c4b8d915e3f0c1d2e8a91… (immer 64 Hexzeichen)

Egal wie groß der Input — Ausgabe ist immer fix 256 Bit (64 Hexzeichen). Ein Buchstabe Unterschied → komplett anderer Hash (Avalanche-Effekt).

SHA-256 steckt überall — nicht nur in Bitcoin

Die SHA-256-Funktion ist ein universeller Baustein moderner Software. Ihr nutzt sie wahrscheinlich täglich, ohne es zu merken.

🔀 Git

Jeder Commit hat einen Hash (Git nutzt SHA-1, wechselt zu SHA-256). Jede Code-Änderung lässt sich damit zweifelsfrei nachweisen.

🔐 HTTPS / TLS

Jedes SSL-Zertifikat wird mit SHA-256 signiert. Beim Aufruf von https:// prüft euer Browser die Hashes.

📦 Package Manager

npm, apt, pip — alle prüfen heruntergeladene Pakete per SHA-256-Hash gegen den Server-Eintrag. Manipulation fällt sofort auf.

🔑 Passwort-Speicher

Server speichern Passwörter nie direkt — sondern ihre Hashes (mit Salt). Was im Datenbank-Leak landet, lässt sich nicht zurück-rechnen.

📜 Code-Signing

Software-Distributionen werden mit Hashes signiert — euer macOS prüft das beim ersten Start jeder neuen App.

⛓️ Bitcoin (doppelt!)

Bitcoin nutzt SHA-256 sogar doppelt: SHA256(SHA256(input)). Zusätzliche Sicherheit gegen theoretische Schwächen.

Wichtig: SHA-256 ist nicht „Bitcoin-Technologie" — es ist eine NIST-standardisierte Hash-Funktion seit 2001. Bitcoin nutzt sie nur besonders prominent.

Baustein 2: Merkle Trees

Wie fasst man tausende Transaktionen in einen einzigen Hash zusammen, sodass jede einzelne nachprüfbar bleibt?

Idee: baum-artige Hash-Verkettung. Je zwei Hashes werden zu einem neuen Hash zusammengefasst — bis ganz oben nur noch ein Wert übrigbleibt: die Merkle Root.

                        Merkle Root
                       /              \
              Hash(AB)              Hash(CD)
              /      \              /      \
        Hash(A)  Hash(B)      Hash(C)  Hash(D)
           |        |            |        |
        Tx A     Tx B         Tx C     Tx D
Vorteil: Um zu beweisen, dass Tx C zur Menge gehört, brauchst du nicht alle Transaktionen — sondern nur den Pfad Hash(D) + Hash(AB). Bei 1 Million Transaktionen: ~20 Hashes statt 1.000.000. Effizienz durch Logarithmus.

Merkle-Pfad in Aktion — eine Transaktion verifizieren

Aufgabe: beweise, dass Tx C wirklich im Block ist — ohne alle Transaktionen herunterzuladen.

Du brauchst nur vier Daten:

  • Tx C selbst (die Transaktion, die du prüfen willst)
  • Hash(D) (kommt vom Server)
  • Hash(AB) (kommt vom Server)
  • Merkle Root (steht im Block-Header — vertrauenswürdig)
// Vier Schritte:

Schritt 1:  Hash(C)    = SHA256(Tx C)                  // du hashst Tx C selbst

Schritt 2:  Hash(CD)   = SHA256(Hash(C) + Hash(D))    // kombinieren mit Hash(D)

Schritt 3:  Root_check = SHA256(Hash(AB) + Hash(CD)) // kombinieren mit Hash(AB)

Schritt 4:  Root_check == Merkle Root?
                  ↓
              ✓ JA → Tx C ist garantiert im Block!
Effizienz: bei 1 Million Transaktionen — nur ~20 Hashes statt 1 Million Downloads. Genau so funktionieren SPV-Wallets (Simplified Payment Verification) auf Handys — sie laden nicht die ganze Blockchain.

Asymmetrische Kryptografie — die Schloss-Analogie

Wie kann Alice etwas „signieren", was alle prüfen können — aber nur sie machen kann?

🔑 Private Key

🗝️

Alice's Schlüssel — sie behält ihn geheim, niemand sonst kennt ihn. Damit kann sie:

  • Nachrichten signieren („das kommt wirklich von mir")
  • Eingehende verschlüsselte Nachrichten öffnen

📢 Public Key

🔓

Alice's offenes Schloss — sie verteilt unendliche Kopien davon. Damit kann jeder:

  • Alice's Signatur prüfen („ja, das ist wirklich von ihr")
  • Nachrichten an Alice verschlüsseln (nur sie kann öffnen)
Mathematische Magie: aus dem Schlüssel das Schloss bauen ist einfach. Aus dem Schloss den Schlüssel ableiten ist praktisch unmöglich (2²⁵⁶ Möglichkeiten — mehr als Atome im sichtbaren Universum).
Echtes Verfahren in Bitcoin: ECDSA (Elliptic Curve Digital Signature Algorithm) — die Mathematik dahinter braucht ihr nicht zu beherrschen, nur das Prinzip.

Baustein 3: Public/Private Keys & Signaturen

Wie beweist Alice, dass sie die Überweisung autorisiert hat — ohne ihr Geheimnis preiszugeben?

🔐 Private Key

Eine zufällige 256-Bit-Zahl. Geheim — nur Alice kennt ihn. Damit kann sie Transaktionen signieren.

Wer den Private Key hat, hat die Bitcoins.

📢 Public Key

Wird mathematisch aus dem Private Key abgeleitet (Elliptic Curve Cryptography). Öffentlich — alle dürfen ihn sehen.

Mit ihm prüft jeder, dass eine Signatur wirklich von Alice ist.

Asymmetrie: Private → Public ist einfach. Public → Private ist praktisch unmöglich. Genau das macht das Verfahren sicher.

So funktioniert eine Signatur in Aktion

✍️ Alice signiert

📝 Nachricht: „Schicke 0.3 BTC an Bob"
+
🔐 Alice's Private Key
Algorithmus (ECDSA)
✓ Signatur: 3045022100a7c4…

🔍 Jeder verifiziert

📝 Nachricht + 🖋️ Signatur
+
📢 Alice's Public Key
Verify-Funktion
✓ gültig  oder  ✗ ungültig

Alice braucht ihren Private Key nie herauszugeben — der Public Key reicht zum Verifizieren.

Bitcoin-Adresse = Hash des Public Key, etwas verkürzt formatiert (z.B. 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa). Das ist die „Konto-Nummer", die ihr im Wallet angezeigt bekommt.

Wie entsteht eine Bitcoin-Adresse?

Von einer Zufallszahl bis zur „Konto-Nummer" wie 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa — fünf Schritte:

1
🎲 Zufallszahl — 256 Bit (irgendeine zufällige Zahl)
e0c5b8d3a1...4f a7f9
2
🔐 Private Key — die obige Zufallszahl ist der Private Key. Niemals weitergeben!
↓   ECDSA-Algorithmus
3
📢 Public Key — mathematisch aus dem Private Key abgeleitet (Punkt auf elliptischer Kurve, 512 Bit)
04ab32f1c8...c9e84d
↓   SHA-256 → RIPEMD-160
4
📋 Hash — 160-Bit Hash des Public Keys (kürzer und sicherer)
62e907b1a...5fbb
↓   Version-Byte + Checksum + Base58-Encoding
5
📬 Bitcoin-Adresse — das, was ihr im Wallet seht und Freunden gebt
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
Wichtig: aus der Adresse zurück zum Public Key zu kommen ist machbar — aber vom Public Key zum Private Key ist praktisch unmöglich. Die Asymmetrie aus der Schloss-Analogie hält die ganze Kette zusammen.

Wie sieht eine Bitcoin-Transaktion aus? (UTXO)

Bitcoin hat keine Konto-Stände wie eine Bank. Es hat UTXOs — Unspent Transaction Outputs.

Analogie: Bargeld in der Brieftasche

Wenn ihr 50 € bezahlen wollt und nur einen 100-€-Schein habt: ihr gebt 100 €, bekommt 50 € zurück. Genau so funktionieren UTXOs.

// Alice hat einen UTXO über 1.0 BTC
// Sie will Bob 0.3 BTC schicken

Transaktion {
  inputs:  [ UTXO_alice (1.0 BTC) ],          // "100-€-Schein"
  outputs: [
     { to: bob_address,    amount: 0.3 BTC },
     { to: alice_address,  amount: 0.699 BTC }    // Wechselgeld an sich selbst
  ],
  fee:     0.001 BTC                              // für den Miner
  signature: sig_by_alices_private_key          // Beweis
}
Wichtig: Ein UTXO wird in einer Transaktion vollständig verbraucht. Will Alice nur einen Teil ausgeben → bekommt sich selbst Wechselgeld. Macht das Tracking deutlich einfacher als „Konten + Salden".

Säule 1 zusammengefasst — und der Sprung zu Säule 2

Mit den Bausteinen aus Säule 1 können wir:

  • Eine Transaktion kryptografisch identifizieren (Hash)
  • Tausende Transaktionen kompakt zusammenfassen (Merkle Tree)
  • Den Absender beweisen ohne sein Geheimnis preiszugeben (Signatur)
  • Die Eigentumsverhältnisse präzise nachverfolgen (UTXO)
Aber es fehlt noch das Wichtigste: wer entscheidet, in welcher Reihenfolge Transaktionen aufgeschrieben werden? Was passiert, wenn zwei Knoten gleichzeitig konkurrierende Versionen verbreiten?

➡️ Genau das löst die Blockchain + Proof of Work — Säule 2 und 3.

🪞 Kurze Reflexion

Drei Minuten für euch — schreibt mit:

  1. Welcher der vier Bausteine (Hash · Merkle · Signatur · UTXO) ist für euch am überraschendsten?
  2. Welcher fühlt sich noch unklar an? Wir können kurz nachhaken.
  3. Wo könntet ihr schon heute einen davon in eurem eigenen Projekt einsetzen?
Anschließend: Punkt 2 im Chat — wo hakt's? Ich kläre kurz, bevor wir Teil 1 abschließen.

Take-aways aus Teil 1

  • Bitcoin löst das Double-Spending-Problem ohne zentrale Autorität — durch eine clevere Kombination kryptografischer Werkzeuge.
  • Die kryptografische Toolbox:
    • SHA-256 — Integrität (jede Änderung sichtbar)
    • Merkle Trees — effiziente Verifikation großer Datenmengen
    • Public/Private Keys + Signaturen — Identität ohne Geheimnis-Preisgabe
    • UTXO — präzise Verfolgung der Eigentumsverhältnisse
  • Die Asymmetrie (einfach in eine Richtung, praktisch unmöglich rückwärts) ist das Fundament aller dieser Werkzeuge.
  • Damit sind die Bausteine klar — aber wir haben noch nicht gesehen, wie sich das ganze Netzwerk auf eine gültige Version einigt.

📚 Vertiefung bis zum nächsten Mal

Pflicht

  • Lest die ersten 4 Seiten des Bitcoin-Whitepapers von Satoshi Nakamoto
    bitcoin.org/bitcoin.pdf — Sektionen 1-4
  • Schaut euch eine echte Transaktion auf blockchain.info an — identifiziert Inputs, Outputs und UTXOs

Vertiefung (freiwillig)

Vorblick: Teil 2 — Konsens & Netzwerk

In der nächsten Vorlesung kommt die zweite Hälfte der Bitcoin-Geschichte:

  • Blockchain — wie Blöcke kryptografisch verkettet werden
  • Proof of Work — wie sich das Netzwerk auf einen Block einigt
  • P2P-Netzwerk & Gossip-Protokoll — wie sich Nachrichten weltweit verbreiten
  • 51%-Angriff — die einzige theoretische Schwachstelle
  • Byzantine Fault Tolerance — der eigentliche Beitrag von Bitcoin zur Informatik-Forschung
Wichtig: Teil 2 baut direkt auf den Bausteinen von heute auf. Wenn euch hier etwas unklar geblieben ist — fragt jetzt, sonst seid ihr nächste Woche verloren.

Fragen zu Teil 1?

Jetzt ist die beste Zeit — bevor Teil 2 startet.

Prof. Dr. Alexandra Mikityuk

HTW Berlin · Büro Raum 308

Tel +49 30 5019-2664

Nächste Woche: Bitcoin Teil 2 — Konsens & Netzwerk

1 / …