Das Vertrauenssystem von Bitcoin basiert auf Berechnungen. Transaktionen werden in Blöcken gebündelt, die eine enorme Menge an Berechnungen (und in folge dessen Rechenleistung) erfordern, um diese zu „beweisen“ (oder „bestätigen“), aber nur eine geringe Menge an Berechnungen, um sie als „bewiesen“ zu verifizieren, in einem Prozess, der Mining genannt wird.

Das sogenannte Mining dient in Bitcoin zwei Zwecken:

  • Mining schafft in jedem Block neue Bitcoins, fast wie eine Zentralbank, die neues Geld druckt. Die Anzahl der zu erstellenden Bitcoins ist festgelegt und nimmt mit der Zeit ab.
  • Mining schafft Vertrauen, indem es sicherstellt, dass Transaktionen nur dann bestätigt werden, wenn dem Block, der sie enthält, genügend Rechenleistung gewidmet wurde. Mehr Blöcke bedeuten mehr Rechenleistung, was wiederum mehr Vertrauen bedeutet.

Beim Prozess des Minings werden die folgenden Schritte immer wieder durchlaufen:

  1. Bündeln von Transaktionen, welche über das Peer-To-Peer-Netzwerk mitgeteilt wurden, in einen Block. Dabei kann jeder für sich entscheiden, welche Transaktionen er in seinen Block inkludieren möchte.
  2. Verifikation aller Transaktionen für diesen Block.
  3. Auswählen des letzten Blocks auf dem längsten Pfad (mit der höchsten gesamten Schwierigkeit) in der Blockchain und einfügen seines Hashes in den neuen Block.
  4. Suche nach einer gültigen Lösung mittels Proof-of-Work (PoW) für diesen neuen Block-Kandidaten, währenddessen nach neuen Blöcken „Ausschau“ halten.
    • Sollte eine gültige Lösung gefunden werden, wird dieser Block der lokalen Blockchain angehangen und die gültige Lösung an das Netzwek mitgeteilt.

Proof-of-Work

Die Miner suchen nach einer gültigen Lösung für ihren sogenannten Block-Kandidaten, indem die folgenden Schritte immer wieder ausgeführt werden:

  1. Hochzählen (um Wert 1) einer frei wählbaren Zahl im Block-Kopf, welche Nonce genannt wird.
  2. Berechnung des resultierenden Hashes für den Block-Kandidaten
  3. Prüfung, ob dieser als Zahl interpretiert unterhalb eines Zielwertes ist (sog. Target)

Sollte der Hash des Blockes nicht unterhalb des Zielwertes liegen, würde der Block von den anderen Knoten im Netzwerk abgelehnt werden. Eine gültige Lösung finden, welche ein ausreichend kleinen Hash-Wert darstellt, ist das zu lösende Problem bei Proof-of-Work.

Mining-Leistung wird aus diesem Grund auch in Hashes pro Sekunde (Hashes/Sek) ausgedrückt.
In den frühen Jahren wurde diese meist in MH/s ausgedrückt, mittlerweile sind sie jedoch so effizient, dass diese in TH/s angegeben wird.

Schwierigkeit bzw. Mining-Difficulty

Ein wichtiger Faktor der beim Mining von Kryptowährungen mittels Proof-of-Work (PoW) zum tragen kommt, ist die Schwierigkeit oder sogenannte „Mining-Difficulty“.
Sie ist nötig, da die einzelnen Bitcoin-Knoten im Netzwerk, die Rate der Entstehung von neuen Blöcken selbst regulieren. Dadurch das sich weitere Miner dem Netzwerk anschließen, steigt Leistung, dadurch steigt die Rate von neu geschaffenen Blöcken. Dadurch das die Generationsrate von Blöcken zunimmt, steigt auch die Schwierigkeit, welche die Generationsrate wieder mindert (da das Finden einer gültigen Lösung schwieriger für jeden Einzelnen wird).
Ziel dieser Schwierigkeit ist es, die Rate für neue gültige Blocks auf durchschnittlich 10 Minuten festzusetzen. Der Wert von 10 Minuten wurde nicht willkürlich gewählt, sondern durch Satoshi Nakamoto damals gewählt als Kompromiss zwischen schnellen Bestätigungszeiten sowie verschwendeter Energie aufgrund von sogenannten „Chain Splits“ (Aufgabeln der Blockchain).
Die Selbstregulierung des Bitcoin Netzwerkes geschieht also durch Anpassung des Zielwertes (sog. Hash-Target-Value) und findet alle 2016 Blöcke statt, also alle 2 Wochen, legt man eine Dauer von 10 Minuten pro Block zu Grunde. Die neue Schwierigkeit wird ermittelt, indem die benötigte Zeit für die letzten 2016 Blöcke zu Grunde gelegt wird.

