Пока я читал про архитектуру протоколов Newton, кое-что привлекло мое внимание. Они решили разделить логику политики, вычисления и выполнение на три уровня.

* Первый уровень называется Policy Layer (Уровень политики). Здесь определяются политики, настраиваются и подключаются к оракулам, которые предоставляют данные. Этот слой определяет, какие правила должны применяться, например лимиты расходов, проверки санкций или требования know-your-customer (знай своего клиента).

Второй уровень — Compute & Consensus (Вычисления и консенсус). После проверки политик в блокчейне Newton отправляет задачи сети операторов через Gateway (шлюз). Эти операторы получают данные, оценивают политику и создают подписи.

* Затем агрегатор объединяет эти подписи в одно доказательство, когда достаточно операторов приходят к согласию.

В этот процесс подключаются уровень верификации и исполнения.

* Здесь PolicyClient проверяет доказательство через AttestationValidator, прежде чем транзакция сможет произойти.

* Смарт-контракт проверяет результат повторного выполнения работы с политикой.

С инженерной точки зрения такое разделение помогает.

* Это сохраняет всё ясным и разделённым.

* Уровень политики только задаёт правила.

* Уровень вычислений и консенсуса только вырабатывает оценку.

* Уровень верификации только проверяет доказательство перед выполнением.

Поэтому при таком разделении правила политики могут меняться, не затрагивая контракты верификации.

* Верификация остаётся отделённой от того, как операторы вычисляют политики.

* Это также задаёт рабочий процесс.

* Разработчики задают политики один раз.

* Операторы вычисляют их вне блокчейна.

* Смарт-контракты только проверяют доказательство перед выполнением транзакций.

Ньютон делает вычисление политики отдельным сервисом, который формирует доказательства для контрактов.

* Мне показалось интересным это разделение в документации.

Создание как on-chain авторизация становится более сложным — помогает ли разделение определения, вычисления и проверки политики лучше, чем размещение логики авторизации в смарт-контрактах @NewtonProtocol #Newt $NEWT