Was sind verwaiste und veraltete Blöcke?

Wenn ich es richtig verstehe, ist ein veralteter Block ein Block, für den eine frühere Bestätigung gefunden wurde und von der Mehrheit der Menschen akzeptiert wurde. Dieser Block gilt als ungültig und wird später nie verwendet.

Aber was ist ein verwaister Block. Wie wird es erstellt? Wie wird verifiziert, dass er verwaist ist und was wird mit dem verwaisten Block gemacht?

Ob sie mehrheitlich angenommen wurde oder nicht, ist für die Definition unerheblich.

Antworten (4)

Veraltete Blöcke :

Jede Sekunde kann eine Blockade „gelöst“ werden. Das bedeutet, dass alle anderen auf der Welt, die an diesem Block arbeiten, aufhören und ihre Arbeit wieder aufnehmen müssen. Die Fortsetzung der Arbeit nach diesem Punkt wird als Arbeit an einem „stale block“ bezeichnet, da es sich um alte Daten und alte Transaktionen handelt.

Meines Wissens nach wird der Begriff veraltet viel häufiger auf Aktien beim Mining in einem Pool angewendet, sodass Sie eher von veralteten Aktien als von veralteten Blöcken hören. In diesem Fall würde sich der Pool wahrscheinlich nicht einmal die Mühe machen zu prüfen, ob die Freigabe tatsächlich einen Block gelöst hat oder nicht.

Verwaiste Blöcke :

Losgelöste oder verwaiste Blöcke sind gültige Blöcke, die nicht Teil der Hauptkette sind. Sie können natürlich auftreten, wenn zwei Miner zu ähnlichen Zeiten Blöcke produzieren, oder sie können von einem Angreifer (mit genügend Hashing-Power) verursacht werden, der versucht, Transaktionen rückgängig zu machen.

Nach meinem eigenen Verständnis werden verwaiste Blöcke zunächst von der Mehrheit des Netzwerks akzeptiert, aber später abgelehnt, wenn der Nachweis einer längeren Blockchain vorliegt, die diesen bestimmten Block nicht enthält.

Dies bedeutet, dass ein Benutzer eine Transaktion mit einer Bestätigung sehen und dann, wenn eine längere Blockchain empfangen wird, die die Transaktion nicht enthält, diese auf 0 Bestätigungen zurücksetzen könnte.

Wie Pieter in seiner Antwort schrieb, ist das, was Sie einen „verwaisten Block“ nennen, ein ausgestorbener Block, der möglicherweise „verwaiste Transaktionen“ enthält. Tatsächliche verwaiste Blöcke sind Blöcke, die von einem Knoten empfangen wurden, bevor der Knoten den übergeordneten Block empfangen hat.

Es gibt mehrere Definitionen mit sich überschneidenden Bedeutungen.

Die erste wird vielleicht am besten als ausgestorbene Blöcke bezeichnet. Dies sind Blöcke, die durch den Aufbau eines Blocks entstanden sind, der nicht mehr die aktive Spitze der Kette ist. Einige Knoten haben ihn vielleicht irgendwann für den besten Block gehalten, aber sie sind auf eine andere Kette umgestiegen, die den relevanten Block nicht mehr enthält. Sie sind gültig, verifiziert und ihre Abstammung bis zum Genesis-Block ist vollständig bekannt – sie sind derzeit nur nicht „aktiv“. Sie werden manchmal als veraltete Blöcke (typischerweise im Kontext von Mining-Software, die realisiert, dass sie auf alten Daten aufbaut) oder verwaiste Blöcke bezeichnet. Der letztgenannte Name rührt von der Tatsache her, dass Auszahlungen aus erloschenen Blöcken im Referenzkunden als „verwaist“ gekennzeichnet sind (was darauf hinweist, dass ihre Coinbase-Transaktionen jetzt verwaist sind).

Es gibt jedoch auch echte Waisenblöcke , wobei Waisen in seiner ursprünglichen Bedeutung "kein Elternteil haben" bedeutet. Dies sind Blöcke, die von einem Knoten empfangen werden, der (noch) nicht seine vollständige Herkunft hat und daher nicht validiert werden kann. Knoten behalten solche Blöcke im Gedächtnis, während sie ihre Kollegen bitten, die Lücke ihrer Geschichte zu füllen. Der Client zeigt diese nicht an, wenn also von verwaisten Blöcken gesprochen wird, beziehen sie sich höchstwahrscheinlich auf ausgestorbene Blöcke. Beachten Sie, dass es seit Bitcoin Core v0.10 aufgrund einer erheblichen Änderung des Download-Mechanismus keine solchen verwaisten Blöcke mehr gibt.

Terminologie ist hier verwirrend :)

Gute Erklärung, Pieter, könnten Sie bitte Einzelheiten zum aktuellen Download-Mechanismus erläutern, den Bitcoin Core verwendet? Ich frage mich, wie es das Problem der verwaisten Blöcke löst.
@eugenkr Die Header werden zuerst heruntergeladen und validiert, bevor der Client überhaupt Blockdaten anfordert. Infolgedessen wird es niemals Blöcke erhalten, deren Eltern es nicht kennt.
Bin über Twitter auf diesen Thread gekommen. Mein Vorschlag ist "einsamer Block".
Zur Bestätigung zeigt dieses Diagramm auf blockchain.com , was Sie lieber ausgestorbene Blöcke nennen.

Waisen sind nicht in der Kette (wie vom Verarbeitungsknoten gesehen), weil ihre Eltern fehlen, Veraltete sind nicht in der Kette, weil sie keine Kinder in der Kette haben.

Quelle: das Glossar auf bitcoin.org:

veraltete Blöcke sind: „Blöcke, die erfolgreich abgebaut wurden, aber nicht in der aktuell besten Blockkette enthalten sind, wahrscheinlich weil die Kette eines anderen Blocks auf derselben Höhe zuerst verlängert wurde.“

und verwaiste Blöcke sind: „Blöcke, deren übergeordneter Block nicht vom lokalen Knoten verarbeitet wurde, sodass sie noch nicht vollständig validiert werden können.“

„Waisen sind nicht in der Kette, weil sie keine Eltern in der Kette haben“ diese Aussage ist falsch. Verwaiste Blöcke haben "Eltern"-Blöcke, die Teil der Blockchain sind
Laut en.bitcoin.it/wiki/Vocabulary#Orphan_Block : „Ein verwaister Block ist ein Block, der in der derzeit längsten Blockkette keinen bekannten Elternteil hat. Nicht zu verwechseln mit einem veralteten Block (der einen bekannten Elternteil hat, aber ist nicht mehr Teil der längsten Kette)."

Beide Antworten sind ziemlich gut und erklären gut das Konzept des verwaisten Blocks (oder genauerer Name nach Pieter Wuilie: ausgestorbene Blöcke ). Ich möchte nur eine spezifische Ansicht für die zukünftigen Leser geben, die sich ebenso wie ich die echten verwaisten Blöcke in der Bitcoin-Kette ansehen möchten :)

Auf der Website blockchain.info gibt es einige detaillierte Aufzeichnungen für diese verwaisten Blöcke . Wenn Sie auf die Blockhöhe klicken, sind sogar die Block-Header-Informationen dieser verwaisten Blöcke für Sie da, zum Beispiel ein verwaister Block 503949 , der von SlushPool abgebaut wird.

Es hat auch eine Statistikansicht der verwaisten Blöcke , ich lade seinen CSV-Verlauf herunter und kann berechnen , dass die Rate der verwaisten Bitcoin-Blöcke etwa 0,31 % beträgt (vom 18.03.2014 bis 14.06.2017). Die Statistik-Excel-Datei ist hier .