Blockchain-Grundlagen
Nachdem du nun verstehst, warum verteilte Systeme grundsätzlich schwierig sind und warum das Problem der Byzantinischen Generäle unlösbar schien, lass uns erkunden, wie Blockchain tatsächlich funktioniert.
Der Durchbruch kam durch die Kombination zweier Schlüsselinnovationen: neuartige Konsensmechanismen und clevere Nutzung kryptografischer Primitive.
Konsensmechanismen
Informatiker haben das Problem der Byzantinischen Generäle tatsächlich bereits in den 1980er Jahren mathematisch gelöst und gezeigt, dass man mindestens 3f+1 Gesamtteilnehmer benötigt, um f Verräter zu tolerieren.
Betrachte den klassischen Fall eines Verräters unter vier Generälen. Wenn der kommandierende General der Verräter ist, könnte er zwei Generälen den Befehl "angreifen" und einem den Befehl "rückzug" geben. Wenn die Generäle nur ihren Befehlen folgen würden, würde der Plan scheitern. Die Lösung erfordert eine zusätzliche Kommunikationsrunde, in der alle Generäle den erhaltenen Befehl einander mitteilen.
Diese zusätzliche Kommunikationsrunde deckt die Täuschung des Kommandeurs auf. Jeder loyale General sieht, dass "angreifen" der mehrheitliche Befehl ist (zwei zu eins) und handelt entsprechend. Da alle loyalen Generäle zur gleichen Schlussfolgerung kommen, wird ein Konsens erreicht und der Verräter besiegt.
Die mathematische Lösung dahinter funktioniert, ist aber unpraktisch:
Du musst im Voraus genau wissen, wer alle Teilnehmer sind
Mehrere Nachrichtenrunden zwischen jedem Teilnehmerpaar
Die Kommunikationskomplexität wächst exponentiell
In einem zugangsfreien System können Angreifer unbegrenzt viele gefälschte Identitäten erstellen
Um dieses Problem zu lösen, zählen Blockchains anstelle von Identitäten etwas, das teuer zu fälschen ist: Rechenleistung oder eingesetztes Geld.
Proof of Work (POW)
In POW-Systemen musst du beweisen, dass du teure Rechenarbeit geleistet hast, um vorzuschlagen, was als nächstes passieren soll:
Miner sammeln ausstehende Transaktionen in einem "Block"
Miner müssen eine Zufallszahl (genannt "Nonce") finden, die, wenn sie mit den Blockdaten kombiniert und gehasht wird, ein Ergebnis erzeugt, das mit mehreren Nullen beginnt
Der erste Miner, der diese Zahl findet, übermittelt seine Lösung an das Netzwerk
Andere Teilnehmer können die Richtigkeit der Lösung sofort überprüfen und den neuen Block akzeptieren
Dies funktioniert, weil das Finden der Nonce Billionen von zufälligen Versuchen erfordern kann, während die Überprüfung der Lösung nur Millisekunden dauert.
Jeder Block verweist auch auf den Hash des vorherigen Blocks, wodurch eine Kette entsteht. Um die Geschichte umzuschreiben, müsste ein Angreifer alle nachfolgenden Berechnungen wiederholen, während ehrliche Miner weiterhin die echte Kette verlängern.
Die Sicherheitsannahme besteht darin, dass der Angriff mehr an Stromkosten verursacht, als der Angreifer gewinnen könnte.
Proof of Stake
In POS-Systemen setzen die Teilnehmer anstatt Strom zu verbrauchen ihr eigenes Geld aufs Spiel:
Teilnehmer sperren Kryptowährungstoken als Sicherheit
Das Protokoll wählt zufällig Validatoren zur Blockerstellung aus, gewichtet nach ihrem Einsatz
Ausgewählte Validatoren schlagen Blöcke vor, und andere Validatoren stimmen für Annahme oder Ablehnung
Ehrliches Verhalten wird belohnt; unehrliches Verhalten führt zum "Slashing", wobei ein Teil der eingesetzten Token verwirkt oder konfisziert wird. Die genaue Strafe variiert je nach Netzwerk und Schwere des Verstoßes.
Dies funktioniert, weil Validatoren "Haut im Spiel" haben. Ein Angriff auf das Netzwerk würde den Wert ihrer eingesetzten Token (durch Slashing) zerstören. Zusätzlich kann Proof of Stake im Gegensatz zu Proof of Work wirtschaftliche Finalität bieten. Sobald ein Block von einer Supermehrheit der Validatoren finalisiert wurde, würde seine Umkehrung erfordern, dass ein Angreifer nachweislich eine enorme Kapitalmenge zerstört, was die Umkehrung prohibitiv teuer macht.
Das Blockchain-Trilemma
So wie verteilte Systeme dem CAP-Theorem gegenüberstehen, stehen Blockchains ihrem eigenen unmöglichen Kompromiss gegenüber. Das Blockchain-Trilemma besagt, dass Blockchain-Konsens höchstens zwei dieser drei Eigenschaften optimieren kann:
Sicherheit: Widerstandsfähigkeit gegen Angriffe und Zensur
Skalierbarkeit: Hoher Transaktionsdurchsatz
Dezentralisierung: Kein einzelner Kontrollpunkt
Bitcoin entschied sich für Sicherheit und Dezentralisierung auf Kosten der Skalierbarkeit. Traditionelle Zahlungssysteme wie Visa wählten Skalierbarkeit und Sicherheit auf Kosten der Dezentralisierung. Die anhaltende Herausforderung besteht darin, Wege zu finden, alle drei gleichzeitig zu erreichen.
Kryptographische Primitive
Konsensmechanismen lösen das Problem "wer entscheidet", aber wie stellen wir sicher, dass die Daten selbst vertrauenswürdig sind?
Hier kommen kryptographische Primitive ins Spiel: mathematische Werkzeuge, die seit Jahrzehnten erprobt sind.
Blockchains stützen sich auf drei wichtige kryptographische Werkzeuge, die zusammenarbeiten, um ein unveränderliches, verifizierbares System zu schaffen:
Hash-Funktionen
Stell dir vor, du musst überprüfen, ob ein umfangreiches Dokument nicht verändert wurde, kannst aber nur ein winziges Stück Information senden, um dies zu beweisen. Genau das leisten Hash-Funktionen.
Eine Hash-Funktion nimmt eine beliebige Eingabe (sei es das Wort "Hallo", das gesamte Werk von Shakespeare oder einen Block mit tausenden von Transaktionen) und erzeugt eine Ausgabe fester Größe, die als einzigartiger digitaler Fingerabdruck dient.
Hash-Funktionen haben drei wichtige Eigenschaften:
Deterministisch: Die gleiche Eingabe erzeugt immer die gleiche Ausgabe.
Irreversibel: Die Funktion ist in eine Richtung leicht zu berechnen, aber rechnerisch unmöglich umzukehren. Mit einem Hash kannst du nicht einfach die ursprüngliche Eingabe finden, außer durch Brute-Force oder eine Lookup-Tabelle.
Lawineneffekt: Eine winzige Änderung in der Eingabe (wie die Großschreibung eines Buchstabens) führt zu einem völlig anderen Ausgabe-Hash.
Betrachte diese SHA-256-Hashes, die den Lawineneffekt demonstrieren:
SHA-256("Hello") = 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
SHA-256("hello") = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824Beachte, wie die Änderung nur der Großschreibung eines Buchstabens einen völlig anderen Hash erzeugt.
Während es trivial ist, einen Hash aus einer beliebigen Eingabe zu berechnen, ist es rechnerisch unmöglich, den Prozess umzukehren. Bei einem gegebenen Hash kannst du nicht herausfinden, was die ursprüngliche Eingabe war, da dies bei einer sicheren Hash-Funktion länger als das Alter des Universums dauern würde.
In Blockchains werden Hashes für die Integrität verwendet. Jeder Block enthält den Hash des vorherigen Blocks und schafft so eine unzerbrechliche Kette. Wenn jemand eine Transaktion von letzter Woche modifizieren würde, würde sich der Hash dieses Blocks ändern. Da der nächste Block auf den alten Hash verweist, würde die Änderung die Kette unterbrechen. Um dies zu beheben, müsste man den Hash jedes nachfolgenden Blocks neu berechnen, während das Netzwerk weiterhin neue Blöcke hinzufügt - ein praktisch unmögliches Aufholspiel.
Digitale Signaturen
Traditionelle Authentifizierung basiert auf gemeinsamen Geheimnissen wie Passwörtern, aber Blockchain funktioniert ohne vertrauenswürdige Autoritäten oder sichere Kanäle zum Teilen von Geheimnissen. Aus diesem Grund verwenden sie digitale Signaturen, die eine Authentifizierung ermöglichen, ohne geheime Informationen preiszugeben.
Digitale Signaturen nutzen asymmetrische Kryptographie, die auf mathematischen Beziehungen basiert, die in eine Richtung leicht zu berechnen, aber in die andere Richtung nahezu unmöglich umzukehren sind. Wenn du eine digitale Signatur erstellst, generierst du zwei mathematisch verwandte Zahlen, die als privater Schlüssel und öffentlicher Schlüssel bezeichnet werden; der private Schlüssel muss geheim bleiben, während der öffentliche Schlüssel frei geteilt werden kann.
Der private Schlüssel kann verwendet werden, um eine digitale Signatur für eine bestimmte Transaktion zu erstellen
Die Signatur ist sowohl für deinen privaten Schlüssel als auch für den genauen Transaktionsinhalt einzigartig.
Jeder kann deinen öffentlichen Schlüssel verwenden, um zu überprüfen, dass die Signatur nur von jemandem mit dem entsprechenden privaten Schlüssel erstellt worden sein konnte.
Ohne deinen privaten Schlüssel ist es rechnerisch unmöglich, eine gültige Signatur zu erstellen, selbst mit Zugriff auf Millionen vorheriger Signaturen. Um zu verhindern, dass ein Angreifer eine alte Transaktion wiederholt, muss jede Signatur ein eindeutiges Datenelement enthalten, oft einen einfachen Zähler namens "Nonce", der sicherstellt, dass jede Signatur einzigartig ist.
Dies schafft "Nichtabstreitbarkeit": Sobald du eine Transaktion signiert hast, kannst du nicht behaupten, dass du sie nicht autorisiert hast. Der mathematische Beweis ist unwiderlegbar.
Bei Blockchains funktionieren Wallets genau so. Dein "Wallet" speichert keine Kryptowährung; die Coins existieren als Einträge in der Blockchain. Stattdessen speichern Wallets private Schlüssel und helfen dabei, digitale Signaturen zu erstellen, um zu beweisen, dass du diese Coins ausgeben kannst. Sie sind im Wesentlichen Manager für digitale Signaturen.
Merkle-Bäume
Wie überprüfst du, ob eine bestimmte Transaktion in einem Block mit tausenden anderen Transaktionen existiert, ohne den gesamten Block herunterzuladen?
Merkle-Bäume organisieren Daten in einem binären Baum, bei dem jedes Blatt eine Transaktion repräsentiert und jeder Elternknoten den Hash seiner beiden Kinder enthält. Dies setzt sich den Baum hinauf fort, bis ein einzelner Root-Hash erreicht wird, der den gesamten Datensatz repräsentiert.
Aus diesem Grund benötigst du, um zu beweisen, dass eine Transaktion im Baum existiert, nur die Transaktion und den "Merkle-Pfad": die Geschwister-Hashes, die benötigt werden, um den Root zu rekonstruieren. Das bedeutet, dass du für einen Baum mit einer Million Transaktionen nur etwa 20 Hashes brauchst, um die Zugehörigkeit zu beweisen.
In Blockchains machen Merkle-Bäume es extrem einfach, Transaktionen mit nur wenigen Kilobyte an Beweisen zu verifizieren. Die Sicherheitsgarantie bleibt identisch: Wenn der Merkle-Pfad korrekt verifiziert wird, kannst du mathematisch sicher sein, dass die Transaktion in diesem Block enthalten war.
Die Erschaffung eines vertrauenslosen Systems
Konsens und kryptografische Primitive arbeiten zusammen, um ein "vertrauensloses" System zu schaffen. Zum ersten Mal in der Geschichte wird Vertrauen in die Mathematik und nicht in Menschen gesetzt:
Hashfunktionen stellen sicher, dass jede Manipulation historischer Daten sofort erkennbar wird.
Digitale Signaturen beweisen die Autorisierung, ohne dass eine vertrauenswürdige Zwischeninstanz zur Identitätsüberprüfung erforderlich ist.
Merkle-Bäume machen es praktikabel, komplexe Behauptungen zu überprüfen, ohne massive Datenmengen herunterladen zu müssen.
In Kombination mit Konsensmechanismen schaffen diese Tools ein System, in dem jeder Teilnehmer die gesamte Historie des Systems unabhängig und ausschließlich mit eigenen Rechenressourcen überprüfen kann. Keine vertrauenswürdigen Autoritäten, keine gemeinsamen Geheimnisse, keine zentralen Schwachstellen.
Deshalb stellt die Blockchain eine so fundamentale Veränderung dar. Traditionelle Systeme erreichen Sicherheit durch Zugangskontrolle und Einschränkung der Teilnahme. Blockchain erreicht Sicherheit, indem Verifizierung kostengünstig und universell gemacht wird, während Betrug teuer und offensichtlich wird.
Das Verständnis dieser Grundprinzipien ist entscheidend, da sie definieren, was Blockchain kann und was nicht. Sie erklären, warum Blockchain-Transaktionen unumkehrbar sind (die wirtschaftlichen Kosten für die Umkehrung einer finalisierten Transaktion sind bewusst prohibitiv hoch), warum Blockchain-Systeme ohne zentrale Autoritäten funktionieren können (jeder kann alles unabhängig verifizieren) und warum das System sicher bleibt, selbst wenn es vollständig für öffentliche Teilnahme offen ist.