Modul 4 - Timestamps

Jedes DLT hat den Bedarf eines Systems, das Informationen mit der Zeit verknüpft. Dieses Konzept wird in vielen Komponenten des IOTA-Protokolls verwendet, z. B. zur Kontrolle von Spam (Ratenkontrolle), zur Begrenzung der Reichweite von Genehmigungen, um das Tangle wachsen zu lassen ( Tip-Auswahl), und zur Festlegung des Schwellenwerts für die Datenlöschung (Snapshots). Darüber hinaus wird die Zeit von externen Anwendungen genutzt, die auf dem Tangle laufen und nachverfolgen müssen, wann Daten zum Tangle hinzugefügt wurden.

In der Legacy-Implementierung und in Chrysalis sind die wichtigsten Zeitreferenzen Meilensteine: Der Meilenstein-Index einer Nachricht ist der erste Meilenstein, der auf sie verweist. Da Meilensteine Timestamps enthalten (die korrekt sind, da sie vom Koordinator gesetzt werden), wird dadurch jede Nachricht mit einem Zeitpunkt verbunden. Somit ist der Meilenstein-Index eine zuverlässige Referenz für die Zeit. Mit IOTA 2.0 DEVNET brachte die Dezentralisierung die Notwendigkeit einer neuen Art, diese Referenzen zu definieren: Timestamps.

In IOTA 2.0 DEVNET sind Zeitstempel Werte, die von der Node der die Message ausgibt deklariert und signiert werden und von denen erwartet wird, dass sie die Ausgabezeit der Message repräsentieren (aus der Sicht der Issuer Node). Es ist wichtig, den Unterschied zwischen den Timestamps und der Uhrzeit zu verstehen. Timestamps sind objektiv: alle Nodes assoziieren dieselben Timestamps mit denselben Messages, daher können sie in jeder Anwendung verwendet werden, ohne dass es zu Problemen mit Konsens oder anderen Unstimmigkeiten kommt.

Man könnte argumentieren, dass Timestamps, so wie sie deklariert sind, nicht die tatsächliche Ausgabezeit widerspiegeln. Dies ist zwar richtig, aber Timestamps werden bei der Verarbeitung einer empfangenen Message überprüft. Wenn der Timestamp zu weit von der lokalen Zeit abweicht, stimmen die Nodes darüber ab, ob der Timestamp abgelehnt werden soll. Das bedeutet, dass nur kleine Unterschiede zwischen Timestamps und Ausgabezeiten vom Protokoll akzeptiert werden, und solche Unterschiede würden in keinem der Module, die Timestamps verwenden, zu Problemen führen. Diese potenziellen, kleinen Unterschiede bei Timestamps und Ausgabezeiten sind ein unbedeutender Preis, der für das Erreichen einer Einigung auf eine Zeitvariable zu zahlen ist.