BitcoinVonInnen

Miner

Welche Rolle Miner spielen, wie sie Blöcke vorschlagen und warum Nodes trotzdem prüfen.

Block 951.312Live

Warum gibt es Miner?

Im Bitcoin-Netzwerk müssen sich viele unabhängige Nodes auf eine gemeinsame Reihenfolge gültiger Transaktionen einigen.

Miner übernehmen dabei eine bestimmte Rolle. Sie schlagen neue Blöcke vor und liefern den Proof-of-Work, durch den konkurrierende Blockvorschläge objektiv vergleichbar werden.

Sie sammeln gültige Transaktionen, bauen daraus Kandidatenblöcke und konkurrieren darum, für ihren Block einen gültigen Proof-of-Work zu finden. Dadurch entsteht ein gemeinsames zeitliches Ordnungsfenster, auf das sich das Netzwerk für den nächsten Zustandsübergang einigen kann. Erst dadurch entsteht ein objektiver Wettbewerb darum, welcher Block als nächster an die Blockchain angehängt werden darf. Dabei entscheiden Miner jedoch nicht allein über Bitcoin. Jeder vorgeschlagene Block wird von Full Nodes unabhängig geprüft.

Was ist der Anreiz für Mining?

Mining benötigt reale Ressourcen:

  • Hardware
  • Strom
  • Kühlung
  • Infrastruktur
  • Kapital

Miner betreiben diesen Aufwand nicht altruistisch, sondern weil erfolgreiche Blöcke finanziell belohnt werden.

Wer einen gültigen Block findet, erhält den sogenannten Block Reward: neu erzeugte Bitcoin sowie die Gebühren der enthaltenen Transaktionen.

Technisch geschieht das über die sogenannte Coinbase-Transaktion: eine spezielle Transaktion, mit der der Miner die Blocksubvention und die gesammelten Gebühren an sich selbst auszahlen kann.

Die Höhe der Blocksubvention sinkt dabei durch das Halving ungefähr alle vier Jahre.

Dadurch entsteht ein wirtschaftlicher Anreiz, Rechenleistung bereitzustellen und das Netzwerk über Proof-of-Work abzusichern.

Gleichzeitig kostet unehrliches Verhalten ebenfalls reale Ressourcen: Ein Miner kann Energie und Hardware einsetzen, ohne dass seine Blöcke am Ende vom Netzwerk akzeptiert werden.

Bitcoin koppelt damit Netzwerksicherheit direkt an ökonomische Kosten und Anreize.

Mehr dazu: Coinbase, Halving, Difficulty, Proof-of-Work

Wie entsteht ein neuer Block?

Bevor ein neuer Block Teil der Blockchain werden kann, müssen unbestätigte Transaktionen gesammelt, zu einem Kandidatenblock zusammengefasst und durch Proof-of-Work abgesichert werden.

Der Ablauf besteht grob aus fünf Schritten:

  1. Nodes führen lokale Mempools mit gültigen, unbestätigten Transaktionen
  2. aus einer Auswahl dieser Transaktionen wird ein Kandidatenblock erzeugt
  3. Miner suchen dafür einen gültigen Proof-of-Work
  4. andere Nodes prüfen den vorgeschlagenen Block (Blockvalidierung)
  5. erst dann wird der Block Teil der Blockchain
chaos → struktur → arbeit → validierung → konsensLOKALER MEMPOOLtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxtxunbestätigte tx im netzwerkBLOCKKANDIDATversion0x20000000prev hash000000…a3f2merkle root8c1e4b…90d7timestamp1748201234bits0x1702cf8cnonce0x00000000ausgewählte txtx werden zum block zusammengestelltPROOF OF WORKBlockkandidatversion0x20000000prev hash000000…a3f2merkle root8c1e4b…90d7timestamp1748201234bits0x1702cf8cnonce0x00000000SHA-256dhash attemptsa9f3721e8b2c5d6f7a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e21a9f3721e8b2c5d6f7a0b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d1e21difficulty targetbits 0x1702cf8c00000000000000000002cf8c0000000000000000000000000000000000000000wartet auf Kandidatteuer zu erzeugen · günstig zu prüfenNODE VALIDIERUNGminer schlagen vor · nodes prüfenBLOCKCHAIN850851852853gemeinsamer geordneter zustand

