Solo-Mining ist unter Bitcoin-Enthusiasten mittlerweile ein Begriff: Ungefähr alle zehn Minuten warten 3,125 BTC auf einen Gewinner. Zu Beginn steht jeder Solo-Miner vor der Entscheidung, welchen Solo-Mining-Pool er nutzen möchte. Zur Auswahl stehen gehostete Pools wie Ckpool bei 2% Gebühren oder der nicht weniger berühmte Public Pool mit 0% Gebühr. Alternativ können die beiden genannten Pools im lokalen Netzwerk betrieben werden, beispielsweise als Umbrel-Apps: Public Pool oder Bassin.
Don't trust, verify!
Unabhängig davon, ob der genutzte Mining-Pool selbst gehostet oder remote verbunden ist, muss dem Pool-Anbieter vertraut werden, dass die Gebühren im Falle eines Blockfundes tatsächlich wie versprochen abgewickelt werden. Auch wenn die Software von beispielsweise Public Pool und Bassin öffentlich zugänglich ist, bedeutet das nicht automatisch, dass sie frei von Bugs oder absichtlichen Manipulationen ist. Zudem setzt eine Software meist Drittbibliotheken ein – ebenfalls ein Risiko. Übrigens wurde kürzlich eine Sicherheitslücke in Bassin entdeckt, die durch eine verwendete Bibliothek eines Drittanbieters verursacht wurde. Und solche Beispiele gab es in letzter Zeit häufiger, selbst bei berühmter Open-Source-Software.
Ein ernstgemeinter Tipp, nachdem man einen Solo-Mining-Pool in seinem Miner hinterlegt hat, ist, zu prüfen, wie der Pool das Block-Found-Reward handhabt. Wenn ein Pool 2% verspricht, sind es dann wirklich 2%? Wenn ein Pool damit protzt, keine Gebühren zu erheben, wäre das wirklich der Fall?
Step by Step
Um das herauszufinden, muss man dem Pool-Betreiber bzw. der Software nicht vertrauen. Alle Daten für einen eventuellen Blockfund stehen im Kommunikationsdialog zwischen dem Solo-Miner und dem Pool. Dafür genügt ein Blick in die Miner-Logs und die Nutzung eines Online-Tools namens Stratum Mining.Notify Parser.
• Log-Ansicht auf dem Solo-Miner aufrufen.
• Log-Einträge anzeigen lassen bis ein längerer Eintrag mit "method":"mining.notify" erscheint.
• Log-Scrolling stoppen.
• Log-Eintrag in die Zwischenablage kopieren und zwar alles ab und bis {"params": ... "method":"mining.notify"}.
• Log-Eintrag im Tool einfügen.
• Im Tool den Button Parse drücken.
Nun erscheinen „Coinbase Outputs”. Das sind Outputs, die im Falle eines gefundenen Bitcoin-Blocks aufgeteilt und ausgeführt werden. Es sind mindestens zwei Outputs zu sehen. Der letzte OP_RETURN-Output ist zu vernachlässigen, da er ohnehin mit 0 Satoshis deklariert ist. Wichtig sind die Outputs über dem OP_RETURN-Output (also der erste und eventuell der zweite von drei). Der erste Output beinhaltet in der Regel die Bitcoin-Adresse des Miners, also die Adresse, die im Solo-Miner als Nutzer hinterlegt wurde. Wenn es einen zweiten Output gibt und es kein OP_RETURN ist, dann ist es die Provision für den Pool.
Alles ist transparent nachvollziehbar.
Nachfolgend ist ein Screenshot der Coinbase-Outputs für Ckpool zu sehen. Die erste Transaktion geht an den Miner, die zweite als Provision an den Pool.

P.S. Die genannten Pools dienen lediglich zur Veranschaulichung. Die Schritte können mit jedem anderen Pool ebenso nachvollzogen werden.