Block-Belohnung

Die Lösung des Proof-of-Work Problems benötigt viel Rechenleistung, welche wiederum Geld kostet. Um Menschen dazu anzuregen in Mining zu investieren, gibt es eine Belohnung für jeden erfolgreich gefundenen Block (zusätzlich erhält man die Transaktionsgebühren der im Block enthaltenen Transaktionen).

Bei der Erstellung des Block-Kandidaten, für den ein Miner eine gültige Lösung sucht, gibt dieser in der ersten Transaktion des Blockes eine (oder mehrere) Empfangs-Adresse(n) an. Dieser ersten Transaktion kommt insofern eine besondere Rolle zu Gute, als dass diese im Gegensatz zu allen anderen Transaktionen in einem Block „kein Geld auf den Tisch legen“ muss, um über welches zu verfügen. Es handelt sich dabei um die sogenannte „Coinbase“-Transaktion, welche das einzige Instrument darstellt, über welches neues Geld bzw. bitcoin in das System einfließen können.

Basierend auf dem Bitcoin-Algorithmus halbiert sich diese Belohnung alle 210.000 Blöcke, also in etwa alle 4 Jahre. Zu Beginn waren es 50 bitcoin (3. Januar 2009), ab Block 210000 dann 25 bitcoin (28.11.2012), dann 12.5 (9.07.2016). Die Halbierung auf 6.125 bitcoin pro Block steht uns also bevor, wann genau der Block 630.000 gefunden wird, wird hier geschätzt.

Wo warst du bei der letzten Halbierung der Bitcoin Block Belohnung?

Diese Halbierung wird zur Folge haben, dass sich die Gesamtmenge aller bitcoin 21.000.000 immer mehr annähern wird, wobei das letzte 1% über 100 Jahre dauern wird. Sobald dieses Limit erreicht ist (ca. im Jahr 2140), wird sich das System entweder durch Nutzung und daraus resultierenden Transaktionsgebühren selber tragen oder zum erliegen kommen (wahrscheinlicher ist jedoch, dass letztere Option eher vorher eingetreten wäre).

Solo Mining

Diese Art des Minings ist kaum noch verbreitet, soll aber dennoch kurz beleuchtet werden:

Unter Solo Mining versteht man das Mining komplett alleine zu betreiben, jeder gefundene Block stellt also eine persönliche Leistung dar, man erhält die volle Belohnung des Blocks sowie alle Transaktionsgebühren. Diese Art des Minings ist lediglich effizient, wenn die Mining-Schwierigkeit niedrig genug ist, dass man häufig genug Blöcke finden kann (z.B. alle 2 Wochen mal Glück hat).

Praxis-Beispiel:
Die aktuelle Leistung des Bitcoin-Netzwerkes liegt am 8. März 2018 bei 25.681.575 TH/s, um auf Hashes pro Sekunde zu kommen müssen wir 4x .000 anhängen (viermal drei Nullen) = 25.681.575.000.000.000.000 Hashes berechnet das Netzwerk also Momentan jede Sekunde, um etwa 10 Minuten zu brauchen, um eine gültige Lösung für das Proof-of-Work Problem zu finden mit der geforderten Schwierigkeit von 3.290.605.988.755. Der Hash eines Bitcoin-Blocks muss 18 führende Nullen aufweisen um diese Bedingung zu erfüllen.

Möchte man also bei diesen Bedingungen Solo-Mining betreiben und einen Block pro Tag Belohnung realisieren ergibt sich folgende Rechnung:
Aktuelle Geschwindigkeit des Netzwerks in Sekunden / 24 Stunden / 6 Blöcke pro Stunde
bzw. 25.681.575 TH/s / 24 Stunden / 6 Blöcke pro Stunde = 178.344,27 TH/s Rechenleistung die deine Hardware haben sollte, damit du erwarten kannst pro Tag einen Block zu finden. Ein Antminer S9 bringt momentan 13,5 TH/s Leistung und kostet etwa 2320$. Investiert man also 30.648.790$ in 13.210 Antminer S9s ist man dabei!

Aus diesem Grund sind die Jahre des Solo-Mining auch de facto vorbei und vorherrschend ist nur noch Pool-Mining.

Pool-Mining

