Ich stelle immer wieder fest, dass Upgrade-Fähigkeit normalerweise als ein Vertragsproblem diskutiert wird.
Newtons Dokumentation zur Smart-Contract-Integration hat mir das anders gezeigt: Was wäre, wenn die Contract-Adresse stabil bleibt, während sich die Authentifizierungslogik dahinter weiterentwickelt?
@NewtonProtocol $NEWT #Newt In NewtonProtocol kann ein bestehender PolicyClient auf eine neuere Policy verwiesen werden, indem man:
setPolicyAddress(newPolicy)
aufruft.
Aber das ist nicht nur eine blinde Aktualisierung eines Zeigers.
Wenn setPolicyAddress() aufgerufen wird, wird die Factory-Version der Policy gegen die minimale kompatible Runtime-Version des TaskManagers geprüft. Wenn die Version nicht kompatibel ist, wird das Update rückgängig gemacht, statt eine nicht unterstützte Policy-Logik anzuhängen.
Der Migrationsablauf geht noch weiter:
Kompatibilität prüfen
↓
Nicht kompatible Policy-Daten neu bereitstellen
↓
Policy über die neueste Factory bereitstellen
↓
Bestehenden PolicyClient aktualisieren
↓
Migration verifizieren
Was mir dabei auffiel, ist, was sich nicht bewegt.
Die Adresse des PolicyClient bleibt gleich.
Das bedeutet: Der ausführungssichtige Client kann stabil bleiben, während sich die Policy-Implementierung und die kompatiblen Policy-Daten weiterentwickeln. Newtons Doku erwähnt außerdem, dass Identitätsverknüpfungen und die Einwilligung der Nutzer intakt bleiben, weil sich die Client-Adresse nicht ändert.
Für mich schafft das eine interessante architektonische Trennung:
Stabile Client-Identität ≠ eingefrorene Authentifizierungslogik
Der Client sorgt für Kontinuität.
Die Policy ermöglicht Veränderung.
Die Kompatibilitätsprüfung definiert, welche Änderungen sicher angehängt werden können.
Das wirkt für mich wichtiger als eine einfache „Upgrade“-Funktion. Authentifizierungssysteme müssen sich weiterentwickeln, aber Integrationen, die auf ihnen aufbauen, brauchen ebenfalls Kontinuität.
Die Frage, die bei mir bleibt, betrifft die Einwilligung:
Wenn der PolicyClient gleich bleibt, aber sich seine Policy ändert – worauf sollten sich Nutzer dann verlassen, dass sie zugestimmt haben?
Auf den Client selbst oder auf die konkrete Policy-Version dahinter?
Wo sollte die Einwilligung ansetzen?
#VitalikOutlinesLeanEthereumRoadmap #BrazilCentralBankSaysStablecoinsElectronicMoney #UKFCAPublishesCryptoRegFramework #BitcoinFallsOver50%FromOctoberHigh $LAB $VANRY