Wie streng sind die Zeitvalidierungsregeln der Unix-Epoche?

Laut bitcoin.org haben Full Nodes eine strenge Anforderung an die Zeitabweichung innerhalb bestimmter Grenzen.

Die Blockzeit ist eine Unix-Epochenzeit, als der Miner begann, den Header zu hashen (laut Miner). Muss unbedingt größer sein als die Medianzeit der vorherigen 11 Blöcke. Full Nodes akzeptieren keine Blöcke mit Headern, die nach ihrer Uhr mehr als zwei Stunden in der Zukunft liegen.

Unter bestimmten Umständen scheint die Blockchain jedoch Gefahr zu laufen, alle Blöcke aufgrund widersprüchlicher Validierungsparameter abzulehnen.

Zum Beispiel im Fall eines starken Schwierigkeitsabfalls. Die Schwierigkeit bei Bitcoin wird alle 2016 Blöcke neu bewertet . Wenn die Schwierigkeit drastisch genug sinkt, kann es Stunden oder Tage dauern, bis der nächste gültige Block gefunden wird, da das Netzwerk mit reduzierter Mining-Kapazität auf einem Schwierigkeitsgrad arbeitet, der für viel höher vorgesehen ist. Wenn der nächste Block mehr als zwei Stunden nach dem aktuellen Block abgebaut wird, würde dies die Blockchain nicht zum Stillstand bringen? Was würde in diesem gegebenen Szenario passieren?

Wie streng sind die Zeitvalidierungsregeln?

Antworten (2)

Wie streng sind die Zeitvalidierungsregeln?

Sehr.

Wenn der nächste Block mehr als 2 Stunden nach dem aktuellen Block abgebaut wird, würde dies die Blockchain nicht zum Stillstand bringen?

NEIN.

Es verstößt nicht gegen die Regel „Full Nodes akzeptieren keine Blöcke mit Headern mehr als zwei Stunden in der Zukunft gemäß ihrer Uhr “.

Es verstößt auch nicht gegen die Regel "Muss unbedingt größer sein als die Medianzeit der vorherigen 11 Blöcke".


Das Obige sollte hoffentlich klar sein, aber falls dies nicht der Fall ist, machen wir ein Beispiel:

Fall Zeit
Letzter Block abgebaut 08:00
Mittlere Zeit der letzten 11 Blöcke 07:00
Aktuelle Zeit auf meiner Uhr 11:00
Zeit auf Block kommt jetzt an 12:59
Regel Ergebnis
(12:59 - 11:00) < 2 OK
12:59 > 07:00 OK

Also kein Problem, obwohl es statt 10 Minuten eine Lücke von drei Stunden gab und obwohl der Block einen Zeitstempel hat, der meiner Meinung nach fast zwei Stunden in der Zukunft liegt!

Beachten Sie, dass diese besonderen Regeln nicht gebrochen werden, wenn zwischen den Blöcken eine große Lücke (z. B. 50 Jahre) besteht. Theoretisch würde alles weitergehen (obwohl es wahrscheinlich ist, dass andere Probleme dies verhindern würden)

Fair genug, Bergleute sind nicht darauf beschränkt, eine bestimmte Zeit zu investieren
@arshbot Das stimmt, aber ich denke nicht relevant. Auch wenn die Zeitstempel in Blöcken immer genau gleich der Zeit sind, zu der der Block produziert wird, gibt es kein Problem.

Ich glaube, Sie haben eine falsche Vorstellung davon, was diese Klausel bedeutet:

Full Nodes akzeptieren keine Blöcke mit Headern, die nach ihrer Uhr mehr als zwei Stunden in der Zukunft liegen.

Sie scheinen dies so zu interpretieren, wenn ein neuer Block mehr als zwei Stunden später als der vorherige Block ist, dann akzeptieren Sie ihn nicht. Das ist falsch. In dieser Klausel geht es nicht um zeitliche Lücken zwischen Blöcken.

Die eigentliche Bedeutung dieser Klausel ist, dass, wenn ein neuer Block sagt, dass er buchstäblich aus der Zukunft stammt, aus einer Zeit, die das Universum noch nicht erreicht hat, dann akzeptiere ihn nicht. Bei dieser Klausel geht es darum, Manipulationen an der Blockchain durch gefälschte Zeitstempel zu verhindern.

Dieser Vergleich erfolgt zwischen dem Zeitstempel des neuen Blocks und Ihrer Uhr, nicht dem Zeitstempel des neuen Blocks und dem Zeitstempel des vorherigen Blocks.