Miner tuen sich in Mining-Pools zusammen, wird ein Block durch den Mining-Pool gefunden, bekommt die Belohnung der Mining-Pool, dieser leitet die Belohnung basierend auf seinem persönlichen Beitrag zum Auffinden des Blocks weiter. Wenn beispielsweise ein Drittel der Leistung des Pools aufgebracht hat um den nächsten Block zu finden, erhält der dementsprechend ein Drittel der Belohnung.

Die meisten Pools (mit Ausnahme von z.B. P2Pool) arbeiten nach der selben Vorgehensweise:

  • der Mining-Pool bereitet einen Block vor, dessen Coinbase-Transaktion an den Mining-Pool auszahlt.
  • Miner des Pools stellen eine „getWork“-Anfrage an den Pool, um den Block zu bekommen, an dem sie arbeiten sollen.
  • jeder Miner versucht das PoW-Problem für den Block zu lösen, indem er die Nonce hochzählt und einen Hash des Block-Kopfs erstellt.
  • Jeder berechnete Hash welcher unterhalb des Zielwertes liegt wird an den Pool weitergeleitet und dieser schreibt einen „Share“ gut.
  • Der Pool verifiziert alle übermittelten shares und hält den Anteil jedes Einzelnen fest.
  • Sobald ein Miner die korrekte Lösung findet, zahlt der Pool jeden Miner anteilig aus anhand aller übermittelten Shares seit der vorherigen Auszahlung.
  • Miner fragen ab an was sie arbeiten sollen, sobald ein neuer Block gefunden wird.

Zur Verteilung der Belohung gibt es verschiedene Schema, die beliebtesten sind:

  • Pay Per Share (PPS): Jeder Miner erhält für jede eingereichten Anteil einen garantierten Betrag. Pools, die diese Methode verwenden, verwenden oft auch individuelle Poolschwierigkeiten, anstatt variable Schwierigkeiten zu nutzen. Das erleichtert die Berechnungen erheblich und stellt sicher, dass jeder Miner fair behandelt wird.
  • Pay Per Last Number Of Shares (PPLNS): Jeder Miner wird auf der Grundlage der letzten Anzahl x der Anteile bezahlt, nachdem ein Block gefunden wurde. Wenn die Summe der Anteile zum Beispiel auf 5.000 festgelegt ist und ein Miner konnte 2.500 einbringen, erhält er die Hälfte der Belohnung.
  • Proportional: Jeder Miner wird nach seinem Anteil aller Anteile seit dem letzten Block bezahlt, dies ist PPLNS sehr ähnlich, anstatt jedoch lediglich bis x Anteile anzurechnen, werden alle Anteile zwischen den Blöcken gewertet und die Zahlung basierend am Anteil jedes einzelnen berechnet.

Da sich dieser Beitrag auch an Neulinge richtet, wollen wir auch noch einmal auf die Hardware eingehen, sortiert haben wir sie nach ihrer Verwendung in historischem Kontext (von neu nach alt):

  • ASIC Mining: ASICs (Application-Specific Integrated Circuits) sind speziell für eine bestimmte Anwendung und sind damit um Größenordnungen schneller als GPUs, die universell einsetzbar sind. In Bitcoin werden diese Chips so angepasst, dass sie SHA-256 Hashing durchführen. ASIC-Mining ist heute die einzige wirtschaftlich effiziente zum Mining geeignete Technik.
  • FPGA (Field Programmable Gate Arrays): Ein Zwischenschritt zwischen einem schnellen Prozessor und einem dedizierten ASIC, FPGAs wurden verwendet, bis ASICs auftauchten und Bitcoin-Mining dominierten.
  • GPU-Mining: GPUs (d.h. Graphics Processing Units auf Grafikkarten) wurden entwickelt, um viele mathematische Berechnungen parallel durchzuführen und sind um Größenordnungen schneller als CPUs.
  • CPU-Mining: Ursprünglich hat die Bitcoin-Client-Software von Satoshi auf dem PC des Anwenders gearbeitet, aber dann wurden CPUs durch effizientere Mining-Hardware in aus dem Markt gedrängt.

Kurz und knapp, spielt ihr mit dem Gedanken in Bitcoin Mining einzusteigen, gibt es nur einen einzigen Weg wo das Sinn macht, mithilfe durch dedizierte Hardware wie ASICs oder gar nicht. Sollte euch das Rechenbeispiel nicht abgeschreckt haben, solltet ihr immer Bedenken: es kommt beim Mining hauptsächlich darauf an, wieviel euch eure Energie kostet. Wir hoffen euch einen Überblick schaffen haben zu können.

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here