Im Bitcoin Mining versucht man unterschiedliche Blockinformationen zu hashen, bis das Ergebnis allen Ansprüchen gerecht wird. Der erste Miner, der eine richtige Eingabe generiert (eine korrekte Nonce), darf seinen Block an die Blockchain anhängen und wird mit neuen Bitcoins und den Transaktionsgebühren der im Block enthaltenen Transaktionen belohnt.

Kryptomining – Was machen die Miner eigentlich?

Mining ist einer der Begriffe, die in Gesprächen über Blockchain-Technologie und Kryptowährungen immer wieder auftauchen. Jeder weiß mehr oder weniger, was es bedeutet oder kann zumindest diesen Satz aus einfachen Erklärungen zitieren: “Miners schürfen neue Blöcke indem sie ein mathematisches Puzzle lösen”.

Aber machen sie das wirklich? Es klingt nach ein paar Nerds, die willkürliche Sudokus ausfüllen, um magisches Internet-Geld zu gewinnen. Wie viel stimmt davon? Ist das ganze Konzept vom Mining  so kompliziert, dass “Nicht-Miner” komplett daran scheitern werden? Oder können wir die Thematik runterbrechen und vielleicht sogar ein treffenderes Wort als “Puzzle” finden?

Versuchen wir es mal.

Um alle Einzelheiten durcharbeiten zu können, nehmen wir Bitcoin Mining als Beispiel. Natürlich gibt es auch weitere Blockchains mit angepassten Methoden, anderen Parametern und ihre eigenen Begrifflichkeiten. Wir wollen nur das grundsätzliche wie-und-warum von Mining, sowie die Beziehung zwischen den Transaktionen und dem “Puzzle” verstehen.

Proof of Work

Wenn wir über Mining reden, beziehen wir uns in der Regel auf Proof of Work (PoW), direkt übersetzt der Arbeitsnachweis. Diese Verifizierungsmethode wird in vielen bekannten Kryptowährungen verwendet – Bitcoin und Ethereum sind die bekanntesten. Proof of Work wurde in den Neunzigern als Schutzmittel gegen E-Mail Spam und DoS-Attacken entwickelt. PoW verzögert die Ausführung von Diensten (services wie z.B. das Versenden von einer Mail), indem es bei der Anfrage eine kleine Rechenleistung verlangt.

In der Praxis funktioniert es wie folgt:

Alice will Bob alles Gute zum Geburtstag wünschen. Sie schreibt ihre Nachricht, gibt Bobs Mail-Adresse ein und klickt auf senden. Das ist eine service request oder Dienstanfrage. Bevor die Nachricht tatsächlich versendet wird, muss Alices Laptop eine Rechenleistung erbringen, die etwas Zeit und etwas Kapazität beansprucht. Bei einer einzigen Nachricht ist der Aufwand nicht so groß und Alice wird die verzögerung wahrscheinlich nicht bemerken.

BILD ALICE MAIL BOB “Alice sendet ihre Geburtstagsgrüße”
BILD ALICE MAIL BOB “Alice sendet ihre Geburtstagsgrüße”

Carl tut so, als wäre er ein nigerianischer Prinz mit 2 Millionen Euro auf der Bank. Er braucht nur noch einen neuen Freund, der ihm Geld überweist, so dass er an sein Vermögen herankommen kann. Er schreibt seine Verzweifelte Anfrage, trägt 1.000 Adressen ein und klickt auf senden. Diesmal sind es also 1.000 service requests. Die Rechenleistung für das Versenden muss 1.000 Mal aufgebracht werden. Carls blöder alter Desktop hustet und stürzt ab.

BILD CARL MAIL “Carl scheitert als nigerianischer Prinz”
BILD CARL MAIL “Carl scheitert als nigerianischer Prinz”

Ok – und was schützen wir auf der Blockchain?

In Kryptomining wird PoW verwendet, um die Blockchain vor Spam und Manipulationen zu schützen. Die Rechenleistung wird nicht von den normalen Benutzern verlangt, wenn sie ihre Transaktionen machen. Es sind Miner, die mit geballter Leistung versuchen, die neuen Blöcke und damit neue Bitcoins zu schürfen. Um diesen Prozess nachzuvollziehen, müssen wir ein paar Dinge verstehen: Blockchain, Blockstruktur und kryptographisches Hashing.




OMG, das klingt voll schwierig. Müssen wir das unbedingt machen?

