Karim Dabbouz
kd.

Bitcoin und Blockchain in fünf Minuten erklärt

Zunächst das Wichtigste: Bitcoin ist nicht Blockchain. Blockchain ist eine Technologie, die uns erlaubt, Werte sicher zwischen zwei Parteien zu transferieren, ohne dabei auf eine zentrale Instanz vertrauen zu müssen. Transferiert werden kann alles, was sich in Code darstellen oder durch Code repräsentieren lässt: Geld, Musik, Filme, Eigentumstitel etc. Auch physische Objekte können theoretisch über die Blockchain von Partei A zu Partei B transferiert werden. Hierfür erstellen wir eine Repräsentanz in Form eines sogenannten Tokens: Anstelle des Kaffees übertragen wir einen Token, der den Kaffee repräsentiert – ein Gutschein gewissermaßen. Auf diese Weise können wir eine unendliche Vielfalt an Werten auf der Blockchain handeln.

Neu daran ist nicht die Tatsache, dass sich Werte online von A nach B übertragen lassen. Dies tun wir praktisch täglich: Wir versenden ein Dokument per E-Mail, wir schicken ein Foto via WhatsApp oder wir laden eine Software von einem Server herunter, um diese anschließend auf unserem Computer zu installieren. Die Revolution der Blockchain ist, dass sie Vertrauen zwischen zwei Parteien schafft, ohne dass eine dritte Partei als zentrale, vertrauenswürdige Instanz für Sicherheit sorgen muss. Denn sobald eine Transaktion stattgefunden hat und auf der Blockchain verzeichnet wurde, kann sie nicht mehr rückgängig gemacht werden.

Bitcoin ist die erste erfolgreiche Anwendung von Blockchain-Technologie und gleichzeitig die naheliegendste: Eine autonome digitale Währung, die zwischen sich unbekannten Parteien sicher transferiert werden kann und sich als Geldsystem selbst erhält. Und zwar ganz ohne Zutun irgendeiner zentralen Instanz wie einer Bank, einer Behörde oder einer anderen Organisation. Wie schafft die Blockchain das?

Wie funktioniert die Blockchain?

Die Grundlage jeder Blockchain ist ein Netzwerk an Computern, den sogenannten Nodes. Die Nodes im Netzwerk sind das Rückgrat der Blockchain. Sie stellen Rechenleistung zur Verfügung, um Transaktionen zu verifizieren. Die verifizierten Transaktionen werden in der Blockchain gespeichert und lassen sich rückwirkend nicht mehr ändern. Jeder Node im Netzwerk verfügt über eine Kopie dieser Blockchain, in der alle jemals getätigten Transaktionen gespeichert sind. Über ein dezentrales Netzwerk sind alle Nodes direkt oder indirekt miteinander verbunden.

 

 

Schauen wir uns eine Transaktion auf der Bitcoin-Blockain an: Alice möchte Bob einen Bitcoin schicken. Hierfür gibt Bob Alice seine Wallet-Adresse. Alice erstellt eine Transaktion: Schicke 1 Bitcoin an die Adresse von Bob. Damit niemand einfach die Bitcoins von Alice ausgeben kann, muss sie die Transaktion mit einem Private Key signieren. Der Private Key ist eindeutig mit der Adresse ihres Wallets verbunden, das heißt zu jeder Adresse gehört genau ein Private Key. Er ist der Schlüssel zu den Bitcoins und nur mit ihm können die Bitcoins versendet werden. Deshalb hält Alice ihn geheim. Alice signiert also die Transaktion an Bob mit ihrem Private Key. Nun wird die signierte Transaktion dem Bitcoin-Netzwerk mitgeteilt. Man sagt auch, sie wird propagiert. Weil alle Nodes im Netzwerk direkt oder indirekt miteinander verbunden sind, verbreitet sich die Transaktion im gesamten Netzwerk, bis alle Nodes wissen, dass Alice 1 Bitcoin an Bob senden möchte. Jetzt kommt die Blockchain ins Spiel.

 

 

