Wer versteckt die Blöcke, die von den Minern gefunden werden?

By |2018-04-14T15:29:07+00:0022. März 2018|

Warum gibt es einzelne Blöcke?

Häufig hört man die Aussage, die Miner bekommen Bitcoins für jeden gefundenen Block. Diese Formulierung erweckt die Erwartungshaltung, dass die Blöcke vorher versteckt worden seien und wirft weiterhin die Frage auf, wofür es überhaupt die einzelnen Blöcke gibt.
Beginnen wir mit der zweiten Frage nach dem Sinn der einzelnen Blöcke am Beispiel von Bitcoin, wobei sich die Erklärungen auf andere Blockchains im Wesentlichen übertragen lassen.

Jede Transaktion, die von einem Absender ausgelöst wird, wird über einen Full-Node (ein Netzwerkteilnehmer, welcher Buch über alle Transaktionen führt) an alle anderen Full-Nodes verteilt. Der einfachste Weg wäre nun, bei jeder Transaktion zu prüfen, ob der Absender über das versendete Guthaben verfügt. Ist dies der Fall könnte jeder Full-Node, die Transaktion als valide Überweisung in das eigene Register übernehmen. Ein solches System würde nur dann funktionieren, wenn man davon ausgeht, dass alle Netzwerkteilnehmer ihr Guthaben immer nur einer Person zusenden (also nie zwei widersprüchliche Transaktionen beauftragen) und die Latenzen im Netzwerk so klein wären, dass stets jeder Full-Node auf dem gleichen Stand ist.

Ein solches, lediglich auf Vertrauen basierendes System ist nicht mehr stabil, sobald es um echte Geldbeträge geht. Aus diesem Grund muss ein Verfahren geschaffen werden, mit welchem alle Full-Nodes sich regelmäßig abgleichen. Dieser Konsens wird dadurch geschaffen, dass nach einer gewissen Zeit ein Full-Node alle Transaktionen in einer Zeichenkette zusammenfasst und diese als sogenannten Block an die anderen Full-Nodes sendet. Dieser neue Block wird dann von den anderen Full-Nodes zu der eigenen Buchführung hinzugefügt, sodass alle auf dem gleichen Stand sind. Auf das Problem, dass zwei neue Blöcke gleichzeitig verschickt werden könnten, kommen wir später zu sprechen. Doch zunächst die Frage, wie wird nun ausgewählt, wer derjenige ist, der den nächsten Block verteilt und damit die Prämie bekommt, die für jeden neu kreierten Block ausgeschüttet wird?

Wie kann man einen Block finden und wer versteckt ihn?

Ein neuer Block enthält zum einen verschiedene Transaktionen. Darüber hinaus wird in den Block eine Zahl geschrieben, die sich Nonce nennt und vom Miner ausgewählt wird. Als Miner werden die Personen bezeichnet, welche sich aktiv an dem Entstehungsprozess neuer Blöcke beteiligen. Die Nonce stellt einen Freiheitsgrad im Block dar, der vom Miner variiert wird, bis der Hashwert des Blocks ein bestimmtes Kriterium erfüllt. Eine Hashfunktion ist eine Funktion, die praktisch nicht rückrechenbar ist. Sie verwandelt die Zeichenkette des Blocks in eine Art Identifikationsnummer, die auch als Hashwert bezeichnet wird.

Ziel des Miners ist es nun, so lange einen passenden Wert für die Nonce auszuprobieren, bis der Hashwert des gesamten Blocks einen bestimmten Grenzwert unterschreitet. Anders als im Sprachgebrauch üblich, findet der Miner also nicht direkt einen neuen Block, sondern viel mehr eine passende Nonce. Den neuen Block mit der passenden Nonce kann er nun verteilen und ihm wird mittels einer sogenannten Coinbase-Transaktion ein bestimmter Betrag gutgeschrieben. Diese Gutschrift für neu kreierte Blöcke liegt momentan bei 12,5 Bitcoin und halbiert sich alle 4 Jahre.

Auf diese Weise wird zum einen ein Anreiz zur aktiven Netzunterstützung gesetzt, zum anderen bietet dieses Verfahren eine valide Möglichkeit, die Coins unter den Netzwerkteilnehmern aufzuteilen. Jeder sich im Umlauf befindende Bitcoin wurde durch solch eine Coinbase-Transaktion „geschürft“. Durch die sich stetig verringernde Menge neu ausgeschütteter Bitcoins läuft die Anzahl aller jemals zirkulierender Coins gegen einen festen Wert, was auch einer der Gründe für den deflationären Kursverlauf des Bitcoins der letzten Jahre ist. Mehr dazu wird in dem Artikel “Wie ergibt sich der Wert von Kryptowährungen” diskutiert.