Ähhhhh… Ja. Aber es ist nicht so krass, wie es jetzt noch klingt. Auch Menschen ohne Informatik-Hintergrund können alles über das Mining lernen. Solange wir winzige Schritte machen und uns nicht zu sehr in Details verlieren, schaffen wir das locker. Wenn du die Grundlagen verstanden hast, kannst du dich im Anschluss durch tiefergehende Beiträge googeln. Wir legen erstmal los mit der Blockchain, denn die ist gar nicht so schwer zu verstehen.

Die Blockchain

Die Blockchain wurde für die dezentralisierte und transparente Speicherung von unveränderlichen Daten entwickelt. Dies war das eigentliche  Ziel und die Basisform der Blockchain macht auch genau das. Lass uns die einzelnen Begriffe aus dem Satz mal unter die Lupe nehmen und schauen, wie weit wir kommen.

  1. Daten

Daten auf der Blockchain können jegliche Art von Informationen enthalten. Auf der Bitcoin Blockchain finden wir hauptsächlich Transaktionsdaten in der Form “Alice sendet Betrag x an Bob um 16:30 Uhr”. Dann gibt es noch ergänzendes Zeug – der Beweis, dass Alice ausreichend Bitcoin hat und noch ein paar Block Infos, über die wir später nochmal sprechen.

Die Technologie wurde natürlich von cleveren Menschen mit guten Ideen weiterentwickelt und jetzt sind die Möglichkeiten fast unbegrenzt. Du kannst deine persönlichen Daten speichern (für Behörden oder online Identifikation), Produkte und Produktionsketten verfolgen (Autos, ökologisches Tropenholz, Schokokekse) oder Chipnummern und Infos eintragen (Haustierregistrierung, Nashörner-Beobachtung).

Beispiel für Daten auf der Blockchain
Beispiel für Daten auf der Blockchain
  • Dezentralisiert

Dezentralisiert oder “distributed” wurde rasch zum Zauberwort für so ungefähr alles, was sich online abspielt. Es bedeutet, dass Daten nicht auf einem zentralen Server oder Computer gespeichert werden, sondern viele Kopien an unterschiedlichen Orten liegen. Diese sind alle miteinander verbunden. Sobald eine neue Information hinzugefügt wird, werden alle Kopien aktualisiert.

Lass dich aber nicht verwirren! Der Begriff wird auch für Kryptowährungen im Allgemeinen verwendet. Dann geht es aber darum, dass nicht eine zentrale Bank die Währung bestimmt und Münzen prägt. In diesem Artikel konzentrieren wir uns auf die Kopien, die überall herumliegen.

Dezentralisierte Speicherung
Dezentralisierte Speicherung
  • Unveränderlich

Sind die Daten einmal auf die Blockchain gepackt, können sie nicht mehr verändert oder gelöscht werden. Da es so viele Kopien gibt, ist es so gut wie unmöglich, die Daten zu manipulieren. Du müsstest dich gleichzeitig in unzählige Server und Rechner hacken und das ganze Netzwerk lahmlegen. Es gibt ein paar theoretische Möglichkeiten, dies zu erreichen, aber die sind ziemlich komplex und für unsere Zwecke erstmal nicht relevant.

Unveränderliche Daten
Unveränderliche Daten
  • Block + Chain = Blockchain

Die Blockchain ist kein Riesenklecks mit Nummern und Code. Transaktionen und andere Infos werden in Blöcke gepackt. Manche Blockchains haben eine feste oder maximale Blockgröße (Bitcoin), andere lassen unterschiedliche Größen zu (Monero).

Wenn ein Block voll oder fertig ist, werden die Miner (so werden sie meistens genannt) ihn abschließen und an die Kette (chain) anhängen. Jeder, der eine Kopie der Blockchain auf seinem Rechner hat, aktualisiert seine Kopie und fügt den neuen Block hinzu.

Block + Chain = Blockchain
Block + Chain = Blockchain

 

 

  • Transparent

Die Daten in der Blockchain können zwar von niemandem angepasst werden, aber jeder mit einem Gerät mit Internetverbindung kann sich die Blöcke anschauen. Ohne Explorer/Tracker (eine Benutzeroberfläche für die Navigation mit vernünftigen Filter- oder Suchoptionen) wirst du aus den Zahlen allerdings nicht schlau werden. So kannst du prüfen, ob z.B. deine letzte Transaktion bereits verifiziert wurde. Lotte stöbert gern durch die Blöcke der letzten Tage auf der Suche nach lustigen Transaktionsbeträgen. Jeder hat so seine Hobbys.

