Zum Inhalt springen
buybitcoinsmart

Glossar / Mining und Konsens

Verwaister Block

Was ist ein verwaister Block?
Ein verwaister Block ist ein Block, dessen Vorgänger Ihr Node noch nicht gesehen hat, sodass er weder validiert noch verbunden werden kann, was nicht das ist, was die meisten meinen, wenn sie das Wort verwenden.

Das Wort hat zwei Leben. Im Protokoll beschreibt es einen Block, der außer der Reihe eintrifft, ohne einen bekannten Vorfahren, an den er angehängt werden könnte; im alltäglichen Gebrauch, und bei den meisten Block-Explorern, bezeichnet es einen gültigen Block, der schlicht ein Rennen verloren hat, was korrekt als obsoleter Block bezeichnet wird. Bitcoin Core hat in Version 0.10, veröffentlicht im Februar 2015, die Speicherung verwaister Blöcke ganz eingestellt.

Wie es funktioniert

Ein verwaister Block existiert nur in der Lücke zwischen dem Empfang eines Blocks und dem Wissen, wohin er gehört.

Die Validierung ist sequenziell. Um einen Block zu prüfen, benötigen Sie die Menge der nicht ausgegebenen Outputs in dem Zustand unmittelbar davor, und diese bauen Sie auf, indem Sie jeden früheren Block der Reihe nach anwenden. Geben Sie einem Node einen Block, dessen Vorgänger fehlt, kann er den Proof of Work im Header prüfen, aber sonst nichts: nicht die Gebühren, nicht die Blockbelohnung, nicht, ob ein Input bereits ausgegeben wurde. Der Block ist nicht verifizierbar statt ungültig.

Ältere Versionen von Bitcoin Core legten solche Blöcke im Arbeitsspeicher ab und warteten darauf, dass der fehlende Vorgänger auftauchte. Das war nötig, weil Blöcke per Ankündigung angefordert wurden, sodass ein Peer sie leicht außer der Reihenfolge liefern konnte. Die Headers-First-Synchronisierung machte das überflüssig. Ein Node lädt und prüft jetzt die Kette der 80 Byte großen Header, bevor er einen einzigen Blockkörper anfordert, was bedeutet, dass er immer weiß, wohin ein eintreffender Block gehört, und Blockkörper ohne Verwechslung von mehreren Peers gleichzeitig anfordern kann. Der Pool für verwaiste Blöcke wurde in derselben Version entfernt, und auf einem modernen Node ist ein echter verwaister Block praktisch nicht mehr zu erzeugen.

Eines behielt den Namen. Bitcoin Core führt weiterhin einen Pool für verwaiste Transaktionen für Transaktionen, deren Inputs er nicht gesehen hat, und hält darin standardmäßig bis zu 100 davon, in der begründeten Annahme, dass die fehlende Vorgängertransaktion nur Sekunden hinterher ist. Wenn das Wort also in den eigenen Protokollen oder der Konfiguration von Core auftaucht, geht es um Transaktionen, nie um Blöcke.

Wo Sie es sehen

Das Wort verwaist überlebt vor allem an Stellen, die etwas anderes beschreiben.

Block-Explorer sind die größte Quelle der Verwirrung: mehrere von ihnen veröffentlichen eine Seite mit verwaisten Blöcken, die gültige Blöcke auflistet, die verworfen wurden, als ein konkurrierender Block gewann, und die Berichterstattung übernimmt das Label. Dashboards von Mining-Pools tun dasselbe und melden eine Verwaisungsrate, die in Wahrheit eine Obsoleszenzrate ist. Altcoin-Dokumentation, die zu großen Teilen aus dem frühen Wiki von Bitcoin abgeschrieben ist, verwendet den Begriff für beide Bedeutungen austauschbar.

Bitcoin Core nicht. Fragen Sie ihn nach den konkurrierenden Zweigen, die er kennt, meldet er jede Spitze mit einem Status von active, valid fork, valid headers, headers only oder invalid. Einen Status „orphan“ gibt es nicht, weil die Situation, die das Wort einst beschrieb, nicht mehr auftritt.

Für einen Leser ist die nützliche Prüfung, ob der betreffende Block jemals geprüft wurde. Wenn Ihnen jemand seine Höhe, seine Transaktionsanzahl und den Pool nennen kann, der ihn gemint hat, wurde der Block vollständig validiert und hat ein Rennen verloren, das gesuchte Wort ist also obsolet.

Verwaister Block vs. obsoleter Block

Ein verwaister Block kann nicht verifiziert werden, weil sein Vorgänger unbekannt ist. Ein obsoleter Block wurde verifiziert, war vollständig gültig und wurde nur deshalb aufgegeben, weil zuerst ein anderer Block derselben Höhe darauf aufgebaut wurde. Fast jeder, der verwaist sagt, meint obsolet, darunter mehrere Explorer; es lohnt sich daher zu fragen, welche der beiden Bedeutungen eine Quelle meint, bevor Sie daraus Schlüsse ziehen. Keines von beiden kostet Sie als Nutzer etwas: Zahlungen in einem verworfenen Block gehen zurück in den Mempool und werden normalerweise innerhalb von ein oder zwei Blöcken erneut gemint.

Nicht zu verwechseln mit

Häufig gestellte Fragen

Ist ein verwaister Block dasselbe wie ein obsoleter Block?

Nein, obwohl die meisten Menschen die Wörter austauschbar verwenden. Ein verwaister Block hat keinen bekannten Vorgänger und kann nicht geprüft werden. Ein obsoleter Block ist vollständig gültig und hat schlicht das Rennen darum verloren, Teil der Hauptkette zu sein, was Explorer, die verwaiste Blöcke auflisten, Ihnen tatsächlich zeigen.

Verliere ich Geld, wenn meine Transaktion in einem Block war, der verworfen wurde?

Nein. Transaktionen, die es nicht in die Gewinnerkette schaffen, kehren in den Mempool zurück und werden fast immer in den nächsten ein oder zwei Blöcken gemint. Das einzige echte Risiko besteht darin, eine Zahlung nach nur einer Bestätigung als endgültig zu behandeln.

Weiterlesen

Verwandte Begriffe

Mehr zum Thema Mining und Konsens

Diese Seite auf Englisch lesen