Wie kann das Newton Protocol sein WASM-Laufzeitumgebungs-Upgrade durchführen, ohne bestehende Policy-Ergebnisse zu ändern?

WASM-Laufzeit-Updates im Newton Protocol können gefährlicher sein, als sie auf den ersten Blick erscheinen.

Newton könnte jede Zeile einer Policy unangetastet lassen und trotzdem ändern, was diese Policy erlaubt.

Alles, was es braucht, ist eine neue Laufzeit.

Wenn die neue Laufzeit Ressourcen oder Fehler anders behandelt, könnte die gleiche Policy und Eingabe auf einem Operator „allow“ zurückgeben und bei einem anderen eine Bewertungserror.

Die Policy hat sich nicht geändert.

Aber die Autorisierungsgrenze hat sich geändert.

Das hat mir klar gemacht, dass die WASM-Laufzeit nicht als unsichtbare Ausführungsschicht behandelt werden kann. Sie hilft dabei, die Policy-Semantik festzulegen, indem sie bestimmt, wie lange eine Policy laufen darf, wie viel Speicher sie verwenden darf und wie ein Fehlschlag interpretiert wird.

Rückwärtskompatibilität kann nicht einfach bedeuten, dass eine alte Policy weiterhin läuft. Sie muss bedeuten, dass die Policy unter denselben Bedingungen weiterhin die gleiche Entscheidung produziert.

Newton würde semantisches „Pinning“ benötigen.

Jedes Policy-Artefakt sollte nicht nur an seinen Code-Hash gebunden sein, sondern auch an ein Laufzeitprofil: Engine-Version, Speicherrichtlinien, Ausführungsbudget, Host-Funktionen und Fehlersemantik. Das Ergebnis würde von Policy-Artefakt + Laufzeitprofil abhängen.

Bestehende Policies könnten auf ihrer getesteten Laufzeit bleiben. Eine neue Laufzeit würde nur auf neue Policies oder solche angewendet, die erneut verifiziert wurden. Mehrere Versionen könnten während der Migration nebeneinander existieren, anstatt zu erzwingen, dass das Netzwerk die Semantik auf einmal ändert.

Differential-Testing könnte Entscheidungen, Fehler, Ressourcenverbrauch und Ausführungsspuren über beide Laufzeiten hinweg vergleichen.

Aber Tests allein reichen nicht.

Keines Test-Suite kann jede Eingabe abdecken. Newton würde außerdem eine stabile Laufzeitspezifikation, eine deterministische Konformitäts-Suite und versionierte Aktivierungsregeln benötigen.

Ein Upgrade der WASM-Laufzeit ist keine gewöhnliche Wartung.

Es verändert die Umgebung, die Autorisierungsentscheidungen erzeugt.

Newton müsste die Policy nicht neu schreiben, um ihre Autorität neu zu definieren. Die Änderung der Laufzeit darunter könnte bereits ausreichen.
@NewtonProtocol $NEWT #Newt $LAB $BEAT