Wenn du die Idee hinter Blockchains kapierst, gibt es Unmengen von Varianten zu entdecken. Die meisten neuen Coins mit eigener Blockchain versuchen, ein spezifisches Problem zu beheben, wie Skalierbarkeit (wie viele Transaktionen verarbeitet werden können) oder Privacy (Bitcoin ist *nicht* anonym). Nano gibt jedem Benutzer eine eigene kleine Chain -> keine Transaktionszeiten mehr. Monero tauscht die Transparenz gegen absolute Anonymität. EOS und NEO stellen Sicherheit und Schutz vor Dezentralität.

Transparente Daten
Transparente Daten

Geil, oder?

Das nächste Ding sind die kryptographischen Hashfunktionen. Das klingt so, als bräuchte man für die Materie mindestens zwei Doktortitel in Technischer Informatik – aber die paar Rosinen, die wir rauspicken sind auch für Anfänger geeignet.  

Hashing

Kryptographisches Hashing – Gesundheit – ist eine Technik für das Komprimieren von Daten. Wie bei der Blockchain machen wir es nicht komplizierter als es sein muss. Stell dir die Funktion wie eine mathematische Black Box vor: du stopfst Zahlen oder Buchstaben rein, *irgendwas Magisches passiert*, und die Funktion spuckt einen String (oder Zeichenkette) mit anderen Zahlen und Buchstaben aus. Es gibt viele unterschiedliche Hashfunktionen. Wir bleiben bei SHA-256, da diese im Bitcoin Mining verwendet wird.

Vier wichtige Aspekte sind:

  1. Die Ausgabe hat immer die gleiche Länge

Ein Hash wird generiert, indem man ein bestimmtes Input durch eine Funktion führt. Wenn wir “Hallo” in die Funktion geben, kommt eine (hexadezimale) Kette mit 64 Zeichen raus:

753692ec36adb4c794c973945eb2a99c1649703ea6f76bf259abb4fb838e013e

Enthalten sind die Zahlen 0-9 und die Buchstaben A-F, auch alphanumerischer Hash genannt.

”Hey, Mining-Anfänger!”

54b0c489dd250f39649822044239d9a6c6c564c0923825e3bd983565afc89091

“Fällt dir irgendwas merkwürdiges an den Hashes auf?”

41b2d0836c15f72bdf7d17d7f838e8f9c4a3c59660dda631e2b54883c5be6605

“Wir könnten den gesamten Roman Krieg und Frieden von Tolstoi hier reinpacken und wir würden trotzdem nur 16 Zeichen zurückbekommen!”

cc2dff5eb51d39237a32b8fcfbce347b28c99f683b5e65429111d65e4cdb494d

Der Umfang vom Input ist nicht relevant für den Umfang der Ausgabe. Die SHA-256 Funktion wird immer einen gleich großen Hash ausgeben. Die Wiedergabe in 64 Nummern und Buchstaben ist für Menschen am besten zu lesen. Roboter mögen die binäre Wiedergabe: 256 Nullen und Einsen. Wir bleiben bei Menschen.

Probier doch mal selber was aus mit den Hashfunktionen unter https://hashgenerator.de/

  • Hashing ist eine Einbahnstraße

Es macht immer Spaß, mit Verschlüsselung herumzuexperimentieren. Gib doch mal einen Satz ein und schau, wie mit jeder kleinen Anpassung – einem Komma, Groß- oder Kleinschreibung oder ein extra Leerzeichen – der Hash sich völlig verändert. Leider bringt es nichts, “Ich liebe dich” zu hashen, um deine Beziehung aufzupeppen. Es gibt keine Möglichkeit, aus dem Hash wieder einen Satz herzustellen. Du wirst die andere Person (und auch Roboter!) nur gründlich verwirren.

Hierin zeigt sich der große Unterschied zwischen kryptographischem Hashing und (end-to-end) Verschlüsselung. Wenn Alice eine Nachricht an Bob sendet, wird die App den Text verschlüsseln, während er zwischen den Telefonen fliegt und ihn wieder entschlüsseln, damit Bob ihn lesen kann. Ist eine Nachricht gehasht, kann das nicht mehr rückgängig gemacht werden.

  • Es ist ganz einfach, einen Hash zu prüfen

Ein Hash kann vielleicht nicht mehr rückwärts durch die Funktion, aber jedes Kind kann prüfen, ob er stimmt. Wenn wir behaupten, dass der Hash von “Bitcoin” 1be005fc380549a1e3a18c8aad6463284cc7d967b8295f82bf9b7852247abb26 ist, checkst du in wenigen Sekunden, dass wir dich knallhart anlügen. Du brauchst nur “Bitcoin” eingeben und den Hash abgleichen. Falls du dich wunderst – der hier oben ist von “Hashtrend” 🙂

  • Merkle Trees sind nur Hash-Pyramiden

