DEV Community

Cover image for Kann ein Mac wirklich Bitcoin minen?
Christian Ahrweiler
Christian Ahrweiler

Posted on Originally published at Medium

Kann ein Mac wirklich Bitcoin minen?

Kann ein Mac wirklich Bitcoin minen?### Ein visueller Bitcoin Miner, der echtes Proof of Work ausführt — ohne so zu tun, als könnte ein Mac den Wettlauf wahrscheinlich gewinnen

Bitcoin Mining wird häufig mit vereinfachten Animationen erklärt: Zahlen drehen sich, ein Fortschrittsbalken füllt sich und irgendwann erscheint ein neuer Block.

Das kann die Grundidee veranschaulichen, verbirgt aber den wichtigsten Punkt. Mining ist kein Countdown. Es gibt keinen Prozentsatz, der sich schrittweise einer garantierten Lösung nähert. Jeder Hash ist ein neuer, unabhängiger Versuch — und die Wahrscheinlichkeit, dass ein gewöhnlicher Mac einen gültigen Bitcoin-Block findet, ist außerordentlich gering.

Ich wollte stattdessen eine Lern-App entwickeln, die den echten Vorgang sichtbar macht.

Bitcoin Miner führt unter macOS tatsächliche Double-SHA-256-Proof-of-Work-Berechnungen aus. Die App erstellt einen Block Header, verändert dessen Nonce, hasht den vollständigen 80-Byte-Header zweimal und vergleicht das Ergebnis mit dem aktuellen Target des Bitcoin-Netzwerks.

Das ist keine Mining-Animation. Es ist dieselbe mathematische Prüfung, die auch Bitcoin Miner durchführen.

Was die App tatsächlich macht

Ein Bitcoin Miner hasht nicht einfach zufällige Zahlen.

Ausgangspunkt ist ein Blockkandidat. Dieser verweist auf den vorherigen Block, enthält eine Merkle Root für seine Transaktionen und verwendet die aktuellen Proof-of-Work-Parameter.

Aus diesen Daten erstellt der Miner den 80 Byte großen Block Header:

  • Version
  • Hash des vorherigen Blocks
  • Merkle Root
  • Zeitstempel
  • nBits
  • Nonce Der Header wird serialisiert und mit SHA-256 gehasht. Die dabei entstehenden 32 Byte werden ein zweites Mal gehasht. Bitcoin interpretiert diesen finalen Hash als Zahl und führt einen entscheidenden Vergleich durch:

Hash ≤ Target?

Lautet die Antwort Nein, verändert der Miner die Nonce und versucht es erneut.

Lautet die Antwort Ja, erfüllt der Proof of Work die aktuelle Netzwerkschwierigkeit. Der Block kann anschließend zur Validierung und Weiterleitung an Bitcoin Core übergeben werden.

Bitcoin Miner zeigt diesen gesamten Ablauf live:

80-Byte-Header → SHA-256 → SHA-256 → Hash ≤ Target

Die angezeigten Werte sind keine Beispielbeschriftungen. Zu sehen sind der aktuelle Header, die aktuelle Nonce, der erste Hash, der finale Hash und das Target, gegen das der laufende Miner prüft.

Ein echter Nonce-Bereich statt vorgetäuschtem Fortschritt

Die Nonce im Bitcoin Block Header ist eine vorzeichenlose 32-Bit-Ganzzahl. Sie kann deshalb 4.294.967.296 verschiedene Werte annehmen.

Bitcoin Miner zeigt, wie viele Nonces tatsächlich getestet wurden und wie weit sich der aktuelle Worker durch diesen Nonce-Bereich des Headers bewegt hat.

Im Screenshot wurden bereits mehr als 2,26 Milliarden Nonces geprüft. Die angezeigten 52,62 Prozent bedeuten nicht, dass die App dem Fund eines Blocks zu 52,62 Prozent näher gekommen ist. Sie bedeuten lediglich, dass der aktuelle 32-Bit-Nonce-Bereich bis zu diesem Punkt durchsucht wurde.

Diese Unterscheidung ist wichtig.

Mining besitzt keinen sinnvollen Gesamtfortschritt. Wenn die Hälfte des Nonce-Bereichs getestet wurde, ist eine erfolgreiche Lösung deshalb nicht überfällig. Der nächste Hash hat dieselbe winzige Chance wie der erste.

Ist der Bereich ausgeschöpft, verändert der Miner andere variable Daten, erstellt einen neuen Header und beginnt mit einem neuen Nonce-Bereich.

CPU und GPU arbeiten nebeneinander

Die App kann sowohl die CPU als auch Apples Metal-GPU-Pipeline verwenden.

Ihre Anteile werden getrennt angezeigt, da sie den Suchraum nicht zwangsläufig mit derselben Geschwindigkeit bearbeiten. Die gemeinsame Hashrate zeigt, wie viele vollständige Double-SHA-256-Versuche der Mac pro Sekunde durchführt.

Diese Zahl kann beeindruckend aussehen. Millionen Hashes pro Sekunde sind nur schwer vorstellbar.

