Kryptomining mit AMD-Prozessoren – ein How-To für Interessierte
Grundlagen
Was ist Mining?
Der überwiegende Großteil der zahlreichen Krypto-“Währungen” basiert auf der Blockchain-Technologie. “Währung” deswegen in Anführungszeichen, da Bitcoin & Co. natürlich keine gesetzlichen Zahlungsmittel sind. Eine Blockchain ist eine dezentrale Datenbank, bestehend aus Blöcken, die so aneinander gekettet werden, dass sie im nachhinein nicht mehr verändert werden können. In so einem Block ist dann beispielsweise verzeichnet, dass Teilnehmer A einem Teilnehmer B einen bestimmten Betrag überwiesen hat, oder irgendeine andere Vereinbarung (Smart Contract), die man für immer fixiert haben möchte. Damit der Block nachträglich nicht mehr verändert werden kann, werden Vorgänger-Block und Nachfolger-Block mit einem Hashwert verknüpft.
Quelle: Bitcoin Developer Guide
Das Mining ist das Mittel, dies zu erreichen, eine Proof-of-Work-Methode, um die Blockchain abzusichern. Dazu findet rund um den Erdball ein Wettrechnen statt. Wer den zum Block passenden Hashwert durch ausprobieren findet, erhält eine Belohnung. Gleichzeitig dient die Rechenleistung der vielen Teilnehmer dazu, sicherzustellen, dass der errechnete Wert auch stimmt und nicht manipuliert wurde. Je mehr an der Absicherung der Blockchain mitrechnen, desto schwieriger ist es für einen Angreifer, die Blockchain nachträglich zu manipulieren. Wieso sollte das jemand wollen? Nun, zum Beispiel könnte jemand an Blockhöhe X jemandem einen Betrag überweisen, z.B. weil er etwas kaufen möchte oder in eine andere Kryptowährung wechseln möchte. Nachdem er hat, was er will, könnte der Angreifer den Block nachträglich verändern, sodass es so aussieht, als hätte er den Betrag noch und ihn nochmal ausgeben. Damit das nicht geschieht, zählt das Ergebnis, das die meiste Rechenpower hinter sich vereint. Die übrigen Miner überstimmen quasi seine manipulierte Blockchain und stellen sie wieder her. Somit müsste ein Angreifer so viel Rechenleistung investieren, um die Blockchain nachträglich zu verändern, dass der Materialeinsatz uninteressant hoch ist. Trotzdem kommen diese sogenannten 51-Prozent-Attacken immer wieder vor, insbesondere bei kleineren Kyptowährungen, die den gleichen Mining-Algorithmus verwenden, wie eine größere.
Damit jemand dazu motiviert wird, Zeit und Geld für den Betrieb einer Blockchain zu investieren, erhalten die Miner eine Belohnung sobald der passende Wert zur Absicherung eines Blocks gefunden wurde. Bei sehr kleinen Kryptowährungen kann man das direkt auf der Blockchain machen, sogenanntes Solo-Mining. Bei den größeren Coins dagegen ist die Difficulty aufgrund der großen Anzahl der Teilnehmer so hoch, dass man als einzelner Miner Monate oder gar Jahre rechnen müsste, um einmal einen Block selbst abzubekommen. Deswegen rechnet man, wenn man nicht gerade eine Mining-Farm betreibt, nicht Solo, sondern zusammen mit anderen in einem Pool. Findet der Pool dann den passenden Hashwert, um den nächsten Block abzusichern, wird die Belohnung unter den Pool-Teilnehmern aufgeteilt.
Was kann mit CPUs gemined werden?
Es gibt etliche Coins, deren Initiatoren sich auf die Fahnen geschrieben haben, eine möglichst breite Masse am Mining teilhaben zu lassen. Ein Privatanwender wird sich eher keinen speziellen Bitcoin-Miner für 10.000 EUR kaufen, der nur einem Zweck dient: Bitcoins zu minen. Eine CPU oder GPU dagegen hat jeder zu Hause. Daher nutzen diese Coins einen Algorithmus, der möglichst schlecht auf ASICs abzubilden ist. Jahrelang waren das die Cryptonote-Coins, die einen Hash-Algorithmus namens Cryptonight nutzten. Mit steigender Marktkapitalisierung lohnte es sich jedoch für die ASIC-Hersteller irgendwann, auch für Cryptonight Spezial-Hardware zu entwickeln. Da die Initiatoren der Coins das jedoch nicht wollen, begann eine Art Spießruten-Lauf, indem die Initiatoren den Algorithmus immer wieder minimal veränderten, ein sogenannter Hardfork ohne Chainsplit. Minimale Änderungen genügten bereits, um die ASICs unbrauchbar zu machen, da diese im Gegensatz zu Mining-Software nicht einfach nachträglich angepasst werden können. Nach etlichen dieser Hardforks im Abstand von ein paar Monaten wechselten viele der ehemaligen Cryptonight-Coins zu einem Algorihmus namens RandomX. Dieser hat zum einen einen sehr großen RAM-Hunger und zum anderen nutzt er wechselweise unterschiedliche Kombinationen aus Berechnungspfaden, sodass es sehr schwierig ist, dafür Spezialhardware zu entwickeln. Seitdem haben Coins, die sich dem CPU-Mining verschrieben haben, vorerst Ruhe vor den ASICs.
Das bedeutet, der Mainstream-Algorithmus für CPU-Mining ist RandomX. Da man nicht mehr alle Coins im Kopf haben kann, gibt es mittlerweile sehr gute Webseiten, die die verschiedenen Coin-Familien in Kategorien auflisten, z.B. MiningPoolStats. Klickt man linkerhand auf die Auswahlbox “CPU – RandomX” erhält man alle Coins angezeigt, die RandomX oder Varianten verwenden und dazu auch gleich, auf welchen Pools man sich am Mining beteiligen kann, welchen Anteil diese an der Gesamt-Hashrate haben und welche Zuteilungsmethode der Pool verwendet.
Welchen Pool nehmen – PPS, PROP oder PPLNS?
Wie bereits kurz angerissen sind Pools dazu da, Mining-Power zu vereinen, damit man den nächsten Block (zusammen mit anderen) selber findet und die Belohnung dafür einstreichen kann. Diese Belohnung wird dann – abzüglich der Pool-Fee, die in die Tasche des Pool-Betreibers wandert – unter den Teilnehmern des Pools aufgeteilt. Wie das aufgeteilt wird, unterscheidet sich von Pool zu Pool.
PROP
Die simpelste Methode für den Poolbetreiber ist PROP (proportional). Hier wird die Belohnung einfach unter all jenen Teilnehmern aufgeteilt, die bei der Findung dieses Blocks mitgewirkt haben, abhängig davon, wieviele Ergebnisse die einzelnen Teilnehmer dazu beigetragen haben. Der mit einer hohen Hashrate kriegt mehr, der mit niedriger Hashrate weniger. Das klingt fair, aber der Haken steckt im Detail. Insbesondere Gelegenheitsminer mit schwacher Hardware können bei der PROP-Methode benachteiligt sein, wenn die Hardware es nicht schafft, oft genug Ergebnisse zu liefern und an den Pool zurückzusenden. So kann es sein, dass der Teilnehmer zwar die ganze Zeit rechnet und rechnet und rechnet, aber ausgerechnet in der Zeit, als der Pool den Block gefunden hat, keine Ergebnisse zurückgemeldet hat. Dann geht dieser Teilnehmer in der Runde leer aus. Wenn es blöd läuft und man auf einem kleinen Pool rechnet, der sowieso nur selten einen Block findet, kann es passieren, dass man den ganzen Tag lang rechnet ohne eine einzige Belohnung dafür zu erhalten.
PPS
Genau das Gegenteil von PROP ist die PPS-Methode (pay-per-share): Diese ist maximal fair gegenüber den Teilnehmern, kann aber heikel werden für den Poolbetreiber. Denn hier erhält der Teilnehmer für jedes Ergebnis, das er zurücksendet, eine Belohnung und zwar unabhängig davon, ob der Pool in dieser Zeit einen Block gefunden hat oder nicht. Man sendet etwas zurück und bekommt etwas dafür. Hier muss der Pool-Betreiber quasi in Vorleistung gehen in der Hoffnung, dass sich die vorgeschossene Belohnung später durch Finden eines Blocks wieder ausgleicht. Daher ist bei PPS-Pools in der Regel die Pool-Fee auch etwas höher, da der Betreiber ein höheres Risiko hat. Aber natürlich ist das die ideale Methode für Gelegenheitsminer, die mal eben für eine halbe Stunde die Mining-Software anwerfen wollen ohne sich Gedanken machen zu müssen, ob der Pool in dieser Zeit überhaupt einen Block findet, für den man belohnt würde. Auch langsame Hardware, die generell nur selten ein Ergebnis zurückliefern kann aufgrund der Difficulty, ist am besten auf einem PPS-Pool aufgehoben.
PPLNS
Bei dieser Methode (pay-per-last-n-shares) vergütet ein Pool ähnlich wie bei PROP, allerdings wird über einen bestimmten Zeitraum gemittelt, sodass man nicht unbedingt just in jener Runde ein Ergebnis zurückgeliefert haben muss in der ein Block gefunden wird. Stattdessen wird, wenn ein Block gefunden wurde und somit Belohnung zur Verteilung ansteht, eine gewisse Zeit zurückgeschaut, wer in diesem sogenannten PPLNS-Window wieviele Ergebnisse beigetragen hat. Das ist fairer als PROP und im Gegensatz zu PPS für den Poolbetreiber ohne Risiko, da auch hier nur verteilt wird nachdem ein Block gefunden wurde. Der Poolbetreiber muss also nicht in Vorleistung gehen. Wer länger am Stück mined, ist bei einem PPLNS-Pool gut aufgehoben.