Was ist der Vorteil der erzwungenen Signalisierung in einem Soft-Fork-Aktivierungsmechanismus?

Was ist der Vorteil der erzwungenen Signalisierung in einem Soft-Fork-Aktivierungsmechanismus? B. die MUST_SIGNAL- Phase in der überarbeiteten BIP 8.

Ich verstehe die Vorteile des Festlegens von lockinontimeout (LOT) auf true (einige dieser Vorteile werden hier beschrieben ), aber warum einen Zeitraum von beispielsweise zwei Wochen haben, in dem Miner signalisieren müssen, bevor der Soft Fork in die LOCKED_IN-Phase übergeht. Warum nicht einfach definieren, wann diese LOCKED_IN-Phase beginnen wird (unter der Annahme, dass die Bergleute die Soft Fork vorher nicht aktivieren) und die MUST_SIGNAL-Phase fallen lassen?

Matt Corallo erklärt : „Erzwungene Signalisierung ist für viele Flag-Day-Designs nicht erforderlich und stellt das größte Einzelrisiko aller vorgeschlagenen Funktionen für eine unumstrittene Aktivierung dar.“

Antworten (2)

Es hängt stark davon ab, wen Sie fragen. In der Tat habe ich (und mehrere andere) argumentiert, dass es überhaupt keinen Grund für eine erzwungene Signalisierung gibt. Greg Maxwell hat einen langen und ausführlichen Artikel darüber geschrieben, warum es keine zusätzlichen Zusicherungen bietet, die über das hinausgehen, was eine Soft Fork auf GitHub bietet , was wahrscheinlich für jeden von Interesse ist, der auf diesen Beitrag stößt. Letztlich geht es um „wann ist ein Soft Fork aktiv“. Die wahrscheinlich beste Ressource zu diesem Thema ist Pieter Wuilles alter Beitrag aus dem Jahr 2015 über bitcoin-dev , aber zusammenfassend lautet die Antwort weitgehend „wenn verstanden wird, dass die überwiegende Mehrheit der Wirtschaftsknoten im Bitcoin-System die Regeln vollständig durchsetzt Knotensoftware, die sie ausführen", mit anderen Worten, "wenn vollständige Knoten sie erzwingen".

Einige Verwirrung ist in die Diskussion eingetreten, da wir in vielen früheren Soft Forks Miner-Signalisierung verwendet haben, um die Lücke zwischen alten Full Nodes, die kein Upgrade kennen, und neuen Full Nodes, die die Regeln durchsetzen, zu schließen. Tatsächlich haben wir gesagt, dass „der Soft Fork aktiv ist, wenn neue Nodes aktualisiert wurden und Miner die Bereitschaft über einem bestimmten Schwellenwert signalisiert haben“ – letztendlich geht es darum, dass Nodes aktualisiert wurden und die Regeln durchsetzen, aber nichts hindert uns daran zu sagen „Nodes erzwingen nur die Regeln, wenn Miner upgraden". Ebenso ist nichts falsch daran zu sagen „Knoten setzen immer die Regeln durch, weil Miner nicht tun, was Benutzer wollen“.

Im Allgemeinen lautet das Argument für die erzwungene Signalisierung im Wesentlichen wie folgt: „Wenn wir davon ausgehen, dass Benutzer Software ausführen, die das Signalisierungsbit interpretiert, stellt die Sicherstellung, dass das Bit aktiviert ist, sicher, dass die Benutzer die Regeln durchsetzen“. Es gibt jedoch nicht viele Gründe, diese anfängliche Annahme zu treffen. Der Grund, warum wir Miner-Signalisierung überhaupt verwenden, ist, dass sie das Risiko von Forks und Reorgs reduziert, die für nicht aktualisierte Knoten sichtbar sind – etwas, das einige Benutzer aufgrund von Doppelausgaben Gelddiebstählen aussetzen könnte. Wenn wir jedoch erzwungene Signalisierung verwenden, geht dieser Vorteil verloren, wir erhalten tatsächlich das genau gegenteilige Ergebnis – am ersten Tag des Forks erstellen wir sofort Reorgs, die für nicht aktualisierte Knoten sichtbar sind, und setzen ihre Fähigkeit, Zahlungen zu akzeptieren, auf Risiko.

Haben Sie den Zugriff auf Ihr vorheriges StackExchange-Konto verloren, Matt? :) bitcoin.stackexchange.com/users/202/matt-corallo
Huh! Anscheinend habe ich es getan. Ehrlich gesagt hatte ich vergessen, dass ich jemals einen hatte.
Hey! Ich hatte tatsächlich einen alten SO-Account, wer hätte das gedacht.

Eine zweiwöchige (2016 Blöcke) erzwungene Signalisierungsphase hat zwei große Vorteile.

Erstens bietet es dem Netzwerk ein Signal, dass Miner die Soft-Fork-Regeln in der nächsten Phase nach der erzwungenen Signalisierung durchsetzen werden. Es ist ein unvollkommenes Signal, da Miner der erzwungenen Signalisierung folgen und dann die Soft-Fork-Regeln nicht durchsetzen könnten, aber es ist besser als nichts. Dies tatsächlich zu tun, würde auf Böswilligkeit oder Inkompetenz hindeuten.

