Когда я впервые наткнулся на упоминание Rego в документации Newton Protocol, я почти сразу пропустил его. Языки политик. Звучит сухо. Похоже на то, что читаешь один раз и сразу забываешь.
Затем я как следует в этом разобрался и понял, что это на самом деле один из наиболее интересных технических выборов, которые сделал Ньютон, и понимание этого меняет то, как вы думаете о том, на что на самом деле способна комплаенс-надстройка Ньютона.
Что такое Rego и откуда оно взялось:
Rego — это не то, что Ньютон изобрёл. Это открытый исходный декларативный язык политик, разработанный Styra, и широко используемый в корпоративном ПО в рамках проекта под названием Open Policy Agent, или OPA. Если вы работали с облачной инфраструктурой, безопасностью Kubernetes или системами корпоративного контроля доступа, то с высокой вероятностью вы уже встречали Rego, даже не зная, как оно называется.
Это было построено специально под одну задачу: выражать и оценивать правила о том, разрешать ли что-то происходить. Не для общего назначения. Не для логики смарт-контрактов. Правила. Условия. Политики.
Именно этот фокус делает это интересным в контексте Newton.
Почему важен специально созданный язык политик:
Вот что важно в написании правил комплаенса на языке общего назначения. Это можно сделать. Разработчики делают это постоянно. Но языки общего назначения проектировались для общих задач, а значит, написание в них ясных, аудируемых и поддерживаемых правил комплаенса часто приводит к коду, который сложнее читать, сложнее проверять и сложнее обновлять без внесения ошибок.
Rego создано именно для того, чтобы логику политик было легко читать и проверять. Правило, написанное на Rego, должно выглядеть так, как оно и означает. Когда офицеру по комплаенсу, юридической команде или аудитору нужно проверить, какие правила на самом деле применяются, они должны иметь возможность прочитать политику и понять её без необходимости обратной инженерии логики из кода на языке общего назначения.
Это невероятно важно в контексте комплаенса, где людям, которым нужно понимать, какие правила существуют, не всегда являются разработчиками.
Как это выглядит для Newton в частности:
Мотор политик Newton позволяет разработчикам писать правила комплаенса на Rego, которые вычисляются децентрализованной сетью операторов до того, как любая транзакция будет завершена. Проверка санкций — это Rego-политика. Лимит расходов — Rego-политика. Требование к контрагенту — Rego-политика. Порог риска, привязанный к живым ценовым данным от RedStone — тоже Rego-политика.
Разработчик задаёт правило в Rego. Операторская сеть Newton вычисляет входящие транзакции на соответствие этому правилу. Результат возвращается в виде BLS-подтверждения (attestation), доказывающего, что проверка была выполнена корректно.
То, что меня действительно впечатляет в этом, — это композиционность. Политики Rego можно накладывать друг на друга и комбинировать. Одна транзакция может одновременно проверяться на соответствие политике санкций, политике лимита расходов и политике порога риска. Разные политики можно писать разными командами и объединять в всеобъемлющий фреймворк комплаенса.
Для протокола, обслуживающего институциональных пользователей с комплексными, многоуровневыми требованиями комплаенса, такая композиционность критически важна. Вы не привязаны к тем правилам, с которыми протокол был поставлен. Вы пишете именно те правила, которые вам реально нужны.
Корпоративный аспект, который, как мне кажется, важнее, чем ему обычно дают кредит:
Вот что стоит понять о том, почему выбор Rego именно для Newton имеет значение для институционального внедрения.
Корпоративные команды ПО уже знают Rego. Его используют в Kubernetes для контроля приёма (admission control), в платформах облачной безопасности, в системах управления доступом на уровне предприятий. Инженеру по комплаенсу или безопасности в регулируемом учреждении, которому предлагают проверить слой политик Newton, не нужно учить новый язык. Он смотрит на то, что и так существует в их мире.
Это не «незначительное удобство». Внедрение корпоративных технологий включает проверки безопасности, проверки комплаенса, юридические проверки. Любой незнакомый элемент стека — это разговор, который нужно вести, риск, который нужно оценить, задержка в процессе внедрения. Использование уже существующего, прошедшего аудит и широко понятного языка политики убирает один из таких разговоров.
Newton пытается быть инфраструктурой, с которой регулируемые учреждения действительно могут работать. Выбор Rego вместо изобретения собственного проприетарного языка политик — конкретный пример того, как это намерение отражается в технических решениях, а не только в маркетинговых формулировках.
Часть про аудируемость:
Одна вещь, к которой я снова и снова возвращаюсь, думая о Rego в контексте комплаенса, — это то, как он решает вопрос аудируемости.
Когда регулятор или аудитор спрашивает: «какие правила применялись, когда произошла эта транзакция?», ответ с Newton такой: вот действующая Rego-политика, вот BLS-подтверждение, доказывающее, что её вычислили, вот криптографическое доказательство того, что проверка выполнялась корректно. Правило читаемо. Оценка проверяема. Доказательства находятся в ончейне (onchain).
Это совершенно другой опыт аудита, чем «вот наши внутренние журналы того, что сказала наша система комплаенса». Один вариант можно проверить кому угодно. Другой требует доверять самому учреждению и его собственному учёту.
Что это означает в продакшене:
Когда Mainnet Beta Newton уже запущена, а VaultKit доступен разработчикам, написание и деплой Rego-политик на реальную инфраструктуру — это уже существующая сегодня возможность.
Разработчики, знакомые с OPA, могут работать со слоем политик Newton, используя паттерны, которые они уже знают. Институции, оценивающие интеграции Newton, могут привлечь свои существующие команды по политике и безопасности для проверки правил без изучения нового подхода. Аудиторы могут читать политики комплаенса без посредника-разработчика, который переводит их.
Это существенное снижение трения для каждого стейкхолдера, которому нужно взаимодействовать со слоем комплаенса.
Моё честное мнение:
Выбор Rego — это одно из тех решений, которое не попадает в заголовки, но сообщает о том, о чём проект думает на самом деле. Newton мог бы изобрести проприетарный язык политик. Так делают многие блокчейн-проекты.
Вместо этого они выбрали проверенный, открытый, корпоративного класса язык с уже существующей экосистемой, уже существующими инструментами и уже существующим знакомством в тех институтах, которым они пытаются служить.
Это прагматичное решение. Взвешенное. И оно делает слой комплаенса Newton более удобным, более аудируемым и более заслуживающим доверия для институционального рынка, на который нацелен проект, чем сделал бы вариант «под заказ» (bespoke).
Наблюдать
@NewtonProtocol closely as this develops. $NEWT #Newt @NewtonProtocol