По моему мнению, каноникализация — это этап, на котором Ньютон превращает неоднозначный Intent во входные данные, достаточно точные, чтобы Политика могла оценивать их последовательно.
Необработанный Intent может приходить в разных формах. Для одного и того же запроса на свап один пользователь может указать 1 ETH, другой — использовать 10¹⁸ wei, а кто-то еще может обратиться к активу по его токен-символу вместо адреса контракта. Дедлайн может быть указан или пропущен, потому что пользователь предполагает, что система сможет его вывести.
Для человека эти выражения могут казаться эквивалентными.
Для движка Политики это не одно и то же.
Перед оценкой Ньютону нужно распарсить Intent на заданные компоненты: кто запрашивает действие, какое действие запрашивается, какой актив и какой целевой объект задействованы, а также какие ограничения управляют выполнением.
Только после этого может начаться нормализация.
Идентификаторы активов, суммы, цепочки, получатели, дедлайны, проскальзывание и другие ограничения должны иметь стандартизированные ссылки, единицы измерения, типы и форматы, чтобы порядок полей не мог изменить смысл Intent.
Также нужны общие правила для значений по умолчанию. Когда обязательное поле отсутствует или параметр допускает несколько интерпретаций, системе не следует оставлять каждому оператору возможность делать собственные предположения. Intent должен считаться недействительным или недостаточно заданным до того, как Политика будет запущена.
После проверки полей и нормализации Ньютон может построить каноническое представление: единый семантический объект, описывающий исходный Intent. Затем его можно сериализовать по тем же правилам, гарантируя, что каждый оператор получит одну и ту же структуру, значения и смысл.
Это та часть, которую я считаю обязательной.
Политика не должна оценивать слова, которые ввел пользователь. Она должна оценивать нормализованный Intent — после того, как различия в формате, единицах и способе выражения будут устранены.
Если этот шаг не удается, то даже детерминированная Политика не сможет спасти систему.
Ньютон может сохранить согласованность авторизаций только тогда, когда каждый оператор получает один и тот же канонический Intent до оценки Политикой.
@NewtonProtocol $NEWT #Newt $LAB $BTW
Необработанный Intent может приходить в разных формах. Для одного и того же запроса на свап один пользователь может указать 1 ETH, другой — использовать 10¹⁸ wei, а кто-то еще может обратиться к активу по его токен-символу вместо адреса контракта. Дедлайн может быть указан или пропущен, потому что пользователь предполагает, что система сможет его вывести.
Для человека эти выражения могут казаться эквивалентными.
Для движка Политики это не одно и то же.
Перед оценкой Ньютону нужно распарсить Intent на заданные компоненты: кто запрашивает действие, какое действие запрашивается, какой актив и какой целевой объект задействованы, а также какие ограничения управляют выполнением.
Только после этого может начаться нормализация.
Идентификаторы активов, суммы, цепочки, получатели, дедлайны, проскальзывание и другие ограничения должны иметь стандартизированные ссылки, единицы измерения, типы и форматы, чтобы порядок полей не мог изменить смысл Intent.
Также нужны общие правила для значений по умолчанию. Когда обязательное поле отсутствует или параметр допускает несколько интерпретаций, системе не следует оставлять каждому оператору возможность делать собственные предположения. Intent должен считаться недействительным или недостаточно заданным до того, как Политика будет запущена.
После проверки полей и нормализации Ньютон может построить каноническое представление: единый семантический объект, описывающий исходный Intent. Затем его можно сериализовать по тем же правилам, гарантируя, что каждый оператор получит одну и ту же структуру, значения и смысл.
Это та часть, которую я считаю обязательной.
Политика не должна оценивать слова, которые ввел пользователь. Она должна оценивать нормализованный Intent — после того, как различия в формате, единицах и способе выражения будут устранены.
Если этот шаг не удается, то даже детерминированная Политика не сможет спасти систему.
Ньютон может сохранить согласованность авторизаций только тогда, когда каждый оператор получает один и тот же канонический Intent до оценки Политикой.
@NewtonProtocol $NEWT #Newt $LAB $BTW