Vom Mempool zum Blockkandidaten

Jede Full Node verwaltet einen lokalen Mempool mit gültigen, aber noch unbestätigten Transaktionen.

Für einen neuen Block werden daraus ausgewählte Transaktionen kombiniert und zu einem Kandidatenblock zusammengebaut.

Zusätzlich erzeugt der Miner oder das Template-System eine spezielle Coinbase-Transaktion, über die der mögliche Block Reward ausgezahlt werden kann.

Wie hoch diese Auszahlung maximal sein darf, wird dabei durch die Konsensregeln des Netzwerks bestimmt und später von allen Nodes unabhängig überprüft.

Aus allen enthaltenen Transaktionen entsteht anschließend ein gemeinsamer Merkle Root.

Dieser landet zusammen mit weiteren Informationen im Blockheader:

  • Referenz auf den vorherigen Block
  • Merkle Root
  • Zeitstempel
  • Difficulty-Ziel
  • Nonce

Der Header fasst damit die wichtigsten Informationen des Blocks in einem einzigen Hash-Wert zusammen. Schon kleine Änderungen an einer Transaktion verändern den Merkle Root und damit auch den resultierenden Block-Hash.

Proof-of-Work und Hashing

Erst nachdem der Kandidatenblock vollständig aufgebaut wurde, beginnt das eigentliche Mining.

Dabei wird der Header des Blocks immer wieder gehasht.

Miner verändern dafür fortlaufend bestimmte Werte im Header, vor allem die Nonce, und berechnen den Hash immer wieder neu.

Gesucht wird ein Hash, der unter dem aktuellen Difficulty-Ziel liegt.

Da SHA-256 nicht vorhersagbar ist, bleibt nur wiederholtes Ausprobieren: Milliarden bis Billionen Hashes pro Sekunde. Erst wenn ein passender Hash gefunden wird, gilt der Block als gültiger Proof-of-Work.

Mehr zu SHA-256: SHA-256

Validierung durch Nodes

Findet ein Miner einen gültigen Block, wird dieser über das P2P-Netzwerk propagiert.

Andere Full Nodes prüfen den vorgeschlagenen Block anschließend unabhängig:

Nur wenn alle Regeln erfüllt sind, wird der Block akzeptiert und weitergeleitet.

Dadurch entscheiden Miner nicht allein darüber, welche Blöcke gültig sind.

Miner schlagen neue Blöcke vor. Die endgültige Validierung erfolgt jedoch durch unabhängige Nodes im Netzwerk.

Wie interagieren Miner, Mining Pools und Nodes?

Im heutigen Bitcoin-Netzwerk sind am Mining meist mehrere getrennte Rollen beteiligt:

  • Full Nodes validieren Regeln und verwalten den Mempool
  • Mining Pools koordinieren die Arbeit vieler Miner
  • ASIC-Miner liefern die eigentliche Rechenleistung für den Proof-of-Work
Full Nodemempoolunbestätigt · gebührenrelaygossip · invinoutkonsensregeln · validierungscriptutxo21Mpowblockchainspeicher · chainstatetipMining Pooltemplate-enginecoinbase-erstellungtransaktionsauswahlgebühren-logikjob-builderstratum-server (v1/v2)sessions: 1,248extranonce spacetarget updatesminer-koordinationworker_400worker_401worker_402ORCHESTRIERUNGAUSZAHLUNGSTATISTIKMONITORINGAPIASIC-Minerheader-kandidatversion:0x20000000prev_hash:0000...a3f2merkle_root:e015...4b65zeitstempel:1748201235bits:0x1702cf8cnonce:0x00000000SUCHRAUMpipeline: sha-256dHEADERSHA256SHA256dshareh < share_targetgültiger blockh < net_targetblock templatework assignmentsshares / valid blockvalid block

Diese Komponenten können technisch gemeinsam betrieben werden, sind heute jedoch oft voneinander getrennt.

Viele Mining Pools beziehen ihre Block-Templates von vorgeschalteten Full Nodes oder erzeugen sie selbst über eigene Node-Infrastruktur.

Dabei werden gültige Transaktionen aus dem Mempool ausgewählt, die Coinbase-Transaktion erzeugt und daraus ein vollständiger Kandidatenblock aufgebaut.

