Sollte Blockhöhe oder MTP oder eine Mischung aus beidem in einem Soft-Fork-Aktivierungsmechanismus verwendet werden?

Sollte Blockhöhe oder MTP ( mittlere vergangene Zeit , definiert in BIP 113 ) oder eine Mischung aus beiden in einem Aktivierungsmechanismus wie BIP 8 oder BIP 9 verwendet werden, um die Zeitpunkte der Zustandsübergänge zu definieren ?

Welche Vor- und Nachteile haben beide und wie unterscheiden sie sich?

Antworten (2)

Sollte in einem Aktivierungsmechanismus wie BIP 8 oder BIP 9 Blockhöhe oder MTP (Median Time Past [...]) oder eine Mischung aus beidem verwendet werden, um die Zeitpunkte der Zustandsübergänge zu definieren? Welche Vor- und Nachteile haben beide und wie unterscheiden sie sich?

Der Hauptvorteil von MTP besteht darin, dass es normalerweise ungefähr der Wandzeit entspricht, sodass es einfach ist, zu vermitteln, was eine Zahl für Menschen bedeutet. Zum Beispiel sagt BIP141: "Die BIP9-Startzeit wird am 15. November 2016 um Mitternacht UTC sein [...] und die BIP9-Zeitüberschreitung wird am 15. November 2017 um Mitternacht UTC sein." Als diese beiden MTP-Werte im tatsächlichen Netzwerk erreicht wurden, lagen sie innerhalb von drei Stunden der tatsächlichen UTC.

Der Hauptnachteil von MTP ist, dass es von Minern manipuliert werden kann. MTP ist der Median des Wertes, der im nTime-Feld des aktuellen Blockheaders und der vorherigen 10 Blöcke aufgezeichnet ist. Bergleute können ihre nTime-Werte auf jeden Wert setzen, der größer als der aktuelle MTP und weniger als zwei Stunden in der Zukunft ist. Dies ermöglicht es der Mehrheit der Miner, die über einen längeren Zeitraum arbeiten, MTP auf einem alten Wert (z. B. vor 3 Monaten) zu halten und dann innerhalb eines einzigen Blocks zu einem viel späteren Zeitpunkt (z. B. 1 Monat) zu wechseln vor). Dies kann es ihnen ermöglichen, MTP-basierte obligatorische Signalisierungsperioden zu überspringen, wie sie in BIP148 angegeben sind.

Der Hauptvorteil von Blockhöhen besteht darin, dass es keine Möglichkeit gibt, einen höhenbasierten Schwellenwert zu überspringen, daher sind sie sinnvoll für Flag-Day-Aktivierungen, obligatorische Signalisierungsanforderungen und andere Übergänge, die wir sicherstellen möchten (z. B. von BIP9 LOCKED_IN zu ACTIVE, was unter Verwendung eines relativen höhenbasierten Schwellenwerts von 2.016 Blöcken geschieht).

Der Hauptnachteil von Blockhöhen ist, dass sie nicht besonders konsistent sind. In einem durchschnittlichen Jahr erwarten wir 52.596 Blöcke, aber es wäre nicht außergewöhnlich, wenn es 58.440 Blöcke gäbe – was eine geplante 12-monatige Bereitstellung auf 10,8 Monate reduziert.

Es schadet nicht, MTP-Zeiten und -Höhen zu mischen, und es kann erhebliche Vorteile haben, wenn Sie beide Stärken gleichzeitig nutzen können, ohne zu viel durch ihre Schwächen zu verlieren.

Ist die im zweiten Absatz erwähnte Manipulation durch Miner und das Überspringen der MTP-basierten Signalisierungsperiode ein größeres Risiko für Soft Forks, an denen UASF beteiligt ist? Was sind andere Risiken im Zusammenhang mit der Verwendung von Zeitstempeln bei der Soft-Fork-Aktivierung unter Berücksichtigung der in bitcoin.stackexchange.com/a/99333 erwähnten Dinge ?