Ein Merkle Tree oder Hash-Baum komprimiert Daten mit der Hashfunktion. Der Merkle Tree ist ein wichtiger Bestandteil von jedem Bitcoin Block. Der Baum beinhaltet alle Transaktionen aus dem Block und andere Miner können ihn schnell überprüfen. Den letzten Hash an der Spitze nennen wir Merkle Root (Wurzel).

Hä was? Was hat denn die Bundeskanzlerin damit zu tun?

Gar nix. Es war Ralph Merkle, der die Idee hatte, Daten in einem Baum zu komprimieren. Oder Pyramide – je nachdem, mit welchem Bild du besser zurecht kommst. Sagen wir, dass in einem Bitcoin Block 500 Transaktionen enthalten sind. Das sind 500 Zeilen nach dem Muster “Adresse A schickt x BTC an Adresse B”.

Ralph hätte natürlich einfach die ganze Liste durch die Hashfunktion jagen können. Das würde bedeutend schneller gehen, als einen Baum zu basteln, aber die Formation hat ein paar Vorteile, wenn du gegenüber anderen Minern was nachweisen willst. Was hat er sich einfallen lassen?

Wenn wir 500 Transaktionen aus dem Block in einen Baum packen wollen, beginnen wir mit den einzelnen Zeilen. Die werden erstmal individuell gehasht. Jetzt sitzen also 500 Hashes nebeneinander. Sie bilden die Basis vom Baum bzw. den breitesten Teil der Pyramide.

Im nächsten Schritt machen wir Pärchen. Wir nehmen jeweils zwei Hashes und geben die zusammen in die Hashfunktion ein. Um genau zu sein machen wir Doppel-Hashing – wir geben das Pärchen ein und schicken die Ausgabe nochmal durch:

Hashing der Ergenisse
Hashing der Ergenisse

Lass dich vom extra Schritt bloß nicht durcheinander bringen – so wichtig ist der für uns nun auch wieder nicht. Was du nachvollziehen können musst, ist ein immer schmaler werdender Baum. Durch die paarweise Anordnung hat die zweite Schicht vom Merkle Tree nur die Hälfte der Hashes: 250.

Läuft.

Machen wir das Gleiche nochmal, haben wir noch 125 Hashes. Das ist natürlich ein bisschen doof, denn wir können einen Hash nicht spalten. Um wieder eine gerade Zahl zu bekommen, duplizieren wir den letzten Hash. 125 + 1 = 126. Damit lässt sich was anfangen.

Noch eine Pärchen-Runde und… 63. Dasselbe Problem, dieselbe Lösung. 63 + 1 = 64 und von hier aus halbieren wir uns ohne weitere Hürden durch: runter auf 32, runter auf 16, dann 8, dann 4, hopps zu 2 und schließlich 1. Dieser letzte Hash ist der Merkle Tree Root (Merkle Baum Wurzel).

Eine vereinfachte Merkle Tree / Hash-Baum
Eine vereinfachte Merkle Tree / Hash-Baum

Bist du noch dabei? Fein. Ab jetzt wird es einfacher. Naja, so mehr oder weniger.


Blockstruktur

Es ist nicht nur die Kette, die der Blockchain Struktur gibt. Auch die individuellen Blöcke haben einen festen Aufbau. Ein Block lässt sich in einen Header (Kopf) und den Body (Körper) trennen. Der Header enthält wichtige Informationen zum vorherigen Block, den enthaltenen Transaktionen und ein paar Angaben zum Mining. Im Körper sind die tatsächlichen Transaktionen aufgelistet.

Block Header

Im Block Header sind sechs wichtige Sachen enthalten:

  • Vorheriger Block Hash

Der Hash vom vorherigen Block in der Blockchain hilft uns, den jetzigen Block zuzuordnen. Du als normaler Mensch würdest über einen Explorer einfach auf die Blocknummer gucken, um einzuschätzen, auf welcher Höhe du in der Chain bist. Für Miner ist der vorherige Block Hash praktischer.

  • Merkle Tree Root

Erinnerst du dich noch an Ralph mit seinem Baum? Hier kommt also der Hash von der Spitze, den wir vorhin besprochen haben, hin. Alle Transaktionen, die im Blockkörper aufgelistet sind, werden in Pärchen gehasht und der Merkle Root am Ende wird im Header eingefügt.

  • Ziel (Target)

