Meiner Ansicht nach ist die Kanonisierung der Schritt, bei dem Newton aus einer mehrdeutigen Intent eine Eingabe macht, die präzise genug ist, damit eine Policy sie konsistent bewerten kann.
Ein roher Intent kann in vielen Formen vorliegen. Für dieselbe Swap-Anfrage kann ein Nutzer 1 ETH eingeben, ein anderer 10¹⁸ wei verwenden, während jemand anderes das Asset möglicherweise über sein Tokensymbol statt über seine Vertragsadresse referenziert. Eine Frist kann angegeben oder weggelassen werden, weil der Nutzer davon ausgeht, dass das System sie ableiten wird.
Für einen Menschen können diese Ausdrücke gleichwertig wirken.
Für eine Policy-Engine sind sie jedoch keine identischen Eingaben.
Vor der Bewertung muss Newton den Intent in definierte Bestandteile zerlegen: Wer die Aktion anfordert, welche Aktion angefordert wird, welches Asset und welches Ziel beteiligt sind und welche Einschränkungen die Ausführung steuern.
Nur dann kann mit der Normalisierung begonnen werden.
Asset-Identifikatoren, Beträge, Chains, Empfänger, Fristen, Slippage und andere Einschränkungen müssen standardisierte Referenzen, Einheiten, Typen und Formate erhalten, sodass die Feldreihenfolge die Bedeutung des Intents nicht verändern kann.
Auch für Default-Werte braucht es eine gemeinsame Regel. Wenn ein erforderliches Feld fehlt oder ein Parameter mehrere Interpretationen zulässt, sollte das System nicht jedem Operator erlauben, eigene Annahmen zu treffen. Der Intent sollte als ungültig oder unzureichend spezifiziert behandelt werden, bevor die Policy ausgeführt wird.
Sobald die Felder validiert und normalisiert sind, kann Newton eine kanonische Repräsentation aufbauen: ein einzelnes semantisches Objekt, das den ursprünglichen Intent abbildet. Danach kann es unter denselben Regeln serialisiert werden, sodass jeder Operator dieselbe Struktur, dieselben Werte und dieselbe Bedeutung erhält.
Das ist der Teil, den ich für wesentlich halte.
Eine Policy sollte nicht die Worte bewerten, die ein Nutzer eingegeben hat. Sie sollte den normalisierten Intent bewerten, nachdem Unterschiede in Format, Einheiten und Ausdruck entfernt wurden.
Wenn dieser Schritt fehlschlägt, kann selbst eine deterministische Policy das System nicht retten.
Newton kann die Konsistenz der Autorisierung nur dann bewahren, wenn jeder Operator vor der Policy-Bewertung denselben kanonischen Intent erhält.
@NewtonProtocol $NEWT #Newt $LAB $BTW
Ein roher Intent kann in vielen Formen vorliegen. Für dieselbe Swap-Anfrage kann ein Nutzer 1 ETH eingeben, ein anderer 10¹⁸ wei verwenden, während jemand anderes das Asset möglicherweise über sein Tokensymbol statt über seine Vertragsadresse referenziert. Eine Frist kann angegeben oder weggelassen werden, weil der Nutzer davon ausgeht, dass das System sie ableiten wird.
Für einen Menschen können diese Ausdrücke gleichwertig wirken.
Für eine Policy-Engine sind sie jedoch keine identischen Eingaben.
Vor der Bewertung muss Newton den Intent in definierte Bestandteile zerlegen: Wer die Aktion anfordert, welche Aktion angefordert wird, welches Asset und welches Ziel beteiligt sind und welche Einschränkungen die Ausführung steuern.
Nur dann kann mit der Normalisierung begonnen werden.
Asset-Identifikatoren, Beträge, Chains, Empfänger, Fristen, Slippage und andere Einschränkungen müssen standardisierte Referenzen, Einheiten, Typen und Formate erhalten, sodass die Feldreihenfolge die Bedeutung des Intents nicht verändern kann.
Auch für Default-Werte braucht es eine gemeinsame Regel. Wenn ein erforderliches Feld fehlt oder ein Parameter mehrere Interpretationen zulässt, sollte das System nicht jedem Operator erlauben, eigene Annahmen zu treffen. Der Intent sollte als ungültig oder unzureichend spezifiziert behandelt werden, bevor die Policy ausgeführt wird.
Sobald die Felder validiert und normalisiert sind, kann Newton eine kanonische Repräsentation aufbauen: ein einzelnes semantisches Objekt, das den ursprünglichen Intent abbildet. Danach kann es unter denselben Regeln serialisiert werden, sodass jeder Operator dieselbe Struktur, dieselben Werte und dieselbe Bedeutung erhält.
Das ist der Teil, den ich für wesentlich halte.
Eine Policy sollte nicht die Worte bewerten, die ein Nutzer eingegeben hat. Sie sollte den normalisierten Intent bewerten, nachdem Unterschiede in Format, Einheiten und Ausdruck entfernt wurden.
Wenn dieser Schritt fehlschlägt, kann selbst eine deterministische Policy das System nicht retten.
Newton kann die Konsistenz der Autorisierung nur dann bewahren, wenn jeder Operator vor der Policy-Bewertung denselben kanonischen Intent erhält.
@NewtonProtocol $NEWT #Newt $LAB $BTW