Das Bitcoin-Netzwerk legt sehr konkrete und einheitliche Regeln fest, wann ein Block gültig ist und wann nicht. Eigentlich sollten daher keine großen Besonderheiten auftreten. Diese Vermutung trifft zwar meistens zu, es gibt aber dennoch Blöcke, die etwas oder sogar komplett aus der Reihe tanzen. Einige solcher Seltenheiten schauen wir uns in diesem Beitrag genauer an, und versuchen zu verstehen, wie es jeweils dazu gekommen ist!

Große Blöcke

Passen keine weiteren Transaktionen mehr in einen Block, dann sprechen wir von einem „vollen“ Block. Daran ist natürlich erstmal nichts ungewöhnlich, da solche Blöcke eher der Regelfall sind, zumindest so lange genug Transaktionen im Mempool auf eine Bestätigung warten.

Doch seit Anfang 2023, genauer gesagt seit dem Ordinals Protokoll, tauchen immer häufiger ungewöhnlich große Blöcke auf, die sehr nah an die theoretische maximale Blockgröße von 4 MB herankommen. Normalerweise ist dies nicht der Fall, da eine gewöhnliche Bitcoin Transaktion keine großen Daten im sogenannten Witness-Teil der Transaktion mitführt. Genau das trifft aber auf Ordinal Inscriptions zu, die eben diesen vergünstigten Teil der Transaktion ausnutzen, um verhältnismäßig viel Platz beanspruchen zu können.

Egal, ob es einem gefällt oder nicht, solche Blöcke werden wohl zukünftig eher zur Normalität als Seltenheit.

Lese-Tipp: Größter Bitcoin-Block in der Geschichte: Ein Angriff auf Bitcoin?

Leere Blöcke

Der ein oder andere ist mit einem Block Explorer vielleicht schon einmal über einen Block gestolpert, der auf den ersten Blick komplett leer erschien und keine Transaktionen aus dem Mempool enthielt. Wie kommt es dazu und ist so etwas nicht schädlich für Bitcoin, da sozusagen Transaktionen zensiert werden?

Zunächst sollte man klarstellen, dass jeder Bitcoin Block mindestens eine Transaktion enthalten muss: Die sogenannte Coinbase Transaktion, mit der sich der Miner, welcher den Block gefunden hat, seine Belohnung (also die Transaktionsgebühren und neu ausgeschüttete Bitcoin) auszahlen kann. Diese Transaktion ist natürlich auch in den „leeren“ Blöcken enthalten, da der Block ansonsten ungültig wäre.

Gemeint sind also Blöcke, die über die Coinbase Transaktion hinaus keine weiteren Transaktionen von anderen Nutzern enthalten. In den allermeisten Fällen gibt es dafür eine einfache und harmlose Erklärung und entsprechend keinen Grund, sich über mögliche Zensur Sorgen zu machen. Denn für die gäbe es ohnehin keinen Anreiz, da der Miner bewusst auf Transaktionsgebühren verzichten würde.

Mining ist ein extrem kompetitives Geschäft, bei dem wortwörtlich jede Millisekunde zählt. Um nicht unnötig Strom zu verbrauchen bzw. die eigene Mining-Hardware ungenutzt herum stehenzulassen, beginnen Miner, sobald sie einen neuen Block aus dem Netzwerk erhalten, sofort mit der Suche nach dem nächsten Block.

Da es aber einen kurzen Moment dauert, bis eine neue Vorlage für den nächsten Block erstellt wurde, lassen Miner ihre Rechner so lange einfach auf einer leeren Standardvorlage arbeiten. Wenige Sekunden später wird dann auf den richtigen Kandidaten, welchen der Miner z.B. vom Server seines Mining Pools erhält, gewechselt.

Während dieses kurzen Zeitraums ist es allerdings möglich, wenn auch relativ unwahrscheinlich, dass der Miner einen gültigen Block findet. Dieser enthält dann entsprechend keine Transaktionen, da dafür einfach die Zeit gefehlt hat.

Aufgrund der Seltenheit solcher Blöcke stellt dies natürlich kein relevantes Problem für Bitcoin dar. Darüber hinaus sichern auch Blöcke ohne Transaktionen das Netzwerk weiter ab, denn es handelt sich schließlich, von den fehlenden Transaktionen abgesehen, um ganz normale bzw. gültige Blöcke.

Verlorene Bitcoin?

Es gibt neben den fast schon „natürlich“ auftretenden leeren Blöcken noch einen Extremfall: Miner, die bei der Konfiguration ihrer Block-Vorlagen etwas ziemlich Wichtiges vergessen haben: Sich ihre Belohnung, sollten sie einen gültigen Block finden, überhaupt auszuzahlen!