Das Proof of Work Target ist ein bisschen heikel, da wir es noch nicht richtig besprechen konnten. Der Wert vom Target bestimmt die Schwierigkeit des Minings – quasi auf welchem Niveau gearbeitet wird. In der Praxis schreibt die Zahl vor, wie viele Nullen am Anfang vom Block Hash stehen müssen. Wir werden gleich noch darauf zurückkommen.

  • Zeitstempel (Timestamp)

Der Zeitstempel enthält das Datum und die Uhrzeit, zu der der Block erstellt wurde. Ein Miner sucht sich immer einen Zeitpunkt in den nächsten zwei Stunden aus. Das liegt daran, dass die Angabe zunächst einen Platzhalter in einem Dummy-Block ist und nicht die exakte Zeit der Einreihung in die Blockchain. Allerdings darf die Zeit weder in der Vergangenheit, noch mehr als zwei Stunden in der Zukunft liegen.

  • Version

Version bezieht sich auf die Softwareversion oder das Protokoll, mit dem der Miner gearbeitet hat.

  • Nonce (number used once)

Die Nonce ist der einzige Eintrag im Header, der variabel ist. Sie besteht aus 10 Zahlen – zunächst ist die Standardeinstellung 10 x 0. Im Mining wird die Nonce vom Miner immer wieder neu generiert, bis eine richtige Zahl gefunden wurde. Klingt noch merkwürdig, aber wir kommen gleich zum Punkt. Versprochen.

6 Komponenten des Blockheaders
6 Komponenten des Blockheaders

Blockkörper (Body)

Der Blockkörper besteht aus Transaktionen. Diese erscheinen als Strings mit den Wallet-Adressen von Sender und Empfänger, die Beträge in BTC, Signaturen und noch ein paar andere Infos, auf die wir an dieser Stelle nicht weiter eingehen müssen.

Es gibt keine feste Anzahl von Transaktionen pro Block in der Bitcoin Chain. Es gibt nur eine Obergrenze in der Blockgröße: 1 MB. Miner werden immer versuchen, so viele Transaktionen wie möglich in einen Block zu pressen, um mehr Transaktionsgebühren abzusahnen. Ansonsten ist es für den Miner völlig irrelevant, wer wem was überweist.

Also nochmal: Was ist Mining?

Wir schleichen uns jetzt schon seit Ewigkeiten an das Thema heran – jetzt können wir das Rätsel endlich lösen. Was machen die Miner eigentlich? Sie versuchen herauszufinden, welche Zahlen die Nonce haben muss, um einen bestimmten Hash zu ergeben. Ja, wir haben gesagt, dass es unmöglich ist, die Eingabe von einem Hash wiederherzustellen. Aber Mining ist keine Zauberei. Miner entschlüsseln gar nichts.

Sie raten, raten und raten noch eine Runde.

Wie denn? So: Im ersten Schritt erstellt der Miner einen candidate block. Das ist quasi eine Vorlage, die vom Miner “ausgefüllt” wird. Derjenige, der als erste einen Block fertig hat, hängt ihn an die Blockchain. Die anderen Miner verwerfen ihre Kandidat-Blöcke und fangen wieder neu an.

Im zweiten Schritt fügt der Miner die wichtigste Transaktion (bzw. den wichtigsten Befehl) in den Block ein: überweise 12,5 Bitcoins (die jetzige Block-Belohnung) + sämtliche Transaktionsgebühren aus dem Block an das Wallet des Miners. Dies nennt sich die coinbase transaction. Es gibt keinen Sender, da es sich hier um die neu entstandenen Bitcoins handelt und nicht um eine normale Überweisung. Die Transaktionsgebühren der im Block enthaltenen Transaktionen werden direkt mit der Belohnung mitgeschickt. Wenn jede Transaktion in Überweisung und Gebühr gespaltet werden müsste, würde das zu viel Platz im Block einnehmen.

Nachdem der Miner sein potentielles Einkommen vom Block gesichert hat, kann er Transaktionen in den Blockkörper einfügen. Transaktionen, die bereits im letzten Block der Blockchain verifiziert wurden, müssen herausgefiltert werden. Wenn der Körper voll ist (der Block darf insgesamt ja nicht größer als 1MB werden), können die sechs Punkte im Header ausgefüllt werden.

Erinnerst du dich noch? Der Hash vom vorherigen Block wird einfach kopiert und eingefügt. Das funktioniert mit dem Target meistens genauso. Für den Merkle Tree Root hasht der Miner die Transaktionspärchen. Für den Zeitstempel wählt er eine Uhrzeit in den nächsten zwei Stunden – die genaue Erstellungszeit vom Block ist nicht so wichtig. Die Version hängt von der Software bzw. dem Protokoll ab. Die Nonce steht zunächst auf 0000000000.

