Header image Ingenieur, Vater, Heimwerker, Problemlöser

28 April, 2014

Dogecoin Primer

TL;DR:

Nach dem spektakulären Fall von MtGox ist das Thema Bitcoin für mich erst einmal auf Eis gelegt. Ich werde die Situation beobachten und abwarten. Doch ganz tatenlos zusehen wollte ich dann doch nicht und habe mir DogeCoin etwas näher angeschaut. Entstanden vor ca. drei Monaten auf Reddit, wird diese an Litecoin angelehnte Crypto-Währung momentan als Geheimtipp gehandelt. Auch wenn dies als Scherz begonnen hatte, steckt hier schon ein richtiger Markt dahinter. Und das tolle daran: Mining mit Grafikkarten ist zum jetzigen Zeitpunkt noch lukrativ! Wer sich also vom kindischen Logo nicht abschrecken lässt, hier eine knappe Anleitung für Dogecoin-Mining und allem was dazugehört.

wow!

Was ist DogeCoin, was ist eine Kryptowährung?

DogeCoin ist eine Kryptowährung. Das bedeutet, dass Geld (Blöcke) durch kryptographische Verfahren erzeugt werden. Genauso wie bei Fiatgeld haben DogeCoins keinen Wert gegenübergestellt. Die Währung ist immer nur so viel wert wie Menschen bereit sind dafür zu bezahlen. Bei Bargeld hat man noch den Wert des Metalls, doch bei einer Kryptowährung ist alles digital und ohne realen Wert. Der Vorteil zum Fiatgeld von der Zentralbank ist aber der, dass es keine zentrale Einheit gibt. Ein Netz von Usern verwaltet gemeinschaftlich die Konten und Transaktionen. Ein weiterer Vorteil ist, dass keiner (technisch bedingt) mal schnell ein paar Scheine/Coins herstellen kann. Es existiert eine festgelegte Anzahl an Coins, die vom Netz erzeugt und verwaltet werden. Die Wahrheit (ist eine Transaktion gültig etc.) entscheidet das Netz -- völlig anonym über ein PeerToPeer-Protokoll. Ein Mitbestimmungsrecht erarbeitet man sich sprichwörtlich über Rechenleistung. Der Wikipedia-Artikel ist dazu sehr interessant.

Wie funktioniert Mining?

Um sich im PeerToPeer Netz vertrauen zu erarbeiten, muss man Hashsummen berechnen. Der Algorithmus des Systems sorgt dafür, dass immer eine konstante Menge an Coins von den Usern berechnet werden. Deshalb wird der Schwierigkeitsgrad ständig angepasst, je nachdem wie viele User mit wie viel Rechenkraft daran beteiligt sind Coins (Blöcke) zu produzieren. Ist also wenig los im Netz, ist der Schwierigkeitsgrad niedriger als bei Netzen mit vielen Usern.

Das Mining selbst besteht darin, den nachfolgenden Block in der globalen Blockkette zu berechnen. Genauer gesagt an einem Stellrad (Nonce) so lange zu drehen, bis der Hash (SHA-2 bei Bitcoin, Scrypt bei Dogecoin) des ganzen Blocks bestimmte Bedingungen erfüllt. Diese Bedingungen sind der Schwierigkeitsgrad an dem das System drehen kann um die Produktion von Blöcken konstant zu halten. Es geht also um reines raten. Wer öfter rät, hat mehr Chancen einen Treffer zu landen. Die Entlohnung wurde mit Version 1.6 auf eine konstante Summe angepasst. Davor war auch die Entlohnung in zufälliger Höhe.

Mining-Pool

Da das Finden einer passenden Nonce bei steigendem Interesse richtig schwer wird, gibt es Mining-Pools. Diese teilen den Suchraum auf die Teilnehmer auf und jeder sucht nur einen Teil ab. Die Teile werden auch Shares genannt. Je mehr Shares ein User für einen bestimmten Block bearbeitet, desto mehr wird er entlohnt. Es gibt verschiedene Abrechnungsmodelle, weiter unten die zwei bekanntesten. (Verschiedene Mining-Pools haben hierzu noch weitere angepasste Restriktionen, Gebühren und Berechnungs-Algorithmen).

In der Liste der Dogecoin Miningpools kann man sich für einen Mining-Pool entscheiden. Je mehr User in einem Mining-Pool mitarbeiten, desto schneller wird ein Block gefunden und desto schneller gibt es eine Ausbezahlung. Zu beachten sind auch die Gebühren und diverse Sonderheiten. Hier die Spalte Notes nicht außer Acht lassen.

Als Beispiel nehmen wir dogepool.pw, man kann aber jeden beliebigen anderen Pool verwenden. Je nachdem welches Ausbezahlungsmodell einem eher zusagt. Dazu einfach auf der Seite anmelden. Danach müssen wir einen neuen Worker anlegen. Das geht unter My Workers im Benutzermenü. Den Workernamen und das Passwort werden wir später für die Mining-Software brauchen.

Pay Per Share

PPS oder Pay Per Share ist ein simples Entlohnungsmodell, bei dem der User für jeden bearbeiteten Share entlohnt wird. Hier fällt allerdings meist noch eine Gebühr an, da der Pool-Betreiber die Coins vorstrecken muss und evtl. bei einem Block sogar draufzahlt (wenn die Suche länger als gewöhnlich dauert).

Pay Per Last Number of Shares

Bei PPLNS wird pro Block abgerechnet. Man erhält für seine geleistete Arbeit an einem Block anteilig Coins. Das minimiert das Risiko für den Pool-Betreiber und im Gegenzug fallen meist keine Gebühren an. Um zu verhindern dass viele User nur einen Share berechnen und dann zum nächsten Pool wechseln (also wie PPS nur ohne Gebühren), werden die verdienten Coins nicht von allen Shares berechnet, sondern nur von den letzten 500000 vor dem Auffinden der passenden Nonce. Da keiner weiß wann die letzten 500000 Shares beginnen, lohnt es sich nur, wenn man konstant dabeibleibt.

