Start
Start

Wenn Sie sich für Informatik interessieren, haben Sie vielleicht schon von dem berühmten Bug des Jahres 2038 gehört, der alle Computersysteme betrifft, die den Unix-Zeitstempel verwenden, der als 32-Bit-Ganzzahl mit Vorzeichen gespeichert ist. Bei Bitcoin wird uns dieser Fehler nicht betreffen. Bitcoin-Zeitstempel haben jedoch auch einen Maximalwert, der nicht überschritten werden kann. Dieser Schwellenwert wird am 7. Februar 2016 erreicht.
Wird das Jahr 2106 also den Todesstoß für Bitcoin bedeuten? In diesem Artikel ziehen wir mit Ihnen eine Bestandsaufnahme dieses relativ unbekannten Ereignisses.
Beim Bitcoin-Protokoll wird eine Blockchain verwendet, um doppelte Ausgaben zu vermeiden. Jede Transaktion wird in einem Block mit einem Zeitrahmen platziert. Mit anderen Worten, wir geben jedem Block eine Stunde und einen Tag an, um sie in chronologischer Reihenfolge ordnen zu können. Diesen Zeitrahmen nennen wir einen „Zeitstempel“.

Dank dieses Mechanismus kann ein Knoten, wenn er eine neue Bitcoin-Transaktion erhält, die auf eine Bestätigung wartet, überprüfen, ob dieselben Bitcoins in der Vergangenheit nicht bereits ausgegeben wurden. Auf diese Weise vermeiden wir doppelte Ausgaben für das System, ohne dass es sich auf eine zentrale Behörde verlassen muss.
Der Zeitstempel befindet sich im Header jedes Blocks. Es ist eine 32-Bit-Ganzzahl, die auf der UNIX-Zeit basiert. Um diesen Zeitrahmen zu bestimmen, zählen wir die Anzahl der Sekunden, die seit dem 1. Januar 1970 vergangen sind, und das ergibt eine ganze Zahl. Wenn ich zum Beispiel diesen Artikel schreibe, sind seit 1970 1.693.498.694 Sekunden vergangen. Alles was ich tun muss, ist diese Ganzzahl in eine Binärzahl umzuwandeln, um meinen Zeitstempel zu erhalten. In diesem Fall würde uns das geben: 0110010111000110010010101011111110. So stempeln Sie Blöcke auf Bitcoin mit einem Zeitstempel.

Der Zeitstempel auf Bitcoin erfolgt auf 32-Bit-Ganzzahlen ohne Vorzeichen. Das bedeutet, dass Sie 32 Nullen oder eine Eins in eine Reihe setzen können, um die Zeit darzustellen, aber keine weitere. Es gibt also eine Grenze für die Interpretation der Zeit innerhalb von Bitcoin. Der Maximalwert, der verwendet werden kann, lautet wie folgt: 111111111111111111111111111111111111. Im Dezimalwert ergibt das 4.294.967.295 Sekunden, und diese Zeit entspricht dem Datum 7. Februar 2106.
Wenn dieses Datum überschritten wird, läuft der Zeitstempel über und er wird auf Null zurückgesetzt. Computersysteme, die dieses Format verwenden, interpretieren das aktuelle Datum als 1. Januar 1970, obwohl es in Wirklichkeit 2106 sein wird.