Wenn der Miner alle Informationen im Block Header durch die SHA-256 Funktion drückt, kommt wie gehabt ein 64 Zeichen langer alphanumerischer Hash raus.

Und hier kommt der Target ins Spiel.

Der Proof of Work Target ist ein Faktor, den Miner beim Hashen immer beachten müssen. Er bestimmt, wie viele Nullen am Anfang vom Hash stehen müssen. Je mehr Nullen am Anfang erforderlich sind, desto schwieriger ist es, einen korrekten Hash zu generieren.

Wenn wir Bitcoin Block #445566 als Beispiel nehmen, sehen wir den folgenden Block Hash: 00000000000000000331ab3efa91b7dc3dfbe0164456b5d35a285af8358f4724. Das sind 16 Nullen am Anfang. Ältere Blöcke haben in der Regel weniger Nullen am Anfang, da die Schwierigkeit (difficulty) niedriger war. Zukünftige Blöcke werden wahrscheinlich immer mehr Anfangs-Nullen brauchen.

Aber wie sorge ich dafür, dass aus der Funktion ein richtiger Hash aufploppt?

Simpel: einfach den Wert der Nonce anpassen. Da die Hashfunktion keiner vorhersagbaren Formel folgt, gibt es keine Möglichkeit, die Nonce vernünftig anzupassen. Deswegen gestaltet sich das Mining wie eine brute force Attacke: die Rechner schmeißen so viel wie möglich Nonces an die Funktion heran, bis ein Hash mit ausreichend Anfangs-Nullen gefunden wird. Je mehr Hashes eine Maschine schnell generieren kann, desto höher die sogenannte Hashrate.

Wenn wir versuchen, den Prozess optisch darzustellen, kommt folgendes raus:

Nonce finden
Nonce finden

Der erste Versuch hat nicht geklappt: der Hash fängt mit 15 an. Mit dem angepassten Nonce im zweiten Versuch hatte der Miner Glück: Der Hash hat die notwendigen Anfangs-Nullen.

Sobald ein guter Hash gefunden wurde, wird der Block ins Netzwerk geschickt. Andere Miner werden prüfen, ob:  

  •        … der Block Hash unter dem Target ist (ausreichend Anfangs-Nullen hat)
  •        … der Block nicht größer als 1MB ist (bei Bitcoin)
  •        … der Zeitstempel nicht mehr als 2 Stunden in der Zukunft liegt
  •        … die erste Transaktion die coinbase transaction ist
  •        … die Transaktionen gültig sind (und nicht aus dem vorherigen Block kopiert)

Stimmt alles, dann werden alle Miner den neuen Block übernehmen. Der Block wird an die Blockchain angehängt und die Daten können nicht mehr verändert oder gelöscht werden. Der Wettbewerb um den nächsten Block geht los: Kandidat-Blöcke mit coinbase transactions und neuen Transaktionen werden erstellt, die Parameter im Block Header ausgefüllt und… Auf die Plätze, fertig, los!

Bei Bitcoin dauert es etwa 10 Minuten, bevor ein neuer Block geschürft wird. Um sicherzustellen, dass die Zeit immer mehr oder weniger gleich bleibt, wird der Target (und damit die Schwierigkeit) alle 2016 Blöcke angepasst. Durch neue Hardware mit höheren Hashraten kann es vorkommen, dass weniger als 10 Minuten gebraucht werden. Der Target wird dann erhöht. Wenn die Blockzeit mehr als 10 Minuten beträgt, wird die Schwierigkeit heruntergesetzt. Das kommt nicht oft vor. Die Entwicklung der Schwierigkeit von Bitcoin sah in den letzten Monaten so aus:

Bitcoin Mining Schwierigkeit (Difficulty)
Bitcoin Mining Schwierigkeit (Difficulty) letzten 3 Monate

Einen interaktiven Chart findest du: hier

Der Anreiz zum Mining

Jetzt wissen wir, was die Miner so treiben und es bleibt nur noch die Frage: warum? Schauen wir zunächst auf die Blockchainphilosophie. Wie die meisten von uns wissen, veröffentlichte Satoshi das Bitcoin Konzept als Alternative zu den traditionellen Banken. Sein Ziel war es, eine digitale Währung ohne zentrale Autorität, auf die man sich verlassen muss, zu entwickeln.   

Das magische Wort: Dezentralisierung.

