Die fabelhafte Welt der Mathematik: Warum Bitcoin so viel Energie braucht
Wenn es um Bitcoin geht, kochen die Gemüter schnell hoch: Auf der einen Seite stehen die Befürworter, die darin ein freiheitliches Geldsystem sehen, auf der anderen Seite monieren Kritiker die enormen Energiemengen, welche die Kryptowährung erfordert. Gemäß einer Studie, die 2019 im Fachjournal »Joule« erschienen ist, setzte Bitcoin innerhalb eines Jahres etwa so viele Treibhausgase frei, wie Jordanien jährlich erzeugt. Grund dafür ist die Funktionsweise der digitalen Währung: Anders als beim Euro oder Dollar gibt es bei Bitcoin keine zentrale Instanz, die Bankkonten vergibt oder das Guthaben der Nutzerinnen und Nutzer verwaltet. Stattdessen sind alle Informationen in einem dezentralen Netzwerk verteilt. Damit dabei keine Fehler passieren – jemand zum Beispiel sein Guthaben doppelt ausgibt –, sind ausgeklügelte mathematische Protokolle nötig. Und nicht alle sind energieeffizient.
Mit der Geburt des Internets entstand auch erstmals der Gedanke eines digitalen Geldsystems. In der realen Wert stellt eine Zentralbank Münzen oder Geldscheine her, die schwer nachzubauen sind. Auf diese Weise wird verhindert, dass ich meinen 20-Euro-Schein einfach kopiere und damit beliebig viel Geld erzeuge. In der digitalen Welt ist das schon schwieriger: Dateien lassen sich ohne viel Aufwand kopieren. Um also sicherzustellen, dass ich mein Guthaben auf meinem Onlinekonto nicht einfach vervielfältige, verwaltet eine zentrale Instanz – meine Bank – meine Daten.
Zu Beginn der 1980er Jahre begann der Kryptograf David Chaum, über eine digitale Währung nachzudenken. In den folgenden Jahren gab es immer wieder Bemühungen, diese Idee umzusetzen. Eines der Probleme bestand aber weiterhin darin, sicherzustellen, dass das digitale Geld nicht einfach vervielfältigt wird. Stets schien eine zentrale Instanz nötig, der man vertrauen muss.
Die erste Lösung für ein dezentrales Geldsystem erschien 2009 mit dem Bitcoin-Whitepaper, das von einer bis heute unbekannten Person unter dem Pseudonym Satoshi Nakamoto veröffentlicht wurde. Die Idee bestand darin, eine dezentrale Datenbank zu schaffen: Jede Person, die Interesse daran hat, Teil des Bitcoin-Netzwerks zu sein, kann sich die Datenbank herunterladen. Diese enthält alle erforderlichen Informationen, um Transaktionen zu ermöglichen: Wenn ich eine Zahlung von 0,01 Bitcoin tätige, wird die Datenbank bei allen entsprechenden Personen aktualisiert, so dass klar wird, dass ich diese 0,01 Bitcoin nicht mehr besitze. Das klingt zunächst recht einfach – eine solche dezentrale Datenbank sicher umzusetzen, gestaltet sich jedoch extrem schwierig.
Wie eine Blockchain funktioniert
Zunächst wird eine solche Datenbank sehr schnell sehr unübersichtlich – und riesig. Überlegen Sie mal, wie viele Zahlungen Sie am Tag tätigen, und skalieren Sie das auf Millionen oder Milliarden von Personen und Unternehmen hoch. Für jede Transaktion müsste man die Datenbank aktualisieren und mit allen anderen Personen im Netzwerk teilen. Außerdem muss die Datenbank fälschungssicher sein. Angenommen, ein Hacker greift mein System an und erhöht seinen Kontostand. Dann stimmt meine Datenbank plötzlich nicht mehr mit den anderen überein. Um herauszufinden, welche Datenbank nun die richtige ist, müsste man alle vergangenen Zahlungen durchgehen, bis man auf eine Ungereimtheit stößt. Das wäre extrem langwierig und aufwändig. Um das zu verhindern, wurde das Prinzip der Blockchain eingeführt.
Die Grundidee der Blockchain geht ebenfalls auf Chaum zurück, der einige der Prinzipien bereits in seiner Doktorarbeit im Jahr 1982 erwähnt hatte. Angenommen, man hat viele Daten (etwa Zahlungen von A nach B), die man in der Datenbank eintragen möchte. Die Blockchain organisiert diese Daten in einer bestimmten Struktur: Man pickt sich eine gewisse Menge von Daten heraus, einen »Block«, anschließend greift man sich weitere Daten und formt daraus einen zweiten Block und so weiter. Bisher hat man nichts gewonnen – um die Korrektheit der Transaktionen zu prüfen, muss man alle Blöcke einzeln durchgehen. Doch Chaum erkannte, dass kryptografische Methoden das Verfahren vereinfachen können. Die Blöcke lassen sich nämlich auf clevere Weise miteinander verbinden: indem man die gesamten Daten des ersten Blocks durch eine Zeichenfolge codiert und diese Zeichenfolge in den zweiten Block überträgt. Wenn man einen dritten Block erzeugt, codiert man die Daten des zweiten Blocks (inklusive der codierten Zeichenfolge) und fügt die dadurch entstehende Zeichenkette den Daten des dritten Blocks hinzu. Auf diese Weise entsteht eine lange Kette von Blöcken, die über eine Codierung zusammenhängen.
Als Codierung kann man eine so genannte Hashfunktion wählen. Diese überträgt eine Eingabe beliebiger Länge (etwa ein Wort oder eine Zahl) in eine Zeichenfolge mit fester Länge, den »Hash«. Zum Beispiel könnte aus den Daten eines Blocks eine 16-stellige Sequenz aus Buchstaben und Ziffern entstehen. Hashfunktionen haben die besondere Eigenschaft, dass sie sich sehr schnell berechnen lassen, es aber quasi unmöglich ist, aus der Codierung zurück auf die Eingabe zu schließen. Zudem erzeugen zwei verschiedene Eingaben so gut wie niemals denselben Hash. Das ist wichtig, denn damit lässt sich einerseits schnell nachrechnen, ob die gespeicherte Zeichenfolge im zweiten Block zu den Daten im ersten Block passt. Falls ein Hacker zum Beispiel die Daten im ersten Block manipuliert, dann passt der Hash im zweiten Block nicht mehr zu den veränderten Daten.
Das macht eine Manipulation der Blockeinträge so gut wie unmöglich – denn dann stimmen Daten und Hashes nicht mehr überein. Sobald ein neuer Block der Blockchain hinzugefügt wird, prüfen alle Teilnehmer des Netzwerks, ob dieser zulässig ist: Sind die Transaktionen stimmig? Passt der Hash zu den vergangenen Daten? Falls der Block eine Unstimmigkeit enthält, wird er verworfen.
Welche Blockchain ist die richtige?
Das klingt, als seien mit der Blockchain die Probleme behoben. Doch leider tauchen in der Praxis weitere Schwierigkeiten auf. Denn zur Blockchain kommen laufend neue Blöcke hinzu. Damit stellt sich die Frage: Welche Blöcke werden in welcher Reihenfolge zugelassen und wie stellt man sicher, dass jeder Nutzer am Ende dieselbe Version der Blockchain vor sich hat? Dazu ein einfaches Beispiel: Angenommen, das Bitcoin-Netzwerk besteht aus bloß drei Rechnern. Alle drei haben den aktuellsten Block der Blockchain vor sich. Nun möchten sie einen weiteren Block hinzufügen. Der erste Rechner schnappt sich also die Daten und bastelt daraus einen neuen Block. Dann sagt er den anderen beiden Rechnern des Netzwerks Bescheid, die diesen Block verifizieren und dann ebenfalls hinzufügen.
Nun kann es aber sein, dass Rechner 1 und Rechner 3 gleichzeitig je einen neuen Block erzeugen, die nicht übereinstimmen. Es entsteht eine Gabelung: Der zweite Rechner im Netzwerk weiß nicht, welchen der beiden Blöcke er übernehmen soll. Da es keine zentrale Instanz wie eine Bank geben soll, müssen sich die Teilnehmenden des Netzwerks irgendwie einigen. Hier kommt es nun zu einem typischen Problem aus der Informatik: Wie schafft man Konsens in einem dezentralen System?
Man könnte zum Beispiel das Glück entscheiden lassen und eine Münze werfen: Falls der Block vom dritten Rechner gewinnt, wird darauf weiter aufgebaut. Falls das Netzwerk allerdings groß ist und die Kommunikation zwischen den teilnehmenden Rechnern langsam ist, wird es schnell chaotisch: Theoretisch kann jeder Rechner jederzeit neue Blöcke schaffen, so dass irgendwann viele verschiedene Gabelungen und damit Blockchain-Versionen entstehen, ohne dass es einen Konsens darüber gibt, welche nun die richtige ist.
Ein Problem besteht also darin, dass es länger dauert, innerhalb des Netzwerks mit den anderen Nutzern und Nutzerinnen zu kommunizieren, als einen neuen Block zu erzeugen. Deshalb greift man auf eine Methode zurück, die in der Informatik äußerst ungewöhnlich ist: Man versucht, den Prozess zu verlangsamen.
Angenommen, es entsteht eine Gabelung: Zwei verschiedene Blöcke werden gleichzeitig hinzugefügt. Daher erhalten alle beteiligten Rechner im Netzwerk jeweils einen zufällig eingestellten Timer. Erst wenn dieser abgelaufen ist, hat man die Erlaubnis, einen neuen Block zur Blockchain hinzuzufügen. In diesem Bild kann die Person mit dem schnellsten Timer entscheiden, auf welchem der beiden Blöcke in der Gabelung sie aufbauen möchte. Das kommuniziert sie dann den anderen Personen des Netzwerks, woraufhin die Timer neu verteilt werden. Währenddessen überprüfen die Teilnehmer des Netzwerks den neuen Block, beginnen aber gleichzeitig auch, neue Blöcke zu erzeugen.
Da die Übertragung des neuen Blocks und die anschließende Verifizierung eine gewisse Zeit erfordert, kann es immer passieren, dass in der Zwischenzeit ein neuer Block erzeugt wurde. Es kommt demnach immer wieder zu Gabelungen. Doch diese können sich durch die Timer nicht ewig fortsetzen: Sobald die eine Kette der Gabelung länger ist (mehr Blöcke enthält) als die andere, verwirft man die kürzere Kette. Auf diese Weise lässt sich ein Konsens über eine gemeinsame Blockchain erreichen.
Bei Bitcoin sind die Timer so eingestellt, dass der schnellste nach durchschnittlich zehn Minuten abläuft. Das heißt, etwa alle zehn Minuten wird ein neuer Block an die Bitcoin-Blockchain angehängt. Aber wie schafft man solche Timer und verteilt sie?
Tatsächlich realisiert Bitcoin sie durch aufwändige Rechenaufgaben: Wenn ein Rechner einen neuen Block anhängen möchte, muss er zuvor eine Zeichenfolge finden, die einen bestimmten Hash erzeugt. Dafür gibt es keinen systematischen Weg, sondern man muss viele verschiedene Kombinationen ausprobieren: Liefert die Zeichenfolge 4k35hu425h den gewünschten Hash? Und was ist mit 7847983hujjrf? Dabei rechnen die Computer, so genannte »Miner«, um die Wette. Nach durchschnittlich zehn Minuten stößt ein Miner auf das Ergebnis. Dieser darf dann den neuen Block an die Blockchain anhängen, inklusive seines Rechenergebnisses, damit jeder prüfen kann, dass er die Aufgabe auch wirklich gelöst hat. Den Aufwand betreibt der Miner nicht umsonst, er wird dafür mit Bitcoin belohnt. Dieser Algorithmus wird als »Proof of Work« bezeichnet, da der Beweis, dass man den Block anhängen darf, durch die Arbeit erfolgt, die in die Lösung der Matheaufgabe geflossen ist.
Der Haken an der Sache: Die Arbeit erfordert Energie. Wie viel genau, hängt davon ab, wie viele Miner um die Wette rechnen. Etwa alle 14 Tage wird ausgewertet, wie lange die durchschnittliche Dauer betrug, bis ein neuer Block an die Blockchain hinzugefügt wurde. Gelang das in unter zehn Minuten, wird die Schwierigkeit der Rechenaufgabe hochgeschraubt, lag die Rechenzeit darüber, dann wird sie vereinfacht. Demnach hängt der Energieverbrauch von der Anzahl der beteiligten Rechner ab, aber auch von ihrer Rechenleistung.
Andere Konsens-Algorithmen für Blockchains
Inzwischen gibt es auch andere Ansätze, um Konsens in einer Blockchain zu erzielen. Ein häufig angeführtes Beispiel ist »Proof of Stake«, das die Ethereum-Blockchain seit September 2022 unterstützt. Um einen Block zur Blockchain hinzuzufügen, hat man in diesem Fall einen Vorteil, wenn man große Mengen der Kryptowährung (»Ether«) besitzt. Sprich: Personen mit viel Vermögen erzeugen die Blöcke und bestätigen damit Transaktionen. Es gibt verschiedene Umsetzungen eines solchen Systems. Ein Beispiel besteht darin, ähnlich wie beim Proof of Work vorzugehen, also allen beteiligten Personen mit genügend Vermögen (»Validierern«) eine Rechenaufgabe zu stellen, wobei der Schwierigkeitsgrad mit steigendem Vermögen sinkt. Damit ist deutlich weniger Energie erforderlich, um einen neuen Block zu erzeugen. Eine ausgewählte Menge an Validierern muss dann prüfen, ob der neue Block alle Kriterien erfüllt, und sich darauf einigen, ob dieser der Blockchain hinzugefügt wird oder nicht.
Es gibt noch weitere Konsens-Methoden für Blockchains, die bisher allerdings nicht allzu weit verbreitet sind. Ein Beispiel ist Proof of Space, bei dem Miner ebenfalls eine Aufgabe lösen müssen, die zwar nicht rechenintensiv ist, aber viel Speicherplatz benötigt. Oder Proof of Space Time, bei dem man einen Block hinzufügen darf, wenn man den Speicherplatz lange genug vorhält. Die Idee dieser beiden Ansätze ist ähnlich wie beim Proof of Work: Man koppelt die Erzeugung von Blöcken (und damit der Währung selbst) an eine physikalische Größe wie Arbeit oder Speicher.
Darüber, wie dezentral die Blockchain-Konsens-Methoden wirklich sind, lässt sich diskutieren. Durch die Begünstigung von Personen mit viel Krypto-Vermögen neigen Proof-of-Stake-Systeme natürlicherweise zu Zentralisierung. Am Ende können die Personen mit dem größten Vermögen darüber entscheiden, welcher Block der Blockchain hinzugefügt wird und welcher nicht – ähnlich einer zentralen Instanz wie einer Bank. Aber auch Proof of Work kann zu Zentralisierung führen. Inzwischen gibt es wenige hoch spezialisierte Firmen, die große Mengen an geeigneter Mining-Hardware besitzen, um die Rechenaufgaben zu lösen und neue Blöcke der Bitcoin-Blockchain zu generieren. Eine Einzelperson wird mit einem gewöhnlichen Rechner nur mit sehr geringer Wahrscheinlichkeit einen Block zur Bitcoin-Blockchain hinzufügen können.
Schreiben Sie uns!
Beitrag schreiben