Direkt zum Inhalt

Die fabelhafte Welt der Mathematik: Warum Bitcoin so viel Energie braucht

Die Kryptowährung Bitcoin verbraucht Unmengen Strom. Ursache ist ein jahrzehntealtes mathematisches Problem: Wie einigt man sich in einem Netzwerk?
Bitcoin-Symbol, in dem Stromstecker stecken
Bitcoin braucht viel Energie, um Einigkeit in einem Netzwerk zu erzielen.

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.

Viele Menschen denken, Mathematik sei kompliziert und öde. In dieser Serie möchten wir das widerlegen – und stellen unsere liebsten Gegenbeispiele vor: von schlechtem Wetter über magische Verdopplungen hin zu Steuertricks. Die Artikel können Sie hier lesen oder als Buch kaufen.

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.

Aufbau einer Blockchain | Die Daten (zum Beispiel Transaktionen) werden in Blöcke gegliedert. Um die Blöcke miteinander zu verbinden, codiert man die Daten des letzten Blocks über eine Hashfunktion und überträgt den Code (den Hash) in den neuen Block.

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?

Gabelung in der Blockchain | Wenn zwei Rechner gleichzeitig einen neuen Block erzeugen, kann es zu einer Gabelung kommen. In diesem Fall entsteht eine zweite Kette aus Blöcken. Die Teilnehmer des Netzwerks müssen sich dann auf eine dieser beiden Ketten einigen.

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.

Konsens in verteilten Systemen |

Lösungen für solche Fragestellungen beschäftigen Mathematiker schon seit Jahrzehnten. Denn tatsächlich tauchen Konsensprotokolle nicht nur im Zusammenhang mit Kryptowährungen auf, sondern bei allerlei anderen Netzwerken: sei es in einem intelligenten Stromnetz, bei Domain-Namen-System (die einen Domain-Namen einer IP-Adresse zuweisen), der Kommunikation von Bankautomaten oder der digitalen Zeitsynchronisierung. Das Hauptproblem ist, dass Netzwerke fehleranfällig sind. Ein Knotenpunkt kann zum Beispiel ausfallen oder angegriffen werden. Trotzdem möchte man die Information in einem fehlerbehafteten Netzwerk sicher transportieren. Je nachdem, welche Aufgaben die Netzwerke ausführen, gibt es dafür unterschiedliche Lösungsstrategien.

Ein berühmtes Beispiel ist das Problem der byzantinischen Generäle. Angenommen, mehrere Generäle haben mit ihren Soldaten eine Festung umzingelt, um sie einzunehmen. Allerdings haben sie nur eine Chance, falls sie alle gleichzeitig angreifen, da die gegnerische Seite eine große Armee hat. Die Generäle müssen sich also abstimmen: Entweder sie greifen am Abend an oder kehren zu ihrer Basis zurück. Da sie sich an verschiedenen Orten befinden, sagt der oberste Befehlshaber der am nächsten befindlichen Truppe Bescheid, diese meldet die Entscheidung dann der nächsten Gruppe und so weiter. Allerdings könnten sich einige der Generäle mit dem Feind verbündet haben und falsche Informationen weitergeben. Das kann fatale Folgen haben: Falls ein kleiner Teil der Truppen angreift, werden sie den Kampf sicher verlieren.

Aus mathematischer Sicht bilden die byzantinischen Generäle ein Netzwerk (die verteilten Truppen), wobei einige der Knoten falsche Informationen weitergeben (die Verräter). Die Frage ist also, ob es eine Methode gibt, einen Konsens (Angriff oder Rückzug) zu erhalten, selbst wenn einige der Knoten kompromittiert sind. Das Problem hat der Informatiker Leslie Lamport zusammen mit zwei Kollegen im Jahr 1982 untersucht: Falls weniger als ein Drittel der Generäle kompromittiert sind, lässt sich stets ein Weg finden, sich auf eine Strategie zu einigen. Das kann allerdings extrem aufwändig sein: Im Prinzip müssten sich fast alle Truppen mit jeder anderen austauschen. Sobald aber ein Drittel oder mehr Generäle mit dem Feind verbündet sind, ist die Angelegenheit hoffnungslos – es gibt keine sichere Möglichkeit, einen Konsens zu erreichen.

Damit scheidet diese Lösung für Bitcoin aus: Es könnten theoretisch mehr als ein Drittel der Knotenpunkte unterschiedliche Blockchain-Versionen besitzen. Und selbst wenn nicht, würde es viel zu lange dauern, dass sich alle Nutzerinnen und Nutzer austauschen und einigen, mit welchem Block man die Blockchain weiter aufbaut, da in der Zwischenzeit neue Blöcke generiert werden.

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.

Sich auf eine Blockchain einigen | Wenn eine Gabelung entsteht, kann man sich auf eine Kette einigen, indem man sich zum Beispiel immer für die längste entscheidet (rot umrandet).

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

Wir freuen uns über Ihre Beiträge zu unseren Artikeln und wünschen Ihnen viel Spaß beim Gedankenaustausch auf unseren Seiten! Bitte beachten Sie dabei unsere Kommentarrichtlinien.

Tragen Sie bitte nur Relevantes zum Thema des jeweiligen Artikels vor, und wahren Sie einen respektvollen Umgangston. Die Redaktion behält sich vor, Zuschriften nicht zu veröffentlichen und Ihre Kommentare redaktionell zu bearbeiten. Die Zuschriften können daher leider nicht immer sofort veröffentlicht werden. Bitte geben Sie einen Namen an und Ihren Zuschriften stets eine aussagekräftige Überschrift, damit bei Onlinediskussionen andere Teilnehmende sich leichter auf Ihre Beiträge beziehen können. Ausgewählte Zuschriften können ohne separate Rücksprache auch in unseren gedruckten und digitalen Magazinen veröffentlicht werden. Vielen Dank!

Partnerinhalte

Bitte erlauben Sie Javascript, um die volle Funktionalität von Spektrum.de zu erhalten.