Jeder Miner hat aufgrund der Coinbase-Transaktion also ein unmittelbares Interesse daran, als erster eine passende Nonce zu finden und somit dann den neuen Block zu verteilen.

Haben alle Miner die gleiche Chance?

Sollten einmal zwei Blöcke von unterschiedlichen Minern gleichzeitig gefunden werden, so kann jeder Miner frei entscheiden, an welcher Version der Kette er weiterarbeiten möchte. Die Version, für welche dann der nächste Block als erstes gefunden wird, setzt sich dann in der Regel durch, weil aus spieltheoretischer Sicht es für die Miner immer am profitabelsten ist, an der längsten Kette zu arbeiten.

Um zu gewährleisten, dass alle Miner zum gleichen Zeitpunkt anfangen, die Nonce für den nächsten Block zu berechnen, muss jeder Block den Hashwert des vorherigen Blocks enthalten. Diese Verkettung der Blöcke gibt der Blockchain ihren Namen und hat noch einen weiteren entscheidenden Vorteil: Würde ein Betrüger versuchen, bereits bestätigte Transaktionen, die Teil der Blockchain sind, zu seinen Gunsten anzupassen, dann würde sich durch das Modifizieren der Transaktion auch der Hashwert des Blocks ändern. Dieser würde dann nicht mehr mit dem im Folgeblock abgelegten Hashwert übereinstimmen. Der Betrugsversuch könnte somit unverzüglich als solcher identifiziert werden.

Jeder Block enthält den Hashwert seines Vorgängers

 

Kann man einen Block rückgängig machen und aus der Blockchain trennen?

Um eine Transaktion nachträglich abzuändern, müsste man also nicht nur den Transaktionsblock, sondern auch alle an den Transaktionsblock angehängten Blöcke neu kreieren. Bei dieser neuen Berechnung stünde die Rechenleistung des Betrügers in Konkurrenz zu der Rechenleistung des übrigen Netzwerks, da die Miner in ihrem eigenen Interesse immer Blöcke an den längsten Ast der Kette anhängen.

Die Wahrscheinlichkeit, dass eine Transaktion durch einen Angriff modifiziert wird (zum Beispiel über sogenanntes Double Spending), nimmt also mit jedem Block, der nach der Transaktion der Blockchain angehängt wird, ab. Üblicherweise wartet man bei wirklich großen Beträgen 6 Blöcke ab, bevor man eine Transaktion als fest verankert in der Blockchain betrachtet. Im Bitcoin-Netzwerk beträgt die durchschnittliche Zeit, in der ein Block gefunden wird 10 Minuten. 6 Blöcke umfassen somit in etwa einen Zeitraum von einer Stunde.

Wie wird sichergestellt, dass durchschnittlich alle 10 Minuten ein neuer Block geschürft wird?

Wie oben beschrieben, wird ein Block als gültig anerkannt, wenn sein Hashwert einen bestimmten Grenzwert unterschreitet. Dieser Grenzwert wird von einem Algorithmus alle 2016 Blöcke, also in etwa alle zwei Wochen, neu angepasst. Die Wahl des neuen Grenzwertes erfolgt so, dass bei einer Rechenpower, die dem Durchschnitt der letzten 2016 Blöcke entspricht, zukünftig die zu erwartende Rechenzeit pro Block wieder 10 Minuten beträgt. Nehmen mehr Miner am Netzwerk teil oder stellen die Miner mehr Rechenpower zur Verfügung, so sinkt die durchschnittliche Blockzeitlänge und der zu unterschreitende Grenzwert wird niedriger eingestellt. Ist das Mining hingegen, zum Beispiel aufgrund fallender Kurse, weniger profitabel, springen Miner ab, die gesamte Rechenpower sinkt und der Grenzwert wird bei der nächsten Anpassung wieder angehoben. Auf diese Weise wird eine in etwa gleichbleibende Blockzeitlänge sichergestellt, was wiederum eine wichtige Voraussetzung für eine stabile Blockchain darstellt.

Zusammenfassend lässt sich also festhalten, dass die einzelnen Blöcke den Konsens zwischen den verschiedenen Minern ermöglichen. Ein Block stellt quasi den Pulsschlag einer jeden Blockchain dar und ist mit dem jeweiligen Vorgänger-Block über den hinterlegten Hashwert verkettet.