In modernen Mining-Setups übernimmt diese Blockerstellung meist nicht mehr der einzelne ASIC-Miner selbst, sondern Pool-Server oder spezielle Template-Systeme.

Die eigentliche Mining-Hardware führt anschließend hauptsächlich das spezialisierte Proof-of-Work-Hashing aus.

Der Pool verteilt dafür unterschiedliche Hashing-Aufgaben an viele ASIC-Miner.

Die Kommunikation zwischen Pools und Minern läuft dabei meist über spezielle Mining-Protokolle wie Stratum.

Die ASICs verändern dabei fortlaufend bestimmte Felder im Blockheader wie Nonce oder extranonce und berechnen den Header-Hash immer wieder neu, um einen gültigen Proof-of-Work zu finden.

Dadurch sind Blockerstellung, Transaktionsauswahl und Hashing im heutigen Mining häufig organisatorisch getrennte Rollen.

Findet einer der Miner einen gültigen Block, wird dieser an den Pool zurückgemeldet und anschließend über das Netzwerk propagiert.

Die mögliche Blockbelohnung wird danach proportional zur eingebrachten Rechenleistung verteilt.

Wichtig: Die Konsensregeln werden dabei weder von Minern noch von Pools festgelegt.

Alle vorgeschlagenen Blöcke werden weiterhin von unabhängigen Full Nodes im Netzwerk überprüft.

Selbst große Mining Pools können daher keine ungültigen Blöcke dauerhaft durchsetzen, wenn diese gegen die Regeln der Nodes verstoßen.

Warum gibt es Mining Pools?

Früher konnten einzelne Miner mit normaler Hardware noch selbst Blöcke finden.

Heute ist die gesamte Hashrate des Netzwerks jedoch so hoch, dass einzelne Miner alleine oft jahrelang keinen Block finden würden.

Deshalb schließen sich viele Miner zu sogenannten Mining Pools zusammen.

Ein Pool koordiniert die Arbeit vieler Teilnehmer:

  • Der Pool erstellt Blockkandidaten
  • verteilt unterschiedliche Hashing-Aufgaben an die Miner
  • und sammelt gefundene Ergebnisse wieder ein

Findet einer der Teilnehmer einen gültigen Block, wird die Blockbelohnung unter allen beteiligten Minern proportional zur eingebrachten Rechenleistung aufgeteilt.

Dadurch erhalten Miner regelmäßigere Auszahlungen, anstatt nur sehr selten einen gesamten Block Reward zu gewinnen.

Technisch wichtig: Der Pool kontrolliert meist die Auswahl der Transaktionen und den Aufbau des Blockkandidaten. Die endgültige Prüfung erfolgt aber weiterhin durch Full Nodes im Netzwerk.

mehr dazu: Mining Pools

Was wenn zwei Miner gleichzeitig einen Block finden?

Manchmal finden zwei Miner nahezu gleichzeitig einen gültigen Block.

Dadurch kann kurzfristig eine Situation entstehen, in der unterschiedliche Teile des Netzwerks zuerst unterschiedliche Blöcke sehen.

Beide Blöcke sind zunächst gültig und verschiedene Nodes können daher vorübergehend unterschiedliche Versionen der Chain weiterführen.

Es entsteht kurzzeitig ein Fork:

GLEICHZEITIGER BLOCKFUNDNode Asieht beide BlöckeNode Bsieht beide BlöckeNode Csieht beide BlöckeMiner Aarbeitet weiter auf B1Miner Barbeitet weiter auf B2Node A sieht beideBlock ABlock B1Block B2Node B sieht beideBlock ABlock B1Block B2Node C sieht beide BlöckeBlock ABlock B1Block B2temporärer Fork

Miner bauen dann normalerweise auf dem Block weiter, den sie zuerst erhalten haben.

Dadurch ist das Netzwerk vorübergehend uneinig darüber, welcher Block aktuell die Spitze der Blockchain bildet.

Die übrigen Transaktionen im Netzwerk werden dabei jedoch weiterhin normal über den Mempool weitergeleitet.

Nodes synchronisieren also weiterhin neue Transaktionen, Inventories (inv) und andere Netzwerkdaten zwischen ihren Peers.

