← Startseite

Bitcoin als Verteiltes System

Teil 2: Konsens & Netzwerk — Blockchain, Mining, P2P, BFT

Verteilte Systeme — Vorlesung 5

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

Master Konsens & BFT P2P-Protokoll

Recap: Was war Teil 1?

Letzte Woche haben wir die kryptografische Toolbox aufgebaut. Die brauchen wir heute überall.

Die vier Bausteine

  • SHA-256 — Integrität (Avalanche-Effekt, fixe 256 Bit)
  • Merkle Trees — kompakte Verifikation großer Datenmengen
  • Public/Private Keys — Identität ohne Geheimnis-Preisgabe
  • UTXO — präzise Eigentumsverfolgung (kein Konto, sondern „Banknoten")

Was noch fehlte

Mit den Bausteinen können wir einzelne Transaktionen sicher konstruieren — aber wir wissen nicht, wer entscheidet, in welcher Reihenfolge Transaktionen aufgeschrieben werden.

Das löst Teil 2.

Themen heute (Teil 2)

Heute setzen wir die Bausteine zusammen — und sehen, wie das Bitcoin-Netzwerk dezentralen Konsens erreicht.

Block 1 — Blockchain

  • Was ist ein Block?
  • Verkettung der Blöcke
  • Manipulationsschutz

Block 2 — Mining & PoW

  • Proof of Work — Idee & Praxis
  • Mining-Iterationen visuell
  • Difficulty Adjustment
  • Mining-Prozess Schritt für Schritt

Block 3 — Konsens & Netzwerk

  • P2P-Netzwerk & Gossip
  • Längste-Kette-Regel
  • 51%-Angriff
  • Byzantine Fault Tolerance
  • Limitierungen + Alternativen

SHA-256 — was macht eine gute kryptografische Hash-Funktion aus?

Bitcoin baut auf SHA-256 — überall. Block-Hashes, Merkle-Roots, Adressen. Ohne diese Eigenschaften würde nichts funktionieren.

1️⃣ Deterministisch & schnell

Gleicher Input → immer gleicher 256-Bit-Output. Modernes CPU schafft 100+ Mio. Hashes/Sekunde.

2️⃣ Avalanche-Effekt

1 Bit am Input ändern → ca. 50% der Output-Bits ändern sich. Vorhersagbarkeit = 0.

3️⃣ Preimage Resistance

Gegeben ein Hash h — es ist praktisch unmöglich, ein x mit SHA-256(x) = h zu finden.

4️⃣ Collision Resistance

Es ist praktisch unmöglich, zwei verschiedene Inputs zu finden, die denselben Hash erzeugen.

Beispiel — Avalanche live:
SHA-256("Hallo Welt")  = d6e3...8f2b
SHA-256("Hallo welt")  = 9c4a...e1d7  // nur "W" → "w"

Komplett anderer Hash. Niemand kann aus dem Hash raten, dass nur ein Buchstaben anders war.

Konsequenz für PoW: ein Miner kann nur probieren — keine Abkürzung. Genau diese Asymmetrie (schwer zu finden, leicht zu prüfen) ist der Kern von Bitcoin.

Was ist ein Block?

Ein Block ist ein „Bündel" von Transaktionen + Meta-Daten. Etwa alle 10 Minuten entsteht ein neuer.

Inhalt eines Blocks (vereinfacht)

Block {
  prev_hash:     Hash des Vorgänger-Blocks      // die Verkettung!
  merkle_root:   Hash aller Transaktionen          // kompakte Zusammenfassung
  timestamp:     2026-05-10 14:23:01 UTC
  difficulty:    aktuelle Schwierigkeit
  nonce:         irgendeine Zahl                  // dazu gleich mehr (PoW)

  transactions: [ Tx1, Tx2, Tx3, ..., Tx2847 ]
}
Schlüssel-Idee: der prev_hash-Eintrag verweist auf den vorherigen Block. Daher der Name „Blockchain" — eine Kette.

Der Block-Header im Detail — genau 80 Bytes

Der Header ist das, was beim Mining wirklich gehasht wird. Sechs Felder, exakt 80 Bytes — egal wie viele Transaktionen im Block stehen.

FeldGrößeBedeutung
version4 BProtokoll-Version, signalisiert unterstützte Features
prev_block_hash32 BSHA-256-Hash des vorherigen Block-Headers → die Verkettung
merkle_root32 BSHA-256-Wurzel aller Transaktionen in diesem Block
timestamp4 BUnix-Timestamp, gesetzt vom Miner (mit Plausibilitäts-Toleranz)
bits4 BKomprimiertes Target — definiert die aktuelle Schwierigkeit
nonce4 BDie freie Variable, die der Miner durchprobiert (32 Bit = ~4 Mrd. Werte)
Das ist alles, was gehasht wird. Die Transaktionen selbst stecken nicht im Header — sie sind über den merkle_root referenziert. Daher: PoW-Verifikation braucht nur 80 Bytes, nicht den ganzen Block. Das ist die Grundlage für Light Clients (gleich mehr).
Was wenn 4 Mrd. Nonces nicht reichen? Der Miner ändert die Coinbase-Transaktion (eigenen Reward-Tx). Das ändert den Merkle-Root → komplett neuer Hash-Suchraum.

Wie hängen Blöcke zusammen?

Jeder Block enthält den Hash des vorhergehenden. Daraus entsteht eine kryptografisch verkettete Sequenz:

Block 0
Genesis
prev: null
Block 1
prev: 0x4f...
Block 2
prev: 0xa1...
...
895.000+
Tip
aktuell
prev: 0xfa...
Wichtige Konsequenz: wer einen alten Block nachträglich ändern will (z.B. eine Transaktion fälschen), ändert dessen Hash. Damit stimmt der prev_hash im nächsten Block nicht mehr → er muss auch geändert werden. Und der nächste. Und der nächste.
Manipulationsschutz: um Block 800.000 zu ändern, müsste man alle 95.000 nachfolgenden Blöcke neu erstellen — schneller als die ehrlichen Miner. Praktisch unmöglich (siehe Proof of Work).

Merkle Trees in der Praxis — wie Light Clients funktionieren

Euer Smartphone-Wallet hat keine 600 GB Blockchain. Wie kann es trotzdem prüfen, ob eine Zahlung an euch in einem Block enthalten ist?

🐢 Naive Lösung

Block runterladen (~ 1-4 MB pro Block) und alle Transaktionen durchsuchen. Bei 895 000 Blöcken → unrealistisch fürs Handy.

🚀 SPV — Simplified Payment Verification

Das Wallet braucht nur:

  • die 80-Byte-Header der Blöcke (~ 40 MB für die gesamte Chain)
  • einen Merkle-Proof für die eigene Transaktion (wenige KB)

Der Merkle-Proof — Beispiel mit 4 Transaktionen

                  ROOT          ← im Block-Header gespeichert
                 /    \
            H(AB)    H(CD)     ← nur H(CD) bekommt das Wallet
           /   \      (Proof)
        H(A)   H(B)              ← nur H(A) wird mitgeschickt
       (Proof)  ↑
                Tx B (meine Transaktion)

Das Wallet rechnet selbst: H(B) → mit dem mitgelieferten H(A) kombiniert → H(AB) → mit gelieferten H(CD)ROOT. Stimmt der ROOT? → Tx B war im Block.

Skalierung: bei 4096 Transaktionen pro Block braucht der Proof nur log₂(4096) = 12 Hashes — also ~ 384 Bytes. Eleganter geht's kaum.

Proof of Work — was ist eine Nonce, was sind die Nullen?

Wer darf einen neuen Block hinzufügen? Im Bitcoin-Netzwerk: wer ein mathematisches Rätsel als Erster löst. Schauen wir erst die Bausteine an.

🎲 Was ist eine Nonce?

„Nonce" = englisch für „number used once" — eine Zahl, die der Miner einfach frei wählen darf.

Sie hat keine Bedeutung für die Transaktionen im Block. Sie ist nur eine Stellschraube, die der Miner durchprobiert.

Der Block-Hash hängt von allem im Block ab — also auch von der Nonce. Verändert sich die Nonce um 1, ändert sich der Hash komplett (Avalanche-Effekt aus Teil 1).

🎯 Was ist das „Target" mit Nullen?

Ein SHA-256-Hash ist eine 256-Bit-Zahl (64 Hexzeichen). Bitcoin definiert ein Ziel-Maximum — der Block-Hash muss kleiner sein als dieses Maximum.

target = 000000000fffffffffffffffff…

Heißt: der Hash muss mit vielen Nullen anfangen, sonst ist er größer als das Target.

Wer setzt das Target? Niemand zentral — das Protokoll selbst. Startwert von Satoshi 2009, danach passt es jeder Knoten automatisch alle 2.016 Blöcke (~ 2 Wochen) an, damit ein Block im Schnitt 10 Min braucht. Alle Knoten rechnen mit derselben Formel → alle kommen aufs gleiche Target.

Warum gerade Nullen? Es geht nicht wirklich um Nullen — es geht um eine sehr kleine Zahl. Eine 256-Bit-Zahl, die mit 30 Nullen anfängt, ist astronomisch klein — wie eine Zahl, die mit „0,000000000…" beginnt.
Hashes sind aber zufällig verteilt. Die Wahrscheinlichkeit, dass ein zufälliger Hash so klein ist, liegt bei 1 zu 2³⁰ (bei 30 Nullen) — also 1 zu einer Milliarde. Der Miner muss im Schnitt 1 Milliarde Nonces durchprobieren, bis er einen passenden Hash findet. Das ist die „Arbeit" in „Proof of Work".
Pseudocode des Miners:
while True:
    candidate = SHA256(block_inhalt + nonce)
    if candidate < target:        // Hash klein genug?
        return nonce               // → wir haben den Block!
    nonce = nonce + 1             // nein → nächste Zahl probieren

Mining in Aktion — der Iterations-Log

So sieht das in der Praxis aus — Milliarden Versuche pro Sekunde. Hier vereinfacht für „Hash muss mit 0000 anfangen":

target = 0000ffffffffffffffff… // Hash muss kleiner sein
────────────────────────────────────────────────
nonce = 1 hash = f4a2b8c1d0e5… ✗ zu groß
nonce = 2 hash = 9b3c1d8a4e2f… ✗ zu groß
nonce = 3 hash = 2e8f4a91b6c3… ✗ zu groß
… Milliarden Versuche …
nonce = 8.472.113 hash = a04f1c2e3b… ✗ zu groß
nonce = 8.472.114 hash = 0000034ab2f7c8e9… ✓ TREFFER!
→ Block wird sofort an alle Peers gesendet · Miner bekommt Reward
Asymmetrie wieder im Spiel: das Rätsel zu lösen dauert lange (~ 10 Min bei aktueller Bitcoin-Difficulty, weltweit verteilt). Eine Lösung zu überprüfen ist trivial — ein einziger Hash. So kann das Netzwerk schnell verifizieren, dass jemand wirklich die Arbeit geleistet hat.
Merke: die Zahl „8.472.114" ist nur ein Beispiel. In echt liegt der gefundene Nonce-Wert irgendwo zwischen 0 und 4 Milliarden (32-Bit-Feld) — und manchmal reicht der nicht, dann ändert der Miner andere Felder im Block, um den Suchraum zu erweitern.

Proof of Work — konkret

Wie viele Versuche braucht man? Bei aktueller Bitcoin-Schwierigkeit (Mai 2026):

GrößeWert
Versuche pro Block (weltweit)~ 6 × 10²³ Hashes
Hash-Rate weltweit~ 600 EH/s (Exa-Hashes pro Sekunde)
Ziel-Block-Zeit10 Minuten (im Schnitt)
Schwierigkeits-Anpassungalle 2.016 Blöcke (~ 2 Wochen)

Selbstregulierung

Werden Blöcke zu schnell gefunden → Schwierigkeit steigt. Zu langsam → fällt. Ziel: konstant 10 Min.

Reward für den Finder

Aktuell 3,125 BTC pro Block + Transaktionsgebühren. Halbiert sich alle ~4 Jahre („Halving") — Inflations-Bremse.

Wer entscheidet das Target? — niemand und alle

Häufige Frage: „Wer setzt eigentlich fest, wie viele Nullen der Hash haben muss?" — Antwort: das macht das Protokoll selbst, deterministisch, ohne zentrale Instanz.

📜 Im Protokoll fest verankert

Satoshi hat 2009 ein Start-Target in den Bitcoin-Code geschrieben (Genesis-Difficulty = 1).

Jeder Knoten der Welt führt dieselbe Software aus — also dieselbe Formel für die Anpassung.

Es gibt keinen zentralen Server, der „das neue Target" verkündet. Jeder Knoten rechnet es selbst aus und kommt zum gleichen Ergebnis.

🔄 Automatische Anpassung

Alle 2.016 Blöcke (~ 2 Wochen) prüft jeder Knoten:

  • Wurden die 2.016 Blöcke schneller als 2 Wochen gefunden → Target wird kleiner (schwerer)
  • Wurden sie langsamer gefunden → Target wird größer (einfacher)

Ziel: konstante 10 Min/Block, egal ob die weltweite Hash-Rate wächst oder schrumpft.

Die Formel (vereinfacht):
neues_target = altes_target × (echte_Zeit / soll_Zeit)
                              ↑                ↑
                  wie lange brauchten     2 Wochen
                  die letzten 2.016?      (Soll-Wert)
Warum funktioniert das ohne Vertrauen? Weil die Formel deterministisch ist und alle Knoten dieselbe Block-Historie sehen, kommen sie unabhängig voneinander zum exakt gleichen Target. Versucht ein Miner zu schummeln (z.B. zu niedriges Target), würden alle anderen seinen Block ablehnen — die Mathematik stimmt nicht.

Schwierigkeits-Anpassung — die Formel mit Beispiel

Wir haben gesagt, das Target passt sich alle 2 016 Blöcke an. Hier ist die Formel — und ein konkreter Schritt.

Die Formel:
neues_target = altes_target × (tatsächliche_Zeit / soll_Zeit)

  wobei:
  soll_Zeit         = 2016 × 10 min = 20 160 min = 14 Tage
  tatsächliche_Zeit = Zeitspanne der letzten 2016 Blöcke

Konkretes Beispiel

Die letzten 2 016 Blöcke wurden in 12 Tagen gefunden — statt in 14. Miner waren also zu schnell.

Faktor = 12 / 14 ≈ 0,857

neues_target = altes_target × 0,857
             = ca. 14% kleiner  → Hash muss noch kleiner sein
             → schwieriger, im Schnitt wieder 10 Min/Block

📊 Sicherheits-Schranken

Die Anpassung ist auf maximal 4× (Erleichterung) bzw. 1/4× (Verschärfung) gedeckelt — falls die Hash-Rate extrem springt (Stromausfall in China, Halving-Shock).

⏱️ Off-by-One-Bug

Die Formel nutzt 2 015 statt 2 016 Intervalle (klassischer Fencepost-Fehler in Bitcoin Core). Seit 2009 unverändert — würde ein Fix auch nur Mikrosekunden verschieben, hard fork.

Was passiert beim Mining? — Schritt für Schritt

  1. Miner sammelt unbestätigte Transaktionen aus dem Netzwerk (Mempool)
  2. Bündelt sie zu einem Block-Kandidaten + setzt eigene Coinbase-Transaktion (Reward an sich selbst)
  3. Berechnet Merkle Root der Transaktionen
  4. Probiert Nonces — Milliarden pro Sekunde — bis der Block-Hash unter dem Target ist
  5. Sobald gefunden: broadcastet den Block an alle Peers
  6. Andere Knoten verifizieren in Millisekunden und übernehmen den Block in ihre Kette
  7. Der Miner bekommt 3,125 BTC + Gebühren — und das Spiel beginnt von vorn
Echte Hardware: heute laufen das fast nur noch ASICs (Application-Specific Integrated Circuits) — spezielle Chips, die nichts anderes können als SHA-256 berechnen. Eine moderne Mining-Anlage: Schiffscontainer voll mit ASICs.

Das P2P-Netzwerk

Bitcoin hat keinen Server. Alle Knoten sind gleichberechtigt — sie verbinden sich untereinander und tauschen Nachrichten direkt aus.

📡 Full Node

Speichert die komplette Blockchain (~ 600 GB). Verifiziert jede Transaktion eigenständig. ~ 17.000 weltweit.

⛏️ Mining Node

Wie ein Full Node + macht aktiv Mining. Heute meist in Mining Pools organisiert.

📱 Light Client (SPV)

Wallet auf Handy/PC. Speichert nur Block-Header, fragt Full Nodes nach Bestätigungen. Für Endnutzer.

Topologie: Mesh statt Hub

Jeder Knoten ist mit mehreren anderen verbunden — keine zentrale Schaltstelle.

📡
Node A
⛏️
Miner B
📡
Node C
📱
Wallet D
📡
Node E
📱
Wallet F
📡
Node G
⛏️
Miner H
📡
Node I
⛏️
Miner J
Jeder Punkt verbindet sich mit 5-10 anderen. Eine neue Transaktion erreicht weltweit alle Knoten in ~ 2 Sekunden.
Gossip-Protokoll: Knoten X sagt seinen Nachbarn „neue Transaktion!", die sagen es ihren Nachbarn, und so weiter — exponentielle Verbreitung. Funktioniert auch, wenn einzelne Knoten ausfallen oder lügen, weil der Rest weiterhin korrekte Kopien hat.

Wie verbreitet sich ein neuer Block?

Wenn ein Miner einen Block findet — wie schnell wissen die anderen 17 000 Knoten weltweit davon?

Der Standard-Ablauf — INV → GETDATA → BLOCK

Miner findet Block.

Schritt 1 — Ankündigung (klein, schnell):
  Miner → Nachbarn: INV(hash_des_neuen_blocks)   // ~ 40 Bytes

Schritt 2 — Nachbar entscheidet:
  Nachbar prüft: kenne ich den Hash schon?
    ja  → ignorieren
    nein → GETDATA(hash)          // "schick mir den Block"

Schritt 3 — Block-Übertragung:
  Miner → Nachbar: BLOCK(...full data...)   // 1-4 MB

Schritt 4 — Validierung + Weitergabe:
  Nachbar prüft Block (Hash, PoW, Transaktionen)
  → bei OK: weitergeben an seine eigenen Nachbarn (INV ...)

⏱️ Reale Latenz

~ 2 Sekunden bis 90% des Netzwerks den Block kennen. ~ 6 Sekunden für 99%. Das sorgt für viele „Beinahe-Forks".

🚀 Compact Blocks (BIP 152)

Optimierung: statt den Block voll zu senden, nur eine kurze ID-Liste der Transaktionen. Empfänger rekonstruiert aus dem Mempool.

Konsequenz: wer als Miner eine schnelle Netzwerk-Anbindung hat, gewinnt rennen knapp mehr. Daher: Pools haben Mining-Knoten direkt im Internet-Backbone, nicht zu Hause.

Konsens: die längste Kette gewinnt

Was passiert, wenn zwei Miner gleichzeitig einen Block finden? Die Kette gabelt sich kurz — und die Regel lautet: die Kette mit der meisten kumulativen Arbeit gewinnt.

Vor der Gabel:    ... → 994 → 995 → 996 → 997

Gleichzeitig finden zwei Miner Block 998:

                                         → 998a      ← Miner A
... → 994 → 995 → 996 → 997 ─┤
                                         → 998b      ← Miner B

Wer als nächstes Block 999 findet, baut auf einer der zwei auf.
Sagen wir, Block 999 baut auf 998b → diese Kette ist jetzt länger.

→ 994 → 995 → 996 → 997 → 998b → 999     (akzeptiert)
                       └→ 998a                      (verworfen)
Konsequenz für Empfänger: nach 1 Block ist eine Transaktion wahrscheinlich sicher. Nach 6 Blöcken (ca. 60 Min) gilt sie als praktisch endgültig. Daher die Konvention „6 Confirmations".

Forks — was passiert, wenn das Protokoll sich ändert?

Bisher: Forks durch zufällig gleichzeitige Blöcke. Es gibt aber auch absichtliche Forks — wenn die Regeln geändert werden.

🔨 Hard Fork

Inkompatible Regeländerung. Alte Knoten lehnen neue Blöcke ab.

Konsequenz: wenn nicht alle Knoten upgraden → die Chain spaltet sich in zwei separate Netzwerke.

Beispiele: Bitcoin Cash (2017, größere Blöcke), Ethereum Classic (2016, DAO-Rollback).

🪶 Soft Fork

Strengere Regeländerung. Alte Knoten akzeptieren die neuen Blöcke weiterhin (verstehen sie nur nicht voll).

Konsequenz: kein Split nötig — die Chain bleibt zusammen, solange die Mehrheit mit-upgradet.

Beispiele: SegWit (2017), Taproot (2021) — beide bei Bitcoin ohne Split.

Was heißt das in der Praxis? Bitcoin upgradet sich heute fast nur per Soft Fork — Hard Forks sind politisch teuer (jeder Knoten-Betreiber muss aktiv mitziehen). Daher die langen, vorsichtigen BIP-Prozesse.
VS-Bezug: ein Soft Fork ist ein Beispiel für kompatible Protokoll-Evolution in einem dezentralen System — ein Pattern, das auch in anderen verteilten Systemen wichtig ist (REST-API-Versionierung, Wire-Protocols).

Der 51%-Angriff — theoretisch möglich, praktisch sehr teuer

Wer mehr als 50% der weltweiten Hash-Rate kontrolliert, kann theoretisch:

  • Eigene Transaktionen rückgängig machen (Double-Spend)
  • Andere Transaktionen blockieren

Aber: alte Blöcke vor seiner Übernahme umzuschreiben — das geht nicht, weil dafür müsste er die kumulative Arbeit aller bisherigen Miner überholen.

💰 Was würde es kosten?

Schätzungen: 10-20 Mrd. € Hardware + Millionen €/Tag Strom. Plus: jeder Angriff entwertet Bitcoin selbst → der Angreifer schießt sich ins eigene Bein.

🛡️ Faktische Sicherheit

Bitcoin läuft seit Januar 2009 — über 16 Jahre. Kein erfolgreicher 51%-Angriff. Bei kleineren Krypto-Währungen mit weniger Hash-Power: schon vorgekommen.

VS-Bezug: Byzantine Fault Tolerance

Bitcoin löst eines der härtesten Probleme der Verteilten Systeme — und tut es seit über 16 Jahren ohne zentrale Autorität.

Das Byzantine-Generals-Problem (1982)

Mehrere byzantinische Generäle, weit auseinander, müssen sich auf einen gemeinsamen Schlachtplan einigen. Aber: einige sind Verräter und schicken absichtlich falsche Nachrichten. Wie kommen die ehrlichen trotzdem zum Konsens?

Klassische Lösungen

PBFT, Raft mit Modifikationen — funktionieren nur, wenn die Anzahl der Knoten klein und bekannt ist (z.B. ein Konsortium).

Bitcoins Beitrag (2008)

Erste Lösung für offene Netzwerke mit unbekannten, anonymen Teilnehmern — durch ökonomische Anreize (PoW + Reward) statt purer Algorithmen.

Wissenschaftliche Bedeutung: Bitcoin ist der Beweis, dass dezentraler Konsens in offenen Netzwerken realisierbar ist. Das war vor 2008 ein offenes Problem.

Bitcoin in Zahlen (Mai 2026)

MetrikWertVergleich
Marktkapitalisierung~ 2 Bio. USD= ~ Apple-Aktie
Gesamt-Hash-Rate~ 600 EH/s= 600 × 10¹⁸ Hashes/Sek.
Stromverbrauch (geschätzt)~ 150 TWh/Jahr= ~ Argentinien
Aktive Adressen / Tag~ 1 Mio.
Transaktionen / Sekunde~ 7Visa: ~ 24.000
Full Nodes weltweit~ 17.000
Maximale Coin-Anzahl21 Mio. (hardcoded)~ 19,7 Mio. existieren bereits
Letzter Block (genau jetzt)~ 895.000

Was Bitcoin nicht kann

Ehrliche Einordnung — Bitcoin ist nicht die Lösung für alles.

🐢 Throughput

7 TPS sind lächerlich wenig für globale Zahlungen. Visa schafft 24.000. Bitcoin als „Massen-Zahlungsmittel" funktioniert nicht direkt.

Energie

150 TWh/Jahr ist real. Sinnvoll nur, wenn Sicherheit der Blockchain wirklich diesen Wert hat — kontroverse Debatte.

⏱️ Latenz

10 Min pro Block, 60 Min für „endgültig". Für Online-Käufe zu langsam, für Spar-Transfers OK.

Daher Layer-2-Lösungen: z.B. das Lightning Network bündelt Mikrotransaktionen off-chain und schreibt nur den Saldo in die Bitcoin-Blockchain → effektiv Millionen TPS möglich.

Lightning Network — Bitcoin off-chain, Millionen TPS

Wir hatten Lightning kurz erwähnt — hier die Idee im Detail. Es löst das Throughput-Problem ohne die Bitcoin-Sicherheit zu opfern.

Die Grundidee — Zahlungs-Kanäle (Payment Channels)

Zwei Parteien (z.B. Alice und Bob) eröffnen einen Kanal, indem sie einmal on-chain eine gemeinsame Multi-Sig-Adresse füllen — z.B. mit 1 BTC.

1. Open: on-chain 1 BTC in Channel(Alice, Bob) sperren

2. Off-chain Transaktionen (so viele wie sie wollen):
   Alice → Bob:  Saldo nun (0.8 / 0.2)
   Alice → Bob:  Saldo nun (0.6 / 0.4)
   Bob → Alice:  Saldo nun (0.7 / 0.3)
   ... 1 Million Mal ... // 0 Gebühren, instant

3. Close: on-chain finaler Saldo (0.7 / 0.3) wird publiziert

Skalierung über Routing

Du musst keinen Kanal zu jeder Person der Welt aufmachen. Lightning routet über bestehende Kanäle: A → B → C → D, jeder Hop in 1 ms.

🔒 Sicherheit

Wenn Bob betrügen will (alten Saldo on-chain publizieren), kann Alice das in einer Toleranz-Zeit anfechten — sie kassiert alle Kanal-Mittel.

In Zahlen 2026: ~ 15 000 Lightning-Nodes weltweit · ~ 5 500 BTC Kapazität gebunden · effektive Kapazität: Millionen Transaktionen/Sek möglich. Genutzt für Mikrozahlungen (Streaming, Tipping, Online-Bezahlung).
Trade-off: nicht jeder Vorgang ist sofort final-on-chain. Solange der Kanal offen ist, „lebt" der Saldo nur in beiden Wallets. Für kleine Mengen perfekt — für „1 Mio. € im Treuhand" eher nicht.

Was kam nach Bitcoin? — Andere Konsens-Mechanismen

Bitcoin hat ein Rennen um bessere Konsens-Verfahren gestartet. Drei wichtige Ableger:

Proof of Stake

Ethereum (seit 2022). Statt Rechenarbeit: Miner („Validators") hinterlegen Coin-Pfänder. Wer betrügt, verliert sein Pfand.

Energieverbrauch: ~ 99,95% niedriger als PoW.

DAGs

Statt linearer Kette: Directed Acyclic Graph (z.B. IOTA, Hedera). Mehrere Transaktionen können parallel bestätigt werden.

Permissioned BFT

Für Konsortien (Banken, Lieferketten): klassische BFT-Algorithmen mit bekannten Knoten. Z.B. Hyperledger Fabric.

🪞 Kurze Reflexion

Drei Minuten, für euch — schreibt für euch:

  1. Welcher der drei Bausteine (Kryptografie · Blockchain · PoW) ist für euch am überraschendsten?
  2. Wo seht ihr persönlich die größte Schwäche von Bitcoin?
  3. Welches der angesprochenen Verteilte-Systeme-Konzepte würdet ihr im Semesterprojekt einsetzen wollen?
Anschließend: teilt eure Antwort zu Punkt 3 im Chat. Ich sammle die VS-Konzepte und wir gehen sie kurz gemeinsam durch.

Was bedeutet das für euer Semesterprojekt?

Bitcoin selbst werdet ihr nicht nachbauen. Aber ihr könnt mehrere Konzepte daraus in euren Projekten einsetzen:

Direkt anwendbar

  • Hashing für Datenintegrität (SHA-256 ist überall verfügbar)
  • Public/Private Keys für Authentifizierung
  • Merkle Trees für effiziente Verifikation großer Datenmengen
  • Gossip-Protokoll für Status-Verteilung im Cluster

Konzeptuell wichtig

Versteht ihr, warum dezentrale Systeme schwer sind, könnt ihr in eurem Projekt bessere Architektur-Entscheidungen treffen — auch wenn ihr keine Blockchain baut.

Take-aways

  • Bitcoin löst das Double-Spending-Problem ohne zentrale Autorität — durch Konsens.
  • Drei Säulen: Kryptografie (Hashing, Signaturen) · Blockchain (verkettete Datenstruktur) · Proof of Work (Konsens-Mechanismus).
  • Die längste Kette gewinnt — alte Blöcke umzuschreiben würde mehr Arbeit erfordern als die ehrlichen Miner zusammen leisten.
  • Bitcoin ist die erste praktische Lösung für das Byzantine-Generals-Problem in offenen Netzwerken.
  • Limitierungen: Throughput (~7 TPS), Energie (~ Argentinien), Latenz (~ 60 Min). Layer-2 (Lightning) und Alternativen (PoS, DAG) reagieren darauf.

📚 Vertiefung bis nächstes Mal

Pflicht (für alle)

  • Lest das Bitcoin-Whitepaper von Satoshi Nakamoto (9 Seiten, gut lesbar)
    bitcoin.org/bitcoin.pdf
  • Schaut euch blockchain.info an — wählt den aktuellen Block, klickt durch Transaktionen und versucht UTXO-Eingänge/-Ausgänge nachzuvollziehen.

Vertiefung (freiwillig)

  • Spielt mit dem interaktiven SHA-256 + Blockchain-Demo: andersbrownworth.com/blockchain
  • Schaut euch das Lightning-Network-Whitepaper an, falls euch Layer-2 interessiert.

Vielen Dank!

Fragen?

Prof. Dr. Alexandra Mikityuk

HTW Berlin · Büro Raum 308

Tel +49 30 5019-2664

Nächste Woche: Smart Contracts & Konsens im Vergleich

1 / …