Skip to main content

Was ist Mining?

Was ist Mining?
Das Wichtigste in Kürze:
  • Digitale Informationen können beliebig vervielfältigt werden, weshalb digitales Geld immer dem grundlegenden Problem von doppelten Ausgaben ausgesetzt ist.
  • Das Bitcoin-Netzwerk löst dieses Problem mithilfe von Proof of Work, einem Mechanismus, um geleistete Arbeit rein digital nachzuweisen.
  • Das „Suchen“ nach einem gültigen neuen Block ist vergleichbar mit einem simplen Würfelspiel, bei dem eine kleine Zahl gewürfelt werden muss.
  • Der eigentliche Sinn von Mining liegt in der Sicherung des Netzwerks, wofür mit der Ausschüttung neuer Bitcoin ein Anreiz geschaffen wird.

Warum Mining?

Digitale Information hat bezüglich ihrer Einzigartigkeit keinen Wert. Sämtliche Daten, die beispielsweise auf einer Festplatte gespeichert sind, können ohne großen Aufwand so oft vervielfältigt werden, wie man möchte – ohne überhaupt einen Unterschied zwischen Original und Kopie erkennen zu können.

Was normalerweise extrem praktisch ist, stellt sich als fundamentales Problem heraus, sobald man ein rein digitales Geld schaffen möchte. Irgendwie muss schließlich verhindert werden, dass dieses einfach kopiert und damit doppelt ausgeben werden kann. Diese Eigenschaft von digitalem Geld ist als Double-spending Problem bekannt und, zumindest theoretisch, nicht lösbar.

Der digitale Euro kann auf dem Desktop nicht funktionieren

Die zentrale „Lösung“

Die wohl einfachste Möglichkeit, doppelte Ausgaben zu verhindern ist die Einführung einer zentralen Kontrollinstanz, wie z.B. einer Bank, die für jede Transaktion entscheidet, ob sie ausgeführt werden darf oder nicht. Dies funktioniert so lange gut, bis die zentrale Instanz ihre Macht in irgendeiner Form ausnutzt, entweder aus eigenem Willen oder weil sie dazu gezwungen wird. Zensur von Transaktion, Kontoschließungen oder gar Enteignungen sind die früher oder später unvermeidbare Folge.

Eine dezentrale Alternative, die von niemandem direkt kontrolliert werden kann und resistent gegen Zensur und Manipulation ist, scheint auf den ersten Blick nahezu unmöglich. Aber eben nur auf den ersten Blick.

Proof of Work

Satoshi Nakamoto stellte im Oktober 2008, mit dem Bitcoin-Whitepaper, einen Mechanismus für ein dezentrales, rein digitales, Zahlungsnetzwerk vor und damit auch einen Ansatz das Double-spending Problem zu lösen. Mittels Proof-of-Work-Mining soll sichergestellt werden, dass niemand doppelte Ausgaben durchführen kann und Änderungen an der Transaktionshistorie rückwirkend nahezu unmöglich sind. Doch wie genau soll das funktionieren?

Um Bitcoin-Mining zu erklären, werden eigentlich immer Analogien zu Hilfe genommen. Das fängt schon beim Namen selbst an. Der Vergleich zum klassischen Abbau von Gold (engl. Gold mining) ist für ein tiefgreifendes Verständnis zwar viel zu ungenau, transportiert aber dennoch eine grundlegende Eigenschaft: Es ist zunehmend mit hohem Aufwand und Kosten verbunden, neue Bitcoin zu finden. Doch da hört die Analogie auch bereits wieder auf. Denn der übergeordnete Zweck von Bitcoin-Mining ist nicht das Finden neuer Bitcoin, sondern die Sicherheit des Netzwerks.

Es gibt keine „Bitcoins“

Gold ist eine seltene und damit knappe Ressource. Das ist jedem fast schon wie ein Naturgesetz bekannt; in der realen Welt ist Knappheit schließlich nichts Ungewöhnliches. Genau umgekehrt ist es im Digitalen. Wie ganz am Anfang im Beispiel gezeigt, kann Geld nicht digital im „Dateiformat“ vorliegen, zumindest nicht ohne beliebige Vervielfältigung zu verhindern. Es gibt dementsprechend auch gar keine „Bitcoins“, die wie Goldbarren, auf Festplatten von Computern herumliegen.