Zweitens bietet es die Möglichkeit, dass geminte Blöcke, die keine Signalisierung haben, im Voraus abgelehnt werdenwann Soft-Fork-Regeln durchgesetzt werden sollen. Dies bietet nicht nur einen Anreiz für Miner zu signalisieren (ihre abgebauten Blöcke könnten sonst abgelehnt werden), sondern es versucht, sie vorübergehend aus dem Netzwerk zu werfen, bis sie sich bereit erklären, die Soft Fork-Regeln durchzusetzen, sodass nur Miner, die die Soft Fork durchsetzen, sie aus dem Netzwerk werfen Regeln sind nach der Aktivierung im Netzwerk. Der ganze Sinn der Soft-Fork-Aktivierung besteht darin, zu versuchen, über wirtschaftliche Full Nodes (und Miner) hinweg eine Blockhöhe zu koordinieren, ab der Soft-Fork-Regeln durchgesetzt werden. Wir versuchen alles Mögliche zu tun, um dem Netzwerk Klarheit darüber zu verschaffen, was diese Blockhöhe ist. In einem Szenario, in dem Bergleute die Signalisierungsschwelle über einen langen Zeitraum (z. B. ein Jahr) nicht erreicht haben, ist die erzwungene Signalisierung ein wichtiges Werkzeug im Toolkit.

Luke Dashjr erklärte im IRC:

Der Hauptzweck besteht darin, definitiv anzuzeigen, dass die Soft Fork auf der Kette aktiv ist. Obwohl es immer noch auf die Durchsetzung angewiesen ist, stellt dies sicher, dass es keinen Streit darüber gibt, was die richtigen Regeln sind. Als Nebeneffekt macht es dies auch jeder Gruppe von Andersdenkenden leicht, die neuen Regeln abzulehnen. Die Absicht einer Soft Fork sollte niemals darin bestehen, neue Regeln (auf Andersdenkende) buchstäblich zu erzwingen.

(Luke bezieht sich eher auf den Widerspruch gegen die Soft Fork als auf den Widerspruch gegen den Aktivierungsmechanismus, der in einer Implementierung des Bitcoin-Protokolls festgelegt ist.)

David Harding fügte hinzu, dass die erzwungene MUST_SIGNAL-Signalisierung einen zusätzlichen Wert in einem Szenario hat, in dem sowohl BIP 8(LOT=true)- als auch BIP 8(LOT=false)-Knoten im Netzwerk vorhanden sind. Es stellt sicher, dass der Soft Fork für Knoten aktiviert wird, die LOT=false setzen, wenn die Mehrheit des Netzwerks LOT=true setzt.

Ich betreibe einen Knoten mit LOT=false; alle anderen betreiben einen Knoten mit LOT=true. Bei Block xxxxxx fangen Sie alle an, Taproots-Regeln durchzusetzen, aber ich habe nie ein Signal gesehen, also behandle ich Taproot-Transaktionen weiterhin so, als ob sie jeder ausgeben kann, was für mich persönlich schlecht ist. Wenn es viele Leute mit LOT=false gibt, wird es auch unklar, ob Taproot wirklich durchgesetzt wird, was das Risiko erhöht, dass Bergleute versuchen könnten, Gelder zu stehlen, die an Taproot-Ausgänge gesendet werden.

Darüber hinaus argumentiert David Harding , dass erzwungene Signalisierung nicht besonders gefährlich ist.

Was macht Zwangssignalisierung so gefährlich? Wir hatten das mit den Gabeln BIP34, BIP66 und BIP65. Abgesehen von einem Schluckauf mit BIP66 aufgrund von Spy Mining, glaube ich nicht, dass es ein Problem gab. Die erzwungene BIP8-Signalisierung ist auch nur für einen kurzen Zeitraum erforderlich, daher sollte jede Unterbrechung kurz sein

Der Vergleich einer erzwungenen Signalisierungsphase mit einem Flaggentag wurde in diesem BIP PR weiter diskutiert .

Es sei darauf hingewiesen, dass die neuen Regeln genauso einfach ohne erzwungene Signalisierung abgelehnt werden können, indem verlangt wird, dass der Block auf Aktivierungshöhe gemäß den abgelehnten Regeln ungültig ist. Können Sie erläutern, was "kein Streit darüber, was die richtigen Regeln sind" bedeutet? Darüber, was ein Signalisierungsbit bedeutet, kann ebenso gestritten werden wie über die Bedeutung einer Flag-Blockhöhe.
Danke Nickler für den Kommentar. Es ist Lukes Zitat, aber mein Verständnis von "korrekten Regeln" ist, ob das Netzwerk die Soft-Fork-Regeln durchsetzt oder nicht. Tatsächlich ist ein erzwungenes Signalisierungsbit in dieser Hinsicht nicht perfekt, aber es ist besser als nichts. Zumindest in meinen Augen demonstriert nach erzwungener Signalisierung, aber die anschließende Nichtdurchsetzung der Soft-Fork-Regeln entweder Böswilligkeit oder Inkompetenz. Obwohl dies beide möglich sind, würden Sie in den meisten Fällen erwarten, dass Miner nach erzwungener Signalisierung zeigen, dass sie die Soft-Fork-Regeln in einer bevorstehenden Phase durchsetzen werden.