Der Fork betrifft zunächst nur die Frage, welcher der konkurrierenden Blöcke Teil der aktiven Chain wird nicht die grundsätzliche Kommunikation des Netzwerks.

NETZWERK-UNEINIGKEITNode Asieht beide BlöckeNode Bsieht beide BlöckeNode Csieht beide BlöckeMiner Aarbeitet weiter auf B1Miner Barbeitet weiter auf B2Node A sieht beide Blöcke (folgt B1)Block ABlock B1Block B2Node B sieht beide Blöcke (folgt B2)Block ABlock B1Block B2Node C sieht beide BlöckeBlock ABlock B1Block B2

Sobald jedoch auf einer der beiden Varianten ein weiterer gültiger Block gefunden wird, enthält diese Chain mehr kumulierte Chainwork.

Für die übrigen Nodes und Miner ist damit objektiv erkennbar, welche Chain aktuell die meiste akkumulierte Arbeit repräsentiert.

Die meisten Teilnehmer wechseln deshalb automatisch auf diese stärkere Chain und setzen ihre Arbeit nur noch dort fort, da dort die Wahrscheinlichkeit höher ist, dass zukünftige Blöcke Teil der dauerhaft akzeptierten Chain bleiben.

Ein Miner könnte theoretisch trotzdem weiter auf der schwächeren Variante minen. Mit jedem zusätzlichen Block auf der stärkeren Chain sinkt jedoch die Wahrscheinlichkeit, dass die schwächere Variante das Netzwerk noch einholt und die investierte Rechenarbeit am Ende akzeptiert wird.

KONVERGENZNode Afolgt Block CNode Bwechselt zu Block CNode Cfolgt Block CMiner Aarbeitet weiter auf CMiner Bwechselt zu Block CNode A folgt Block CBlock ABlock B1Block CBlock B2Node B wechselt zu Block CBlock ABlock B1Block CBlock B2Node C folgt Block CBlock ABlock B1Block CBlock B2

Der andere Block wird verworfen und gilt als sogenannter stale block.

Die Transaktionen aus diesem verworfenen Block gehen dabei normalerweise nicht verloren: Sie kehren meist zurück in den Mempool und können später erneut in einen anderen Block aufgenommen werden.

Genau deshalb gelten Bitcoin-Transaktionen erst nach mehreren Bestätigungen als zunehmend sicher: Mit jedem weiteren Block wird es unwahrscheinlicher, dass eine konkurrierende Chain den bisherigen Verlauf noch ersetzt.

Können Miner oder Mining Pools Transaktionen zensieren?

Miner entscheiden selbst, welche Transaktionen sie in ihren Blockkandidaten aufnehmen.

Dadurch können sie bestimmte Transaktionen bewusst ignorieren oder ihre Aufnahme verzögern.

Heute läuft ein großer Teil des Minings jedoch über Mining Pools. In vielen Fällen erstellt deshalb nicht der einzelne ASIC-Miner den Blockkandidaten, sondern der Pool-Server.

Der Pool bestimmt dabei meist:

  • welche Transaktionen aufgenommen werden,
  • in welcher Reihenfolge sie erscheinen,
  • und welche Regeln für den Blockkandidaten gelten.

Dadurch können auch Mining Pools gezielt bestimmte Transaktionen ausschließen.

Ein einzelner Miner oder Pool kann Transaktionen jedoch nicht dauerhaft aus Bitcoin entfernen.

Denn andere Miner oder Pools können dieselben Transaktionen weiterhin in ihre eigenen Blöcke aufnehmen. Solange genügend unabhängige Hashrate existiert, finden gültige Transaktionen normalerweise irgendwann ihren Weg in die Blockchain.

Schwieriger wird es, wenn große Teile der gesamten Hashrate gemeinsam bestimmte Transaktionen ausschließen würden, zum Beispiel durch koordinierte Zensur mehrerer großer Pools.

Selbst dann bleiben die Konsensregeln aber unverändert: Nodes akzeptieren weiterhin jede gültige Transaktion und jeden gültigen Block.

Die Zensur betrifft also nicht die Gültigkeit einer Transaktion, sondern vor allem die Frage, ob und wann sie tatsächlich bestätigt wird.

Je dezentraler Mining, Pools und Hashrate sind, desto schwieriger wird koordinierte Zensur im Netzwerk.