Das Bitcoin-Netzwerk ist ein Zusammenschluss aus tausenden Computern, die sich alle über ein Regelwerk einig sind. Sie sind sich nicht nur über diese Regeln, sondern auch über die Historie aller vergangenen Transaktionen einig, welche wiederum natürlich diese Regeln erfüllen.

Die „Innovation“ Blockchain

Die Transaktionen sind in Datenblöcken zusammengefasst und chronologisch miteinander verkettet. Hier kommt das berühmt-berüchtigte Buzzword „Blockchain“ ins Spiel. Anders als häufig dargestellt ist eine Blockchain allerdings keine spannende Innovation, sondern vielmehr Mittel zum Zweck. Das Prinzip, Datenblöcke miteinander zu verketten, sodass Änderungen an einem Block alle darauf folgenden Blöcke fortlaufend beeinflussen, wurde auch schon vor Bitcoin in verschiedenen Bereichen der Informatik und Kryptografie angewendet.

Die Innovation liegt stattdessen im Mechanismus, der darüber entscheidet, wann die Blockchain um einen neuen Block erweitert werden darf und welche Kette überhaupt die Gültige ist. Mit Proof of Work, also wörtlich übersetzt einem Arbeitsnachweis, wird genau das ermöglicht. Ohne zentrale Zwischeninstanz, alleine mithilfe von Mathematik und spieltheoretischen Anreizen.

Mit Würfeln spielen

Bitcoin-Mining auf technischer Ebene zu erklären ist die einzige Möglichkeit, alle wichtigen Aspekte miteinander zu verbinden, um ein tiefes und vollständiges Verständnis zu ermöglichen. Trotzdem wollen wir uns zunächst über eine Analogie an das Thema herantasten. Dafür meiden wir die verbreiteten Geschichten vom Lösen von Sudokus und Lottospielen, denn es gibt eine viel bessere: ein einfaches Würfelspiel!

Im Folgenden schauen wir uns also den Prozess an, der darüber entscheidet, wann ein Miner einen gültigen Block „gefunden hat“, diesen an die bestehende Kette anhängen und sich dafür eine Belohnung auszahlen darf.

Klein gewinnt

Stellen wir uns beispielhaft einen 1000-seitigen Würfel vor. In der Praxis wäre so ein Würfel wahrscheinlich etwas unhandlich, aber wir sind ja nicht umsonst im Digitalen unterwegs, wo das Erzeugen von Zufallszahlen zwischen 1 und 1000 kein Problem darstellt.

Um das Spiel zu gewinnen, muss eine Zahl gewürfelt werden, die kleiner als ein vom Spielleiter festgelegter Zielwert ist. Beispielhaft setzen wir diesen einfach mal auf die Zahl 10. Alle Spielteilnehmer beginnen nun also fleißig zu würfeln, bis jemand Glück hat und eine Zahl zwischen 1 und 10 gewürfelt hat.

Jemand hat nach einigen Versuchen die Zahl 7 gewürfelt und damit diese Runde des Spiels gewonnen.

Eine Spielteilnehmerin, nennen wir sie Alice, kann ihre Gewinnchance jetzt durch häufigeres Würfeln erhöhen. Die Wahrscheinlichkeit pro Wurf bleibt dabei zwar in diesem Fall immer gleich, doch je öfter gewürfelt wird, desto höher ist die Wahrscheinlichkeit in einem bestimmten Zeitraum eine gültige Zahl zu würfeln.

Schwierigkeitsanpassung

Alice spielt das Spiel allerdings nicht alleine, das wäre schließlich ziemlich langweilig. Alle anderen Spielteilnehmer kommen früher oder später auch auf die Idee, die Anzahl an Würfen pro Sekunde zu erhöhen, um mit Alice mitzuhalten. Das Spiel wird entsprechend viel häufiger gewonnen, da in der gleichen Zeit häufiger gewürfelt wird. Irgendwann ist das Spiel dann zu einfach.

Der Spielleiter kann glücklicherweise die Schwierigkeit des Spiels sehr leicht anpassen, indem er den Zielwert verändert. Erhöht er diesen, wird das Spiel leichter. Senkt er ihn, wird es entsprechend schwieriger, eine gültige Zahl zu würfeln:

Nach der Schwierigkeitsanpassung geht es durchschnittlich länger bis man eine gültige Zahl (jetzt kleiner als 5) gewürfelt hat. Das Spiel wurde schwerer.

Da sich hinter diesem Spiel nichts als Mathematik und Wahrscheinlichkeitsrechnung verbirgt, kann der Zielwert sehr genau auf eine gewünschte Schwierigkeit eingestellt werden. Dazu schaut man sich einfach die letzten Spielrunden an, also wie lange es jeweils gedauert hat bis eine gültige Zahl gewürfelt wurde. Will man dann einen durchschnittlichen Zeitabstand von beispielsweise 10 Minuten einhalten, muss man entsprechend den Zielwert erhöhen, oder senken.

Bei einem Würfelspiel kann man natürlich auch einfach Glück haben. Egal wie schwierig das Spiel sein mag, theoretisch kann man es mit einem einzigen Wurf gewinnen. Im Bitcoin Netzwerk ist das nicht anders. Auf lange Sicht und bei einem niedrig gewählten Zielwert kommt dies allerdings auch äußerst selten vor.

Gezinkte Würfel?

Leider stößt auch unsere Würfelspiel-Analogie langsam an ihre Grenzen. Denn während man das Prinzip an sich zwar genau so im Bitcoin-Netzwerk wiederfindet, haben wir dennoch ein Problem: Womit wird überhaupt gewürfelt? Wie wird sichergestellt, dass niemand vortäuschen kann, eine kleine Zahl gewürfelt zu haben? Selbst wenn eine kleine Zahl tatsächlich gewürfelt wurde, wie soll das verifiziert werden? Und vor allem: Wer bestimmt den Zielwert?

Die technische Realität

Im Bitcoin-Netzwerk wird natürlich nicht mit einem Würfel gewürfelt, sondern mit der kryptografischen Hashfunktion SHA-256. Diese Funktion hat einige besondere Eigenschaften, die es uns ermöglichen, das Würfelspiel von eben auf die Spitze zu treiben.

Denn anders als bei einem Würfel erzeugt die Hashfunktion selbst keine „zufälligen“ Werte, sondern eher so etwas wie einen Fingerabdruck. Eine gleiche Eingabe führt also stets zur gleichen Ausgabe. Das kann man sich vorstellen, als würde man bei einem echten Würfel die exakten physikalischen Parameter des Wurfes kennen und wiederholen. Der Würfel würde dann theoretisch immer wieder beim gleichen Ergebnis landen.

Probiere es hier einfach mal aus und überprüfe, ob der hier angegebene Hashwert, also das Ergebnis aus der Hashfunktion, tatsächlich zur Eingabe „Blocktrainer“ passt:

Ein Hashwert ist nichts anderes als eine ziemlich große Zahl. SHA-256 hat nämlich keine 1000 Seiten, sondern schlappe 2256. Diese Zahl ist vergleichbar mit der Menge an Atomen im sichtbaren Universum.

Drei weitere wichtige Eigenschaften lauten:

  • Urbildresistenz: Eine Hashfunktion ist eine sogenannte Einwegfunktion, die es bei einem gegebenen Hashwert rechentechnisch unmöglich macht, auf die ursprüngliche Eingabe zurückzurechnen.

  • Diffusion: Auch als „Lawineneffekt“ bekannt, sorgt eine gute Diffusionseigenschaft dafür, dass kleine Veränderungen in der Eingabe Einfluss auf viele Stellen in der Ausgabe haben. Ähnliche Eingaben führen also zu vollkommen unterschiedlichen Hashwerten.

    Unter anderem deshalb ist der Vergleich zu einem herkömmlichen Würfel sinnvoll, da man vor dem ersten Berechnen eines Hashwertes nie wissen kann, was herauskommt. Man muss es wie bei einem Würfel ausprobieren.

  • Kollisionsresistenz: Da mit einer Hashfunktion theoretisch unendlich viele Eingabemöglichkeiten auf eine begrenzte Anzahl Ausgaben abgebildet werden können, gibt es natürlich zwangsläufig Kollisionen, also zwei unterschiedliche Eingaben, die den gleichen Hashwert erzeugen (Schubfachprinzip). Da der Zahlenraum, in dem wir uns hier bewegen, aber so unvorstellbar groß ist, können wir diesen Ansatz vernachlässigen.

    Stattdessen setzt die Kollisionsresistenz voraus, dass es keinen effizienten Ansatz geben darf, um eine Kollision zu finden. Die Hashfunktion darf in ihrer Struktur also keine Schwachstellen aufweisen, die man ausnutzen könnte.