Die Nodes im Netzwerk sammeln alle ausstehenden Transaktionen und fassen sie in einem Block zusammen. Die Aufgabe der Computer im Netzwerk ist nun, diesen Block und die darin enthaltenen Transaktionen zur Blockchain hinzuzufügen und sie somit zu verifizieren. Es beginnt ein Rennen, bei dem die Computer ein mathematisches Rätsel lösen müssen. Der Computer, der als erster die Lösung für das Rätsel findet, darf seinen Block an die Spitze der Blockchain setzen. Ab diesem Zeitpunkt gelten die in diesem Block enthaltenen Transaktionen als valide. Sie sind nun vom Netzwerk als gültig akzeptiert. Alice hat jetzt 1 Bitcoin weniger und Bob hat 1 Bitcoin mehr. Anschließend geht das Spiel von vorne los: Jeder Node im Netzwerk nimmt neue ausstehende Transaktionen, fügt sie in einem neuen Block zusammen und versucht, das mathematische Rätsel zu lösen, um seinen Block an die Spitze der Blockchain zu setzen.

Das Rätsel, auf dem die Blockchain beruht

Das mathematische Rätsel ist eine sogenannte Falltürfunktion. Falltürfunktionen sind Funktionen, die in eine Richtung leicht zu berechnen, in die andere Richtung aber nur mit hohem Rechenaufwand zu lösen sind. Bitcoin nutzt hierfür einen Algorithmus mit dem Namen SHA256. SHA ist eine sogenannte Hash-Funktion. Sie nimmt einen Input, zum Beispiel eine Zahl oder einen Satz, und wandelt ihn in einen Hash um. Ein Hash ist eine Zeichenfolge mit festgelegter Anzahl an Zeichen, im Fall von SHA256 sind es 64 Zeichen. Ein Beispiel zeigt, wie das funktioniert:

Wir nehmen den Satz Bitcoin sind toll und hashen ihn mit SHA256. Das Ergebnis ist diese Zeichenfolge:

Bitcoin sind toll -> ff683afd2f9cd09be1714af5e6525d827711885fe7ce1ed70baa59aedac17cbb

Ausprobieren könnt ihr dies auf dieser Seite. Wenn ihr den Satz in identischer Schreibweise eingebt, erhaltet ihr genau diese Zeichenfolge.

Wenn wir den Ausgangssatz nur ein kleines bisschen anpassen und einen Punkt ans Ende setzen, entsteht ein völlig anderer Hash. Nur die Anzahl an Zeichen bleibt gleich:

Bitcoin sind toll. -> 8dd203dfc2240cb3b58ef7517778198ad5f7b525dea63f48f45a4e003b649b76

Es ist nahezu unmöglich, zwei Mal einen identischen Hash zu produzieren. Jeder Ausgangssatz produziert einen völlig anderen Hash.

Möchten wir aus der Zeichenfolge aber wieder den Ursprungssatz machen, bekommen wir Schwierigkeiten, denn SHA256 ist nur in die eine Richtung leicht zu berechnen. Die Blockchain macht sich dies zunutze und stellt dem Netzwerk folgende Aufgabe: Finde einen Satz, der einen Hash produziert, dessen x erste Stellen 0 sind. Je mehr Nullen dem produzierten Hash vorangestellt werden müssen, desto schwieriger ist die Aufgabe. Das Bitcoin-Netzwerk passt die Zahl der geforderten Nullen so an, dass mit der gesamten Rechenleistung des Netzwerks ungefähr alle zehn Minuten eine Lösung gefunden und ein neuer Block zur Blockchain hinzugefügt wird.

Darum sprechen wir von Proof-of-Work

Der gesuchte Satz, dessen Hash eine bestimmte Anzahl an Nullen enthalten soll, ist kein beliebiger Satz, sondern der sogenannte Block Header. Hierbei handelt es sich um eine Zeichenfolge, die verschiedene Informationen enthält, darunter:

Diese Zeichenfolge wird nun mit SHA256 gehasht – und zwar so lange, bis das gewünschte Ergebnis gefunden ist. Da es sich bei der Hashfunktion SHA256 um eine Falltürfunktion handelt, nimmt der Computer einen pragmatischen Weg: Er hängt an den Satz solange eine andere Zahl, bis der Hash dem gewünschten Ergebnis entspricht. Diese zusätzliche Zahl nennt man Nonce. Das gesamte Netzwerk arbeitet unablässig daran, eine richtige Lösung zu finden und probiert dafür Nonce für Nonce durch, bis das Ergebnis passt. Das ist auch der Grund, weshalb wir von einem Proof-of-Work-Algorithmus (PoW) sprechen: Das Computernetzwerk muss Arbeit verrichten, um Transaktionen zu verifizieren. Gleichzeitig ist es der Grund, weshalb der Energieverbrauch von Blockchains mit Proof-of-Work so hoch ist. Ein (vereinfachtes) Beispiel:

Der Block Header des vorherigen Blocks lautet:

Bitcoin sind eine volatile Geldanlage

Die Aufgabe für die Nodes besteht nun darin, aus diesem Satz einen Hash zu produzieren, dessen erste zehn Stellen 0 sind, also zum Beispiel: 00000000009cd09be1714af5e6525d827711885fe7ce1ed70baa59aedac17cbb

Leider produziert der Ausgangssatz aber einen Hash, der keine einzige 0 am Anfang hat:

317975f3264a71db470262ce6ee79c216fe537f88c7586712d7509218f337196

Deshalb geht es jetzt an die Arbeit. Die Nodes hängen jede mögliche Zahl an das Ende des Ausgangssatzes – und zwar so lange, bis ein passender Hash gefunden wurde. Also:

Bitcoin sind eine volatile Geldanlage0

Bitcoin sind eine volatile Geldanlage1

Bitcoin sind eine volatile Geldanlage2

Bitcoin sind eine volatile Geldanlage…

Dies verdeutlicht noch einmal, warum wir von einer Falltürfunktion sprechen. Denn SHA256 lässt sich nur umkehren, indem wir alle möglichen Kombination durchprobieren. Wenn die Rede davon ist, dass ein Blockchain-Netzwerk eine Hashrate von 10 Gigahash pro Sekunde hat, dann heißt das, dass alle Computer im Netzwerk zusammen zehn Milliarden Kombinationen (10 Gigahash = 10.000.000.000 Hashes) pro Sekunde ausprobieren, um eine Lösung zu finden.

Wofür der Aufwand?

Warum macht man es sich so kompliziert und wählt diesen auf den ersten Blick ineffizienten Weg? Die Antwort liegt im Problem des Double-Spendings. Weil es keine zentrale Instanz gibt, die die Transaktionen im Netzwerk überwacht, könnte ein Angreifer einen Betrag einfach mehrfach ausgeben. Alice könnte also einen Bitcoin an Bob senden und anschließend eine zweite Transaktion signieren und sich davon ein Paar Schuhe kaufen. Dafür bräuchte sie allerdings den entsprechenden Proof-of-Work: Sie müsste die zweite, falsche Transaktion in einem Block unterbringen und eine Lösung für diesen Block finden. Noch mehr: Weil das Netzwerk unablässig arbeitet und alle zehn Minuten einen neuen Block produziert, der auf den vorherigen Blöcken aufbaut, müsste sie auch diese Blöcke verifizieren. Sie müsste also schneller als das gesamte Bitcoin-Netzwerk sein und das geht nur, wenn sie mehr Rechenleistung aufbringen kann, als die Hälfte aller Computer, die am Netzwerk beteiligt sind (Majority Attack). Und hier kommt das Mining ins Spiel.

 

 

Denn das Erstellen neuer Blöcke bleibt nicht unbelohnt. Der Computer, der als erster das Rätsel löst und einen neuen Block zur Blockchain hinzufügen darf, erhält dafür eine Belohnung in Form von neuen Bitcoins plus die Summe der Gebühren aller darin enthaltenen Transaktionen. Dies hat zwei Gründe: Nicht nur schafft Bitcoin einen Anreiz für Menschen, sich aktiv am Netzwerk zu beteiligen und Transaktionen zu verifizieren; auch sorgt die Belohnung dafür, dass ein Angreifer gar nicht erst versucht, das Netzwerk auszutricksen. Denn wer so viel Rechenleistung kontrolliert, dass er alle anderen Nodes im Netzwerk überholen könnte, kann diese Rechenleistung auch einfach dafür einsetzen, selbst neue Blöcke zu berechnen. Der Proof-of-Work ist also ein Anreiz, nach den Regeln des Systems zu spielen.

Zusammenfassung

Die Blockchain erfüllt also drei Zwecke:

  1. Transaktionen bündeln und verifizieren
  2. Einen Anreiz für Menschen schaffen, sich konstruktiv am System zu beteiligen und es am Laufen zu halten
  3. Angriffe auf das System nahezu unmöglich*, in jedem Fall aber unrentabel machen

 

*Bitcoin ist bisher sicher. Mögliche Schwachstellen sind im Bitcoin-wiki aufgeführt und erklärt