Die Verwendung von Blockhöhen für die Start- und Timeout-Parameter hat den Vorteil, dass Minern eine bekannte Anzahl von Signalisierungsperioden gegeben wird. Der Verlust der Hashpower reduziert nicht die Anzahl der für die Aktivierung verfügbaren Retargeting-Perioden. Insbesondere für einen Aktivierungsmechanismus über einen kürzeren Zeithorizont (z. B. den Speedy Trial- Vorschlag ) kann es wichtig sein, sicherzustellen, dass Miner die maximale Anzahl von Signalisierungsperioden haben. Blockhöhen sind wohl auch einfacher zu kommunizieren und leichter zu begründen, da Blockchain-Entwickler daran gewöhnt sind, mit ihnen zu arbeiten.

Die Verwendung von MTP (mittlere vergangene Zeit) hat den Vorteil, dass eine Aktivierung zu einer bestimmten Tageszeit geplant werden kann, um zu vermeiden, dass die Aktivierung in einigen Regionen der Welt mitten in der Nacht erfolgt. Bedenken hinsichtlich einer Verringerung oder Erhöhung der Hashrate, die sich auf die Anzahl der Signalisierungsperioden auswirken, können durch die Auswahl von MTPs mit mittlerer Signalisierungsperiode gemildert werden. Die kurze Dauer von Vorschlägen wie Speedy Trial ist weniger empfindlich gegenüber Hashratendriften, die die Anzahl der Perioden ändern (eine große Verringerung der Hashrate wäre erforderlich, um die Anzahl der Signalisierungsperioden zu verringern).

Eine Sorge bei MTP ist, dass eine Koalition von Bergleuten ihre abgebauten Blöcke zur nTime auf MTP + 1 herunterskalieren könnte, um zu verhindern, dass eine MTP-Startzeit zur erwarteten realen Zeit erreicht wird. Diese Besorgnis scheint gering, da sie sich auf die Schwierigkeitsanpassungen auswirken könnte und eine breite Beteiligung der Miner erfordern würde, um MTP zu begrenzen.

Es wird auch diskutiert, ob die konsequente Verwendung der Blockhöhe oder die Verwendung einer Mischung aus beiden Blockhöhen und MTP vorzuziehen ist, um die Implementierung und Freigabe eines alternativen konkurrierenden (kompatiblen oder inkompatiblen) Aktivierungsmechanismus (z. B. einer UASF-Freigabe) zu erschweren oder zu erschweren Vermeidung einer Kopfhaut für Marketingzwecke .

AJ Towns erklärt hier einen Nachteil bei der Verwendung von MTP für den Minaktivierungspunkt . Wenn die Aktivierungszeit in die Nähe einer Schwierigkeit fällt, kann die Aktivierung des Retarget-Blocks am nächsten Tag oder in zwei Wochen erfolgen. Dies stellt einige Kommunikationsherausforderungen dar.

Zusätzlich:

Die Höhe, bei der Sie von LOCKED_IN zu ACTIVE wechseln, muss vollständig bestimmt werden, sobald Sie von STARTED zu LOCKED_IN wechseln. Auf diese Weise muss die gesamte LOCKED_IN-Periode neu organisiert werden, wenn Sie Gelder stehlen möchten, die sowohl durch nLocktime als auch durch die neuen Regeln geschützt sind.

Zusammenfassend scheint Konsens darüber zu bestehen, dass Blockhöhen ausschließlich in Aktivierungsmechanismen für zukünftige Soft Forks verwendet werden sollten, aber es ist weniger klar, ob Konsens darüber besteht, sie ausschließlich für den vorgeschlagenen Taproot-Aktivierungsmechanismus Speedy Trial zu verwenden.

Weitere Details zum Timewarp-Angriff auf MTP finden Sie hier von Mark Friedenbach und hier von Andrew Chow.

Diese Antwort stammt aus Kommentaren auf GitHub und der Mailingliste von Andrew Chow, AJ Towns, Jeremy Rubin, Sjors Provoost, Antoine Riard und David Harding.