Weißt du noch, die ganzen Blockchain-Kopien, die überall (distributed) auf unterschiedlichen Servern liegen? Das braucht es für die Dezentralisierung einer Kryptowährung auch. Erstens müssen die Coins verteilt sein. Wie bei Murmeln gilt: wenn eine Person alle besitzt, haben sie keinen Wert mehr – spielen geht nur mit mehreren Teilnehmern. Je mehr Menschen Coins besitzen und als Zahlmittel verwenden, desto gesünder ist die Währung.

Dasselbe gilt für die Miner. Je mehr Miner oder Gruppen es gibt, desto dezentralisierter ist die Kryptowährung. Miner verifizieren Transaktionen im Wettbewerb um den nächsten Block – welche Adressen und Beträge in den Transaktionen enthalten sind, ist für sie nicht interessant. Diese Details haben keinen Einfluss auf den Verdienst. Deswegen erlaubt Proof of Work Mining vertrauenslose Transaktionen: keine wird von den Minern aus persönlichen oder politischen Gründen blockiert.   

Solange Mining-Kapazitäten verteilt sind, kann niemand bestimmte Transaktionen zensieren oder anpassen. Um dies zu machen, müssten mehr als die Hälfte der Miner gleichzeitig ausgeschaltet werden – eine sogenannte 51% Attacke. Die ist bei einer gesunden Dezentralisierung so gut wie unmöglich.

Wie schön das aber in der Theorie klingen mag – es gibt sehr wohl bedrohliche Entwicklungen, die die Dezentralisierung gefährden können. Zu Beginn der Bitcoin Blockchain war es (für Menschen mit den notwendigen technologischen Kenntnissen) möglich, mit mehr oder weniger haushaltsüblichen Rechnern zu schürfen. Schnell wurde festgestellt, dass sich Grafikkarten (GPU) besser für die Arbeit eigen, als die normalen Prozessoren (CPU). Miner mit guten Grafikkarten hatten eine größere Chance, neue Blöcke zu schürfen.

Selbstverständlich hat auch die Tech-Industrie diese Möglichkeit nicht liegen lassen. Avancierte und kostspielige  Application-Specific Integrated Circuits (ASICs) wurden für das Mining entwickelt. Je reicher der Miner ist, desto mehr Geld kann er in professionelles Equipment investieren und damit wieder effizienter minen. Bald taten sich Miner in Pools zusammen, um ihre Kräfte zu bündeln und die Profite zu teilen.

Aber Miner sind nicht nur Dezentralisierungshelden. Sie können auch ordentlich verdienen.

Mit jedem neuen Block werden 12,5 Bitcoins kreiert und diese werden direkt dem Miner des Blocks überwiesen. Die Belohnung war zunächst 50 BTC und wird immer nach 210.000 Blöcken halbiert. Bis insgesamt 21 Millionen Bitcoin geschürft wurden, wird dieser Trend fortgeführt. Über die Blockbelohnung hinaus erhalten die Miner auch die Transaktionsgebühren aus dem Block. Diese können immer wieder etwas variieren.

Schaffung von Bitcoin über die Zeit mit den Halbierungen der Belohnung für Miner
Schaffung von Bitcoin über die Zeit mit den Halbierungen der Belohnung für Miner

Die Wirtschaftlichkeit vom Mining

Die 12,5 BTC pro Block klingen wie eine Autobahn ins Lamboland, aber bevor du die Farbe von deinem neuen Huracán aussuchst, solltest du die Gewinnmargen deiner Geschäftsidee prüfen. Wenn du nicht vor Jahren schon eingestiegen bist, erwartet dich eine ordentlich Konkurrenz.

Mining-Anfänger probieren in der Regel zunächst mit ihrer eigenen Hardware zu schürfen und kommen bereits schnell zu der Schlussfolgerung, dass der alte Laptop nur ein paar Cent am Tag reinbringt. Niedlich, aber keine echte Alternative zu deinem jetzigen Job. Wer sich aber vom Mining-Virus hat anstecken lassen, switcht schon bald auf Cloud-Mining. Ein gutes Cloud-Mining Paket bietet dir eine bestimmte Hashleistung für einen festen Preis. Du mietest im Grunde genommen die Hardware von jemand anders und trägst keine bzw. kaum Risiken.  

Wenn du aber nichts teilen willst, wirst du dein Sparschweinchen zerschmettern müssen.