Hardware und deren Mining-Software

Um sich beim Mining zu beteiligen, benötigt man entsprechende Hardware. Bei niedrigem Schwierigkeitsgrad kann man mit gewöhnlichen CPUs die Nonce berechnen bzw. kontinuierlich Hashes bilden und vergleichen. Dafür kann man cpuminer verwenden. Wird der Schwierigkeitsgrad größer, können mit Grafikkarten die Hashes effizienter berechnet werden (Pipelining etc.). Dafür empfiehlt sich cudaminer (NVIDIA Grafikkarten) oder cgminer bis Version 3.7.2 für AMD/ATI Karten. Steigt der Schwierigkeitsgrad noch weiter an, kommt man nur noch mit spezialisierter Hardware aus (FPGAs oder extra dafür gebaute ASICMiner, Block Erupter o.ä. -- welche es momentan aus gutem Grund nicht für scrypt gibt). Eine Gegenüberstellung von Hardware zu Geschwindigkeit (gemessen in 1000 Hashes pro Sekunde) findet man im Litecoin Wiki.

Als Beispiel gehe ich von einer ATI-Karte und cgminer aus. Nach dem Herunterladen der Software (die Version beachten!) müssen wir das cgminer Binary mit ein paar Parametern starten. Hier die entsprechenden Platzhalter durch die Werte ersetzen, die im Mining-Pool angegeben wurden (bei den Worker-Einstellungen).

./cgminer -o http://dogepool.pw:3334 -u USERNAME.WORKER_NAME -p PASSWORD

Und schon kann es losgehen. Auf der Mining-Pool Seite kann man nun die aktuelle Hashrate und diverse andere Kennzahlen ansehen. Interessant sind hier die Werte PPLNS Share Total und PPLNS Share Target Estimate. Ersteres zeigt die Nummer der bereits berechneten Shares zum aktuellen Block an (die Nieten sozusagen). Die andere Zahl macht eine grobe Abschätzung, wann eine passende Nonce gefunden wird. Die Zeile darunter gibt Aufschluss darüber, wie viele Dogecoins vermutlich bei der aktuellen Runde für uns abfallen -- sollten wir bis zum Schluss mitrechnen.

Wallet

Um eigene Dogecoins zu speichern, wird eine Brieftasche benötigt. Dies wird Wallet genannt. Dies ist eine Client-Software, die es für die gängigsten Betriebssysteme gibt.

Nach dem Download der entsprechenden Software wird der Client auf den aktuellen Stand gebracht. Jeder User mit einem Wallet hat immer alle Transaktionen und Vorgänge im PeerToPeer Netz. Deshalb dauert der erste Start der Wallet-Software meist etwas länger. Beim ersten Start wird zudem ein Schlüsselpaar erzeugt. Der öffentliche Schlüssel ist die Adresse, an die Transaktionen gesendet werden können. Der private Schlüssel wird dafür verwendet, um eigene Aufträge zu signieren (Transaktion starten etc.). Er ist damit der Schlüssel zum Konto.

Bei einer Transaktion signiert der User seinen Auftrag mit seinem privaten Schlüssel und hängt den öffentlichen Schlüssel des Empfängers an. Da das Netz alle vorherigen Transaktionen und auch die Public-Keys kennt, kann seine Richtigkeit von allen anderen Clients überprüft werden (hat der User genug Geld, gibt es den Empfänger, etc.). Ist die Mehrheit der Meinung, dass die Transaktion legitim ist, wird sie ausgeführt und jeder Client speichert dies.

Um nun die beim Mining verdienten Dogecoins auf sein eigenes Wallet zu transferieren, genügt es, die öffentliche Adresse unter den Account-Details auf dogepool.pw zu hinterlegen. Unter Automatic Payout Threshold am besten 200 eingeben (der minimale Wert), dann wird -- sobald 200 Dogecoins erarbeitet wurden -- eine neue Transaktion gestartet.

Trading

Was kann man aber nun mit Dogecoins anstellen? Zur Zeit werden Dogecoins auf Reddit als Trinkgeld (tips) verwendet oder aber um auf verschiedenen Plattformen Dogecoin in andere Kryptowährungen zu tauschen. Den aktuellen Kurs von Dogecoin bestimmt Nachfrage und Angebot. Auf cryptsy.com oder bter.com kann man verschiedene Kryptowährungen handeln. Einen Graphen dazu gibt es auf bitcoinwisdom.com indem man auf Dogecoin umschaltet (oben auf Markets klicken).

Dogecoins kaufen

Es besteht die Möglichkeit, mit EUR Dogecoins zu kaufen. Eine gute Anlaufstelle dafür ist dogeforsale.com.

In Bargeld verwandeln

Das geht momentan noch nicht so einfach, aber ich vermute es wird nicht lange dauern bis es ein MtGox für Dogecoin geben wird (welches hoffentlich nicht in PHP geschrieben ist).

Abschluss

Es macht Spaß bei einer so jungen Kryptowährung wie Dogecoin mitzuwirken und so leicht in die Welt der Kryptographie, PeerToPeer-Netzwerke, Trading und viele andere spannende Gebiete einzutauchen und dabei noch etwas Geld zu verdienen. Dies war nur ein ganz kleiner Überblick, es gibt noch unzählige weitere Themen zu denen ich hier kein Wort verloren habe. Auf diese stößt man allerdings schnell, sobald man sich etwas mit den angesprochenen Dingen beschäftigt. Viel Spaß damit!