Bitcoin Blöcke müssen zwar wie bereits erwähnt eine Coinbase Transaktion enthalten, doch diese muss die Belohnung, welche dem Miner zusteht, nicht zwingend ausgeben, sondern darf sie nur nicht überschreiten. Daher kam es in der Vergangenheit bereits zu leeren Blöcken, die nicht einmal in der Coinbase Transaktion etwas ausgegeben haben:

mempool.space - Coinbase Transaktion von Block 501726

Auch kam es in der Vergangenheit öfters zu Blöcken, in denen die theoretisch mögliche Belohnung nicht komplett ausgereizt wurde. Beispielsweise versäumten Miner zwischen Block 162705 und 169899 in fast 200 Blöcken sich ihre Belohnung vollständig auszuzahlen, was zu einem Verlust von fast 10 BTC führte. Grund dafür war ein Bug in der verwendeten Mining Software.

Genau 21 Millionen Bitcoin wird es zwar ohnehin nie geben, aber durch solche Missgeschicke natürlich erst recht nicht. Denn die Bitcoin, die eigentlich in diesen Blöcken hätten ausgeschüttet werden sollen, sind sozusagen „für immer verloren“ und werden auch in Zukunft niemals in den Umlauf kommen.

Wer weiß, vielleicht handelt es sich dabei auch gar nicht um Versehen, sondern die betroffenen Miner waren nur „in it for the technology“...

Doppelgänger

In den Anfängen von Bitcoin gab es einen Bug, der ermöglichte alte Coinbase Transaktionen zu überschreiben, da es damals noch keinen Mechanismus gab, der identische Transaktionen, also solche mit gleicher TXID (der Hashwert der Transaktion), berücksichtigte. Normalerweise ist das auch kein Problem, da jede Bitcoin Transaktion eigentlich einzigartig ist. Zumindest damals war dies bei Coinbase Transaktionen aber nicht zwingend der Fall, da die Inputs, also die "neuen Bitcoin", immer gleich ausgesehen haben.

Daher kam es zweimal zu Blöcken, die eine vorherige Coinbase Transaktion überschrieben haben, was jeweils zu einem Verlust von 50 BTC führte. Schaut man sich zwei solcher Transaktionen an, z.B. aus Block 91842 und 91812, sehen diese tatsächlich identisch aus.

Mittlerweile ist dieser Fehler natürlich längst behoben und auch Coinbase Transaktionen sind gezwungenermaßen einzigartig.

Zeitreisende Blöcke

Jeder Block hat einen festen Zeitstempel, der augenscheinlich den Zeitpunkt angibt, an dem er gefunden und veröffentlicht wurde. Umso seltsamer ist es dann, wenn ein Block angeblich älter ist als sein direkter Vorgänger, wie es z.B. zufälligerweise direkt beim Nachfolger von einem unserer bisherigen Beispiele der Fall ist:

mempool.space - Block 720480 und 720481

Um zu verstehen, wie es dazu kommen kann, müssen wir uns anschauen, wie diese Zeitstempel überhaupt zustande kommen. Denn es gibt im Bitcoin Netzwerk selbstverständlich keine zentrale Partei, bei der man nach der aktuellen Uhrzeit fragen kann. Genauso wäre es unrealistisch zu versuchen ein dezentrales Netzwerk wie Bitcoin auf eine exakte Uhrzeit zu synchronisieren.

Stattdessen kann der Zeitstempel tatsächlich relativ flexibel vom Miner selbst gewählt werden, genau wie andere Parameter des Blockes auch. Damit keine völlig absurden Uhrzeiten in den Blöcken landen, die weit in der Zukunft oder Vergangenheit liegen, gibt es einen Mechanismus, der dafür sorgt, die Zeitstempel in einem gewissen Bereich zu halten. Jede Bitcoin Node kann mithilfe dieser Regel dann selbst nachvollziehen und auch nachträglich verifizieren, ob die verwendeten Zeitstempel gültig sind.

Median Time Past

Die sogenannte Median Time Past (MTP) ist der Median, also „die Mitte“, aller Zeitstempel der vergangenen 11 Blöcke. Der Zeitstempel eines neuen Blockes muss nun größer als dieser Median sein, um von einer Node als gültig akzeptiert zu werden. Damit werden die möglichen Zeitstempel neuer Blöcke fortlaufend nach unten gedeckelt und die Zeit läuft langfristig, wie es sein sollte, vorwärts.

Zusätzlich zu dieser Regel darf ein Zeitstempel nicht weiter als zwei Stunden in der Zukunft liegen, relativ zur eigenen Uhrzeit der Node (welche natürlich unabhängig von Zeitzonen ist).

Damit einigt man sich dezentral, ganz ohne Orakel Problem, auf eine ungefähre Uhrzeit.