Blöcke würfeln

Aber was machen die Miner denn jetzt eigentlich? Diese Frage können wir nun endlich richtig beantworten!

Ein Miner ist zunächst eine ganz normale Bitcoin Node, also ein Teilnehmer im Netzwerk, der Transaktionen erhält, verifiziert und weiterleitet. Mit diesen, noch nicht bestätigten, Transaktionen baut er jetzt so etwas wie einen Blockprototyp. Dieser Prototyp hat alles, was ein gültiger Bitcoin Block haben muss; mit einer Ausnahme: Er hat noch keinen gültigen Arbeitsnachweis.

Wir erinnern uns: Das Ergebnis einer Hashfunktion ist einfach nur eine Zahl. Der Miner jagt also seinen Blockprototyp durch die Hashfunktion und zurück bekommt er eine Zahl, womit ein Würfelversuch beendet ist. Denn auch im Bitcoin-Netzwerk gibt es wie beim Würfelspiel einen Zielwert, der unterschritten werden muss. Hatte der Miner bei diesem Versuch kein Glück, verändert er ein winziges Detail im Blockprototyp und rechnet erneut den Hashwert aus. Wieder kommt eine Zahl zurück, die dieses Mal ziemlich klein ist, was an den führenden Nullen zu erkennen ist:

Erfüllt der Blockhash die aktuellen Spielregeln, hat der Miner einen gültigen Block „gefunden“. Diesen kann er jetzt im Bitcoin-Netzwerk veröffentlichen. Andere Teilnehmer können den Blockhash wiederum selbst berechnen und somit eigenständig verifizieren, ob er den aktuellen Zielwert wirklich unterschreitet. Es ist also nicht möglich einen falschen Hashwert vorzutäuschen, denn dieser hängt schließlich eindeutig vom Block selbst ab.

Der Zielwert kann ebenso wenig manipuliert werden: Jeder Netzwerkteilnehmer kann sich diesen nämlich selbst ausrechnen, indem er sich die Blöcke der vergangenen zwei Wochen anschaut. Daraus kann ermittelt werden, ob das Spiel aktuell zu schwierig oder zu einfach ist.

Einen einzelnen Hashwert zu berechnen, ist für einen Computer kein Problem. Es werden also keine „komplizierten mathematischen Rätsel“ gelöst, sondern es wird einfach nur gewürfelt. Immer und immer wieder. Um nach durchschnittlich 10 Minuten einen gültigen Block zu finden, benötigt das Bitcoin-Netzwerk dafür aktuell ungefähr 400 000 000 000 000 000 000 Versuche, jede Sekunde.

Warum sind rückwirkende Änderungen nicht möglich?

Ändert man rückwirkend etwas an einem Block, verändert sich entsprechend auch der Hashwert. Man würfelt also komplett neu, und der Arbeitsnachweis geht verloren, da man wohl kaum beim ersten Versuch direkt wieder gewinnen wird.

Darüber hinaus würden sich alle nachfolgenden Blöcke ebenfalls verändern, sie sind schließlich miteinander verkettet. Man müsste für eine rückwirkende, gültige Änderung an der Transaktionshistorie also alle Blöcke seit dem Zeitpunkt der Änderung neu auswürfeln. In Anbetracht der aktuellen Schwierigkeit im Bitcoin Netzwerk ist das bereits nach wenigen Blöcken nahezu unmöglich.

Warum schummeln Miner nicht?

Bitcoin-Miner investieren in teure Hardware und benötigen viel Energie, um profitabel am Würfelspiel teilzunehmen. Ein Block mit ungültigen Transaktionen würde trotz gültigem Proof of Work vom Netzwerk abgelehnt werden. Der Miner würde seinen potenziellen Gewinn verlieren und auf seinen Hardware- und Energiekosten sitzen bleiben.

Videos