Das globale Bitcoin-Mining-Netzwerk arbeitet jedoch in einer völlig anderen Größenordnung. Dort kommt spezialisierte ASIC-Hardware zum Einsatz, die für eine einzige Aufgabe entwickelt wurde: SHA-256-Hashes so effizient wie möglich zu berechnen.

Ein Mac kann die korrekte Arbeit durchführen. Er kann wirtschaftlich nur nicht mit modernen Mining-Farmen konkurrieren.

Mining mit oder ohne Bitcoin Core

Bitcoin Miner unterstützt zwei sinnvolle Betriebsarten.

Im Standalone-Modus folgt die App dem aktiven Bitcoin-Netzwerk, verwendet den aktuellen Chain Tip und das aktuelle Target, erstellt einen lokalen Blockkandidaten und führt echte Proof-of-Work-Berechnungen durch. Dadurch werden Header und Hashing-Prozess sichtbar, ohne dass ein eigener Bitcoin Node laufen muss.

Bei einer Verbindung mit Bitcoin Core kann die App über getblocktemplate ein echtes Block Template anfordern. Bitcoin Core liefert die Transaktionen und die für den Konsens relevanten Template-Daten. Die App erstellt die Coinbase-Transaktion, baut den Merkle Tree auf, berechnet die Merkle Root und führt das Mining für den daraus entstandenen Kandidaten durch.

Sollte tatsächlich ein gültiger Hash gefunden werden, könnte der vollständige Block mit submitblock an Bitcoin Core zurückgegeben werden.

Dadurch wird es nicht wahrscheinlich, dass der Mac einen Block findet. Der Ablauf wird dadurch technisch vollständig.

Die Merkle Root verbindet den Header mit den Transaktionen

Die Transaktionen selbst befinden sich nicht direkt im 80-Byte-Header.

Jede Transaktion besitzt eine Transaktions-ID. Diese TXIDs werden im Merkle Tree paarweise zusammengefasst und wiederholt gehasht, bis nur noch ein finaler 32-Byte-Wert übrig bleibt: die Merkle Root.

Diese Root wird in den Block Header geschrieben.

Wird auch nur eine Transaktion verändert, ändert sich ihre TXID. Dadurch ändern sich der Merkle Tree, die Merkle Root und schließlich auch der Block Header und dessen Hash.

Bitcoin Miner zeigt diese Konstruktion als sichtbare Abfolge:

Coinbase + Transaktionen → TXIDs → Merkle Tree → Merkle Root

Ist Bitcoin Core nicht verbunden, kennzeichnet die Oberfläche den Kandidaten eindeutig als Standalone-Kandidaten. Sie täuscht nicht vor, dass ein vollständiges Block Template aus dem Netzwerk verfügbar wäre.

Warum das Target so viele Nullen enthält

Das Bitcoin Target ist ein 256-Bit-Grenzwert, der aus dem kompakten nBits-Feld des Block Headers abgeleitet wird.

Ein gültiger Block-Hash muss numerisch kleiner oder gleich diesem Target sein. Da gültige Werte im Vergleich zum vollständigen 256-Bit-Zahlenraum extrem klein sind, beginnt ihre hexadezimale Darstellung mit vielen Nullen.

Miner suchen nicht nach einem bestimmten, vorher festgelegten Hash. Jeder Hash unterhalb des Targets ist gültig.

Das Netzwerk passt die Difficulty regelmäßig an, damit trotz Veränderungen der gesamten Mining-Leistung im Durchschnitt ungefähr alle zehn Minuten ein Block gefunden wird. Diese zehn Minuten sind kein Timer für einen einzelnen Block. Manchmal werden zwei Blöcke kurz hintereinander gefunden, manchmal wartet das Netzwerk deutlich länger.

Findet ein anderer Miner den nächsten Block, ist der bisherige Kandidat veraltet. Bitcoin Miner wechselt zum neuen Chain Tip, erstellt einen neuen Kandidaten und beginnt von vorn.

Das ist der tatsächliche Wettlauf.

Echtes Mining ohne Illusion

Bitcoin Miner soll nicht den Eindruck erwecken, ein Mac sei eine sinnvolle Möglichkeit, Bitcoin zu verdienen.

Die App soll Mining sichtbar machen.

Man sieht den aktuellen Blockkandidaten, die laufende Nonce, den exakt serialisierten Header, beide SHA-256-Stufen und den Vergleich mit dem echten Netzwerk-Target. Milliarden echter Versuche können beobachtet werden, ohne Aktivität mit einer realistischen Erfolgschance zu verwechseln.

Die App nimmt am selben mathematischen Wettlauf teil, behauptet aber nicht, dass ein Mac ihn wahrscheinlich gewinnen wird.

Und genau das ist vielleicht der klarste Weg, Bitcoin Mining zu verstehen: nicht als die Erzeugung von Coins durch eine geheimnisvolle Maschine, sondern als gewaltige globale Suche, bei der jeder Teilnehmer immer wieder dieselbe einfache Frage stellt:

Liegt dieser Hash unter dem Target?

Download im AppStore: https://apps.apple.com/us/app/bitcoin-miner-education/id6813043735

Mehr BTC Tools: https://btcminertools.com/

Top comments (0)