Na minha visão, a canonicalização é a etapa em que Newton transforma uma Intent ambígua em uma entrada precisa o suficiente para que uma Política possa avaliar de forma consistente.
Uma Intent bruta pode chegar em muitas formas. Para a mesma solicitação de troca, um usuário pode inserir 1 ETH, outro pode usar 10¹⁸ wei, enquanto alguém mais pode se referir ao ativo pelo seu símbolo de token em vez do endereço do seu contrato. Um prazo pode ser fornecido ou omitido, porque o usuário assume que o sistema irá inferi-lo.
Para um ser humano, essas expressões podem parecer equivalentes.
Para um mecanismo de Política, elas não são a mesma entrada.
Antes da avaliação, Newton precisa analisar a Intent em componentes definidos: quem solicita a ação, qual ação é solicitada, quais ativos e destino estão envolvidos e quais restrições regem a execução.
Só então a normalização pode começar.
Identificadores de ativos, quantidades, cadeias, destinatários, prazos, slippage e outras restrições precisam de referências, unidades, tipos e formatos padronizados, para que a ordenação dos campos não altere o significado da Intent.
Valores padrão também precisam de uma regra comum. Quando um campo obrigatório está ausente ou um parâmetro permite múltiplas interpretações, o sistema não deve deixar que cada operador faça suas próprias suposições. A Intent deve ser tratada como inválida ou insuficientemente especificada antes da Política ser executada.
Depois que os campos são validados e normalizados, Newton pode construir uma representação canônica: um único objeto semântico que representa a Intent original. Em seguida, ele pode ser serializado sob as mesmas regras, garantindo que cada operador receba a mesma estrutura, valores e significado.
Esta é a parte que considero essencial.
Uma Política não deve avaliar as palavras que o usuário digitou. Ela deve avaliar a Intent normalizada, depois que diferenças de formato, unidades e expressões forem removidas.
Se essa etapa falhar, nem mesmo uma Política determinística consegue salvar o sistema.
Newton pode preservar a consistência de autorização apenas quando todos os operadores recebem a mesma Intent canônica antes da avaliação pela Política.
@NewtonProtocol $NEWT #Newt $LAB $BTW
Uma Intent bruta pode chegar em muitas formas. Para a mesma solicitação de troca, um usuário pode inserir 1 ETH, outro pode usar 10¹⁸ wei, enquanto alguém mais pode se referir ao ativo pelo seu símbolo de token em vez do endereço do seu contrato. Um prazo pode ser fornecido ou omitido, porque o usuário assume que o sistema irá inferi-lo.
Para um ser humano, essas expressões podem parecer equivalentes.
Para um mecanismo de Política, elas não são a mesma entrada.
Antes da avaliação, Newton precisa analisar a Intent em componentes definidos: quem solicita a ação, qual ação é solicitada, quais ativos e destino estão envolvidos e quais restrições regem a execução.
Só então a normalização pode começar.
Identificadores de ativos, quantidades, cadeias, destinatários, prazos, slippage e outras restrições precisam de referências, unidades, tipos e formatos padronizados, para que a ordenação dos campos não altere o significado da Intent.
Valores padrão também precisam de uma regra comum. Quando um campo obrigatório está ausente ou um parâmetro permite múltiplas interpretações, o sistema não deve deixar que cada operador faça suas próprias suposições. A Intent deve ser tratada como inválida ou insuficientemente especificada antes da Política ser executada.
Depois que os campos são validados e normalizados, Newton pode construir uma representação canônica: um único objeto semântico que representa a Intent original. Em seguida, ele pode ser serializado sob as mesmas regras, garantindo que cada operador receba a mesma estrutura, valores e significado.
Esta é a parte que considero essencial.
Uma Política não deve avaliar as palavras que o usuário digitou. Ela deve avaliar a Intent normalizada, depois que diferenças de formato, unidades e expressões forem removidas.
Se essa etapa falhar, nem mesmo uma Política determinística consegue salvar o sistema.
Newton pode preservar a consistência de autorização apenas quando todos os operadores recebem a mesma Intent canônica antes da avaliação pela Política.
@NewtonProtocol $NEWT #Newt $LAB $BTW