In den letzten Tagen habe ich die Mainnet-Beta von @NewtonProtocol mehrmals hin und her durchgesehen. Die ersten beiden Male war ich noch ziemlich stolz, dachte, ich hätte das Schema durchschaut: Die Policy steht vor der Ausführung der Aktionen. Bis ich mitten in der Nacht auf die Erklärung zu VaultKit gestoßen bin und einen Satz gelesen habe: „Strategieanpassungen erfordern keine Neu-Deployments von Verträgen, und die Änderungen greifen sofort.“ Da war ich kurz perplex, ging zurück und las es noch einmal – erst dann merkte ich, dass ich bei den ersten beiden Durchgängen den eigentlichen Kern nicht verstanden hatte. #Newt

Dieser Satz wirkt auf den ersten Blick ganz gewöhnlich, aber wenn man genauer darüber nachdenkt, ist er alles andere als gewöhnlich. Früher habe ich beurteilt, ob ein Vault sicher ist, im Grunde anhand des Codes: Wenn es keinen Schwachstellen gab und ein Audit bestanden wurde, ging man davon aus, dass das Verhalten vorhersehbar ist. Newton Mainnet Beta hat diese Annahme zunichtegemacht. In der Dokumentation gibt es ein Beispiel: Eine Policy legt fest, dass die Zuteilung an einen einzelnen Markt 40 % nicht überschreiten darf. Diese Regel kann jederzeit geändert werden. Nach der Änderung muss man keinen Vertragscode anfassen – der nächste Trade folgt sofort der neuen Regel.

Der Vertrag kann völlig unverändert bleiben, aber derselbe Vault kann bei derselben Anfrage gestern und heute zu völlig unterschiedlichen Ergebnissen kommen. Entscheidend dafür, wie der Vault reagiert, ist nicht das, was du damals geprüft hast, sondern die Policy-Version, die in diesem Moment gerade wirksam ist.

Genau daraufhin habe ich mir auch die Ausführungsbelege angesehen. Newton signiert jede Policy-Bewertung, einschließlich der verwendeten Policy-Version, der Entscheidungsgrundlagen und des Ergebnisses, in einen verifizierbaren Datensatz und verlinkt ihn auf Newton Explorer. Theoretisch lässt sich so nachverfolgen, welche Version von Regeln für eine bestimmte Transaktion verwendet wurde. Ich habe lange auf diese Struktur gestarrt, immer länger und länger – und je mehr ich sie betrachtete, desto mehr dachte ich mir: clever ist clever. Gleichzeitig tauchte aber ein neues Problem auf: Früher war ein Audit eine einmalige Handlung – wenn der Code feststand, war es im Wesentlichen fest.

Jetzt kann sich die Policy jederzeit ändern, also wird das Auditing zu einer kontinuierlichen Aufgabe. Man muss ständig überprüfen, ob die aktuell wirksamen Regeln noch dieselben sind wie die, die man zuletzt gesehen hat. Sonst glaubst du vielleicht, du kennst diesen Vault – dabei kennst du nur, wie er zu einem bestimmten historischen Zeitpunkt ausgesehen hat. Mir ist dabei ein bisschen mulmig geworden. Die Einstellung „Audit abgeschlossen, also kann man sich darauf verlassen“ trägt in diesem System nicht.

Das ist auch der Grund, warum ich Mainnet Beta für das spannendste Forschungsgebiet halte: Es bleibt nicht bei einer zusätzlichen Freigabe-Hürde für den Agent, sondern verlagert das Vertrauensobjekt von statischem Code auf eine Ebene aus Regeln, die sich ständig ändern, aber dennoch verifizierbar bleiben. Diese Umstellung erhöht kurzfristig tatsächlich den Verständnisaufwand – ich habe auch mehrmals hin und her gelesen, bis ich sicher war, dass meine Einschätzung stimmt. Aber langfristig könnte genau das das sein, was die Chain für die tatsächliche Ausführung wirklich braucht.

Darum werde ich @NewtonProtocol weiter im Blick behalten, um auch den Grund zu verstehen, warum ich $NEWT weiter untersuche.

#newt