Ein Nebeneffekt ist allerdings der daraus resultierende Spielraum bei der Wahl des Zeitstempels. Es kann, wie wir oben im Beispiel sehen, zwischen zwei Blöcken zu widersprüchlichen Zeitstempeln kommen. Wie wir jetzt gelernt haben, ist das aber innerhalb der Toleranz der Netzwerkregeln und damit völlig in Ordnung. Wer seinen Backofen nach der Bitcoin Blockchain stellt, dürfte allerdings Probleme bekommen!

Der Bitcoin Friedhof

Hinweis: Die unter anderem in diesem Abschnitt verwendeten Bezeichnungen (Extinct, Orphaned, Stale, ...) sind nicht klar definiert und werden häufig miteinander verwechselt. Stößt man auf einen der Begriffe, sollte man daher immer auf den Kontext achten, um klar zuzuordnen, was überhaupt gemeint ist.

Ausgestorbene Blöcke

In einem dezentralen Netzwerk dauert es immer einen Moment, bis sich neue Informationen an alle Teilnehmer verbreitet haben. Passiert „am einen Ende“ des Netzwerks etwas Neues, dann dauert es einige Sekunden, bis das auch wirklich alle mitbekommen haben. Unvermeidbar ist daher der seltene Sonderfall, dass zwei Miner zum ungefähr gleichen Zeitpunkt einen gültigen Block finden, und daher beide im Netzwerk veröffentlicht werden.

Es kommt zu einer Fork, also einer Spaltung der Blockchain, da es jetzt zwei gültige Blöcke auf der gleichen Höhe gibt. Beide Blöcke sind gültig, weshalb es zunächst keine Einigkeit darüber gibt, welcher von beiden schlussendlich akzeptiert wird. Was ziemlich beunruhigend klingt, ist in diesem natürlich auftretenden Szenario aber kein Problem, da sich diese Unsicherheit mit hoher Wahrscheinlichkeit bereits mit dem nächsten Block wieder auflösen wird. Denn jeder Miner muss sich schließlich zwingend für einen der beiden Blöcke entscheiden. Der Block, auf dem die Mehrheit des Netzwerks weiter aufbaut, wird schließlich Teil der Bitcoin-Blockchain.

Zurück bleibt ein formal gültiger Block, der nicht mehr zur aktuellen Chain gehört und damit wortwörtlich links liegen gelassen wird. Man könnte daher von einem „ausgestorbenen“ Block sprechen (engl. Extinct Block). Häufig fällt hier auch das Stichwort Orphaned, also verwaist, obwohl das eigentlich nicht ganz korrekt ist: Der Block hat schließlich einen gültigen Vorgänger und bildet damit auch eine vollständig gültige Chain.

Die „beste“ und damit gültige Blockchain ist allerdings die mit dem größten Arbeitsnachweis (Proof of Work), also vereinfacht gesagt die längste, zu welcher der ausgestorbene Block eben nicht mehr gehört.

Beispiel gefällig?

Vor wenigen Tagen, am 18. März 2023, kam es zufälligerweise zu einer natürlich auftretenden Fork. Auf Blockhöhe 781277 wurden innerhalb weniger Sekunden zwei Blöcke gefunden und im Netzwerk veröffentlicht. Der Mining-Pool ViaBTC, welcher einen der beiden konkurrierenden Blöcke gefunden hat, fand dann wenige Minuten später auch Block 781278, konnte damit den Konflikt lösen und sich die „doppelte Belohnung“ sichern.

Zurück bleibt ein ausgestorbener Block 781277, der nicht mehr Teil der aktuellen Bitcoin Blockchain ist. Transaktionen, die in diesem ausgestorbenen Block waren, und nicht bereits im anderen bestätigt wurden, kehren dabei wieder in den Mempool zurück und haben sozusagen „nie stattgefunden“.

Quelle: fork.observer

Verwaiste Blöcke

Eine passendere Definition für einen Orphan Block ist das Fehlen seines Vorgängers, also seinen „Eltern“. Ein solcher Block baut also auf einem ungültigen bzw. unbekannten Block auf und kann damit nicht validiert werden, auch wenn er selbst formal gültig ist.

Dazu kann es beispielsweise kommen, wenn eine Node einen neuen Block erhält, obwohl sie noch gar nicht auf dem aktuellsten Stand des restlichen Netzwerks ist. In diesem Fall würde die Node den verwaisten Block im Arbeitsspeicher halten, bis sie seinen Vorgänger erhalten hat und damit die „Wissenslücke“ schließen konnte.


Du kennst noch weitere ungewöhnliche Bitcoin Blöcke? Dann teile sie gerne mit der Community in unserem Blocktrainer Forum!

[partnerlink kategorie='premiumpartner']