Eine Mining-Farm aus dem Nichts aufzubauen ist eine riesige Investition – sie kostet viel Zeit, Kapital und Stress. Es braucht eine Halle mit Klimaanlage, ASICs oder CPUs, Lösungen für die Energieversorgung – und Unmengen von Strom. Bei normalen Haushaltspreisen werden die Stromrechnungen deiner Farm alle Rahmen sprengen. Deswegen weichen die meisten Miner in kältere Regionen aus und bauen ihre Farm in der Nähe von einem Kraftwerk, das einen guten Preis für Prepaid Strom verlangt.

Wenn die Farm einmal läuft und die Mining Rigs ordentlich überwacht werden, machen sie 24/7 ihr Ding. Gehen wir davon aus, dass dein Equipment modern genug ist, dann wird die Hashpower deiner Farm für ausreichend viele Blöcke mit Belohnung sorgen, um einen Gewinn zu machen. Entscheidend für deine Wettbewerbsfähigkeit ist die Minimalisierung der Time-to-Mine (die Zeit zwischen der Lieferung und Inbetriebnahme einer Mining Maschine > Set-Up, Konfiguration) und der Downtimes, währenddessen die Maschinen nicht aktiv schürfen.

Aber lass uns die Hardware für den nächsten Artikel aufheben.

Jetzt hast du erstmal ein gewisses Grundwissen über Proof of Work und Bitcoin Mining. Willst du noch mehr lernen, oder vielleicht selber loslegen? Check dann die Seite hashtrend.ch, folge dem Projekt in den social media und werde deine Fragen los.

Ach übrigens…

Achte bitte darauf, dass Mining Einnahmen normalerweise als Teil deines Einkommens behandelt werden und das für dich zuständige Finanzamt wahrscheinlich wissen will, womit du dein neues Jetpack, deine Jacht und das olympische Bällebad in deinem Garten finanziert hast.

tl;dr

Im Bitcoin Mining versucht man unterschiedliche Blockinformationen zu hashen, bis das Ergebnis allen Ansprüchen gerecht wird. Der erste Miner, der eine richtige Eingabe generiert (eine korrekte Nonce), darf seinen Block an die Blockchain anhängen und wird mit neuen Bitcoins und den Transaktionsgebühren der im Block enthaltenen Transaktionen belohnt.

Miner sind wichtig, da sie die Blockchain immer weiter führen und die Dezentralisierung der Kryptowährung instandhalten. Es ist nicht so ganz einfach, als Hobbyminer loszulegen, da das Equipment immer professionalisierter wurde.



Englisches Version: https://medium.com/@HashtrendAG/cryptomining-what-do-miners-actually-do-72cede9d18f8

Verwendete Quellen:

https://dev.to/damcosset/blockchain-what-is-mining-2eod

https://www.cryptocompare.com/coins/guides/how-is-a-block-hash-created/

https://cointrend.de

https://www.hashtrend.ch/

https://hashgenerator.de/

Hi there! Ich bin Lotte und schreibe für Cointrend die wöchentlichen News, Beiträge über Technologie *und* ich sammele die meisten Airdrops für unsere 0-10.000 Challenge. Mit Kursen beschäftige ich mich weniger - dafür weiß ich aber alles über Memes und CryptoKitties =^.^=

Alle Beiträge ansehen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

  • Vielen Dank für die Beschreibung. Eines ist mir aber nicht klar geworden. Das Mining kann doch nicht allein im Lösen kryptographischer Rätsel bestehen. Dadurch allein kann doch das Problem des möglichen doublespending nicht gelöst werden. Wo also kommt die Validierung ins Spiel?

    • Hi Michael,

      Die Bekämpfung von Doublespending liegt insofern im Mining, dass Transaktionen nicht doppelt gemined werden können. Ist eine Transaktion bereits in einem vergangenen Block drin, wird der Block mit der Doppelung verworfen. Landet die doppelte Ausgabe in einem Block, erkennt der Miner (bzw. die Software), dass sich Daten doppeln und wird nur eine der Transaktionen verifiziert. Die Doppelung wird erkannt, da du in jeder Transaktion den Beweis mitlieferst, dass du den Coin besitzt und überweisen darfst (public key und Signatur). Ich habe die Thematik schon mal angekratzt im Wiki-Artikel zu SegWit. In meiner längerfristigen Planung werde ich definitiv nochmal ausführlich auf den Aufbau der Transaktionen eingehen in einem separaten Artikel. Dieser Artikel sollte eigentlich nur die Phrase „Mathematische Gleichung/Puzzle“ unter die Lupe nehmen.

      Viele Grüße

      Lotte

Alle wichtigen Infos

Krypto News, Content Updates & Einsteiger E-Book gratis

Kein Spam, versprochen. Austragen jederzeit möglich.


Folge uns auf YouTube und Twitter für mehr Updates.