Wie weiss Bitcoin, ohne Orakel, wann 10 min um sind?

Miner schreiben ihren eigenen Timestamp in den Block Header. Dafür brauchen sie kein Orakel, Zeit ist universell und kann auf verschiedene Wege ermittelt und verifiziert werden, wenn man besonders misstrauisch ist sogar mit einer Sonnenuhr.

Es ist in einem dezentralen Netzwerk aber auch schwierig die „korrekte“ Uhrzeit durchzusetzen, weshalb es zwei Regeln gibt mit denen der mögliche Zeitbereich eingegrenzt wird. Diese Regeln können entsprechend auch von den Minern ausgereizt werden, weshalb es z.B. möglich ist dass ein Block einen kleineren Timestamp hat als sein Vorgänger! :smiley:

Die beiden Regeln sind konkret:

  • Der Timestamp muss größer als die MTP des vorherigen Blockes sein. MTP (= Median Time Past) gibt den Median (nicht den Durchschnitt) der Timestamps der letzten 11 Blöcke an.

  • Der Timestamp darf nicht mehr als zwei Stunden in der Zukunft liegen (Zeitzonen raus gerechnet) im Verhältnis zur lokalen Uhrzeit der Node1.

Ansonsten wird der Block abgelehnt. Die Uhrzeit wird sozusagen dezentral verifiziert.

Über 2016 Blöcke glättet sich die durchschnittliche Blockzeit dann natürlich und kann repräsentativ für das Adjustment genutzt werden. Hier wird dann die absolute Zeit herangezogen die Vergangen ist um die letzten 2016 Blöcke zu finden.

Niemand kann Zeit erschaffen. Es könnten nur einzelne Entitäten versuchen die Uhrzeit zu fälschen, genauso wie einzelne Entitäten versuchen können Blöcke, Transaktionen oder sonst irgendwas zu manipulieren. Die dezentrale Natur von Bitcoin lässt dies nicht zu.

Wo siehst du hier ein Oracle Problem? :slight_smile:

[ 1 ] Genauer gesagt im Verhältnis zur sogenannten network-adjusted time. Der Median aller Timestamps der mit der eigenen Node verbundenen Nodes.

17 „Gefällt mir“