Um dieses Phänomen besser zu verstehen, ziehen wir eine Analogie. Einige alte Autokilometerzähler sind auf 6 Ziffern begrenzt. Daher beträgt der Maximalwert, der angezeigt werden kann, 999.999 km. Sobald diese Grenze erreicht ist, geht der Zähler auf Null zurück und beginnt erneut von vorne zu zählen. Die vom Auto bereits zurückgelegten Kilometer sind jedoch zurückgelegt. Daher besteht aufgrund der Anzahl der Ziffern, die angezeigt werden können, ein Unterschied zwischen dem interpretierten Wert und dem tatsächlichen Wert. Für den Zeitstempel auf Bitcoin gilt genau das gleiche Prinzip.
Wenn am Bitcoin-Protokoll nichts geändert wird, bedeutet diese Diskrepanz zwischen der Interpretation des Zeitstempels und der Realität, dass keine neuen Blöcke veröffentlicht werden können. Tatsächlich gibt es zwei Einschränkungen, was den Zeitstempel eines Blocks angeht, damit er von den Knoten akzeptiert wird:
Sobald der 32-Bit-Zeitstempel am 7. Februar 2106 seinen Maximalwert erreicht hat, können Sie immer noch maximal 6 Blöcke veröffentlichen (dies liegt daran, dass das untere Limit ein Median ist). Dann sollte die Blockchain gestoppt werden und es konnten keine weiteren Transaktionen bestätigt werden.
Zum Glück gibt es viele Lösungen, um dieses Datum zu umgehen und so mögliche Auswirkungen auf Bitcoin zu verhindern.
📌 Der Unterschied zwischen 32-Bit-Ganzzahlen mit und ohne Vorzeichen liegt in der Anzahl der verfügbaren Bits. Die Vorzeichenlosen nutzen 32 Bit voll aus (das haben wir bei Bitcoin), während die Vorzeichenbehafteten ein Bit für das Vorzeichen reservieren, sodass 31 Bit übrig bleiben, um eine positive Zahl darzustellen (dies wird auf Systemen verwendet, die vom 2038-Bug betroffen sind).
➤ Erfahre mehr über das Erstellen eines Blocks auf Bitcoin.
Keine Sorge, wir haben noch mehr als 80 Jahre Zeit, um dieses kleine Problem zu lösen! Um dies zu tun, gibt es mehrere Lösungen. Am natürlichsten wäre es, die Größe der Ganzzahl zu ändern, die zum Aufschreiben des Zeitstempels auf Bitcoin verwendet wird. Wir könnten also 64-Bit-Ganzzahlen verwenden, was es uns ermöglichen würde, das Zeitlimit auf mehrere hundert Milliarden Jahre in der Zukunft zu verschieben.
Eine andere Lösung wäre, einen 32-Bit-Zeitstempel beizubehalten, der jedoch als 64-Bit-Ganzzahl interpretiert wird. Nur die letzten 32 Bit der Ganzzahl würden im Blockheader notiert, aber bei jedem Überlauf würden die Knoten 2^32 zum notierten Wert hinzufügen, um den tatsächlichen Wert zu erhalten. Überläufe könnten von Knoten erkannt werden, sobald der 32-Bit-Zeitstempel im Vergleich zu früheren Blöcken stark abfällt.
Bei diesen beiden Lösungen handelt es sich jedoch um Hard Forks. Die Bitcoin-Community wird sich in den nächsten 80 Jahren darauf einigen müssen, diese Änderung vorherzusehen, bevor das schicksalhafte Datum, der 7. Februar 2016, eintrifft.
➤ Entdecke den Unterschied zwischen einer harten und einer weichen Gabel.
In Bitcoin-Block-Headern ist der Zeitstempel eine vorzeichenlose 32-Bit-Ganzzahl. Es ermöglicht Ihnen, dem Block eine Zeitmarke zuzuordnen. Auf diese Weise können wir die chronologische Reihenfolge der Transaktionen bestimmen und so die doppelte Ausgabe von Bitcoin-Münzen vermeiden.
Dieser Zeitstempel wird am 7. Februar 2106 seinen Maximalwert erreichen und dazu führen, dass die Bitcoin-Blockchain stoppt, wenn nichts unternommen wird. Zum Glück ist dieser Fehler nicht nur sehr weit entfernt, sondern auch sehr einfach zu beheben. Betreiber von Full-Nodes müssen das Protokoll vor Ablauf dieser Frist per Hard Fork aktualisieren. Das Ziel wird darin bestehen, entweder die Interpretation des Integer-Zeitstempels zu ändern oder seine Größe auf 64 Bit zu erweitern, sodass Bitcoin noch einige hundert Milliarden Jahre funktionieren kann.
Ressourcen:

