Однажды я наблюдал, как фонд разматывался плохо, хотя все внутренние контроли вокруг него оставались полностью целыми. Каждая сделка получала одобрение. Каждый лимит соблюдался. Посмертный разбор выдал такой аккуратный бумажный след, что почти казалось оскорбительным, потому что в нем ничего не объяснялось: почему сама стратегия изначально была плохой идеей. Я помню, как сидел с той особой разновидностью разочарования — не на что было указать, потому что на самом деле ничего не сломалось.
«Ньютоновские Лавки» на Mainnet Beta формализуют точно ту же трещину. Политика Лавки исполняется ровно так, как ее написал куратор, и каждое исполнение порождает проверяемый квиток через Explorer. Этот квиток доказывает, что правило было выполнено корректно. Он не говорит ничего о том, было ли само правило — порог отвязки, допустимое обеспечение, триггер ликвидации — вообще разумным решением с самого начала. Плохо спроектированная политика, идеально исполняемая, дает тот же чистый след аудита, что и хорошо спроектированная, прямо до момента, пока что-то не пойдет не так. Ничто на уровне исполнения не различает порог, который был хорошо откалиброван, от того, который просто случайно работал, пока условия не изменились.
Ньютону нужно сохранить это различие видимым — политика, которая отработала корректно, не то же самое, что политика, которую правильно было писать, — и найти какой-то реальный способ поставить суждения куратора под проверку, а не просто код куратора.
Набивать очки кампании, не разбираясь в том, что именно политика Лавки реально принуждает исполнять, — это активность, а не понимание.
Что происходит в первый раз, когда политика Лавки срабатывает безупречно против правила, которое никто не должен был сформулировать именно так? Чистый квиток и правильное решение — это не одно и то же.
Как-то раз я отправил международный банковский перевод, который исчез в привычном «лимбе» между «отправлено» и «получено». Мое банковское приложение утверждало, что платеж был обработан, но спустя день я всё равно поймал себя на том, что звоню в банк и задаю самый простой вопрос: он действительно уже пришёл? Экран подтверждения не лгал. Он просто отвечал на другой вопрос, чем тот, который меня интересовал. Чтение whitepaper протокола Newton вернуло мне это воспоминание. Чем больше я изучал его процесс авторизации, тем меньше думал о том, существовало ли аттестование, и тем больше — о том, когда разные части этого аттестования становятся значимыми. Newton не сжимает доверие до одного мгновения. Он распределяет уверенность по цепочке тщательно разделённых этапов.
Я однажды наблюдал, как лэндинг-позиция была ликвидирована по цене, с которой час спустя никто уже не мог договориться, что именно она вообще являлась рыночной ценой в тот момент. Каждый шаг дальше этого числа выполнился ровно так, как было записано. Ликвидация была технически корректной.
Проблема была не в том, как исполнили — проблема была в самом числе. Я дольше, чем было полезно, сидел с этим ощущением различия, в основном потому, что в процессе ничего фактически не “сломалось”.
Это точный шов, к которому я постоянно возвращаюсь, когда говорю про Newton Protocol и Mainnet Beta: место, где я начал наблюдать это в практике, а не только на бумаге.
В Newton политика Vault оценивается по данным, которые подтягиваются через провайдеров вроде RedStone и Credora, а операторы независимо подтверждают, что они получили то, что утверждают, что получили. Это подтверждение реально — оно криптографически проверяемо, и оператора, уличённого в подделке входных данных, можно оспорить и подвергнуть штрафу (slash).
Но подтверждение покрывает хранение/передачу самого числа, а не его истинность. Если фид сообщает устаревшую цену или скоринг риска просто неверен, операторы Newton добросовестно подтвердят, что получили ровно этот вход, корректно оценят политику на его основе и сформируют проверяемую квитанцию, из которой будет видно, что плохое решение было принято безукоризненно.
Newton должен постоянно доказывать, что эта гарантия остаётся ограниченной честно — чтобы формулировка «политика исполнилась корректно» никогда тихо не читалась как «исход был корректным». Квитанция Explorer должна сделать эту границу заметной, а не замазывать её.
Гоняться за “точками”, не понимая, что именно авторизуется, — быстрый способ неправильно прочитать то, что строит Newton.
Что происходит в Newton в первый раз, когда Vault безупречно применяет политику к числу, которое просто оказалось неверным? Проверенное исполнение — это не то же самое, что проверенная истина.
Однажды я присутствовал на аудите безопасности, который закрылся безупречно по всем пунктам, которые были проверены, по всем подписям, собранным на фрагменте кода, который вышел с ошибкой — при этом никто в ходе того аудита не был фактически поставлен в известность, чтобы искать именно ее. Никто не лгал. Просто процесс был построен, чтобы ответить на один конкретный вопрос, и все в комнате воспринимали ответ как если бы он охватывал значительно больший вопрос. Этот разрыв между тем, что система проверяет, и тем, что люди предполагают, что она проверяет, — это та же самая «шовная линия», проходящая через модель доверия протокола Newton; и она проявляется в нескольких разных местах, как только начинаешь ее искать: в реальной механике Mainnet Beta и в архитектуре, лежащей в его основе.
Почему Ньютон разделяет регистрацию политики и назначение политики
Раньше я думал, что как только контракт знает, где находится политика, самая сложная часть уже позади. Адрес казался финальным соединением между приложением и его уровнем авторизации. Чем больше времени я тратил на чтение документации для разработчиков Newton, тем яснее понимал, что эти две идеи намеренно держат раздельно.
Newton различает назначение адреса контракта Policy и регистрацию конфигурации политики. Они звучат похоже, но если присмотреться, становится видно, что каждое из них на самом деле делает. Указание на контракт Policy сообщает клиенту, где существует управление политиками. Регистрация идет дальше: она создает конкретную конфигурацию политики и возвращает ID политики, по которому в дальнейшем будут проверяться аттестации.
Это разделение изменило мой взгляд на авторизацию. Приложение может выглядеть связанным, хотя ему по-прежнему не хватает данных, необходимых для проверки аттестации. Архитектура не рассматривает адрес контракта как доказательство того, что авторизация готова. Вместо этого активация становится явным шагом со своей собственной криптографической идентичностью.
Чтение документации Mainnet Beta позволило понять, что это решение ощущается не как дополнительная сложность, а как продуманное управление состоянием. Авторизация не считается активной просто потому, что инфраструктура уже развернута. Она становится активной только после того, как сама политика зарегистрирована и идентифицирована.
Воронка кампании — не продукт. Понимание различий важнее, чем акценты.
Если авторизация зависит от зарегистрированной политики, а не от назначенного адреса, должна ли активация быть столь же заметной, как развертывание?
Иногда самое важное состояние — то, которое еще не создано.
Почему схемы оракула Newton важны еще до того, как будет оценена первая политика
Я всё время думал о том, с чего на самом деле начинается авторизация. Очевидный ответ заключался в самой политике. Операторы получают запрос, оценивают policy Rego, формируют аттестацию и позволяют продолжить выполнение, если требуемые условия соблюдены. Эта последовательность встречается по всей архитектуре Newton, поэтому было легко предположить, что политика представляет первый значимый шаг. Проводя больше времени в документации разработчика, я понял, что кое-что более тихое происходит даже раньше. Прежде чем политика решит что-либо, Newton дает разработчикам способ определить, как вообще должно выглядеть допустимое входное значение.
Все говорят о комплаенсе. Протокол Newton меняет, кому это приносит выгоду.
Пока я читала о <c-17/>, мне снова и снова возвращалась одна идея. Большинство блокчейн-проектов создают комплаенс, потому что им это приходится делать. Ньютон даёт разработчикам причину создавать его, потому что кто-то в будущем может захотеть им пользоваться. Похоже, это гораздо более значительный сдвиг, чем люди сейчас обсуждают. Вопрос на самом деле не в том, важен ли программируемый комплаенс. Он важен — безусловно. Более сложный вопрос в том, может ли логика комплаенса стать тем, что разработчики публикуют и за что продолжают получать доходы ещё долгое время после того, как они закончат её писать.
Почему Newton Разделяет Логику Политик и Логику Приложений
Обычно ПО Смешивает Принятие Решений с Выполнением Большинство приложений прячут процесс принятия решений внутри кода приложения. Кошелёк решает, следует ли выполнять перевод. Кредитный протокол решает, достаточно ли обеспечения. Торговая платформа решает, соответствует ли заявка своим правилам. С точки зрения пользователя эти решения просто происходят. Читая whitepaper Newton, я заметил, что у этого традиционного подхода есть интересное ограничение. Приложение выполняет и принятие решения, и его исполнение, из-за чего становится сложно для кого-либо за пределами этого приложения независимо проверить, как было принято решение. Newton подходит к этой проблеме иначе.
Хэши политики Newton делают авторизацию воспроизводимой, а не только проверяемой
Раньше я думал, что воспроизводимость — это в основном вопрос для научных исследований. Если дважды удавалось прийти к одному и тому же выводу, мне казалось, что этого достаточно. Блокчейн постепенно изменил эту перспективу, потому что каждое важное решение со временем становится чем-то, что другим людям может понадобиться независимо проверить.
Один из моментов, который запомнился мне из whitepaper Newton, — роль policy hash. Вместо того чтобы просто доказывать, что авторизация произошла, подтверждение (attestation) привязывается к точной политике, которая ее сформировала.
Это различие оказалось важнее, чем я изначально понимал. Если лежащая в основе политика изменится даже немного, получившаяся авторизация будет относиться к совершенно другому policy hash.
Это означает, что авторизация не только проверяется постфактум, но и воспроизводится, потому что каждый оператор оценивает одну и ту же версию политики. У будущих проверяющих не будет необходимости гадать, по какому сборнику правил было принято решение. Криптографический отпечаток (fingerprint) уже отвечает на этот вопрос.
Чтение документации Mainnet Beta сделало эту идею еще более практичной. Чеки (receipts) авторизации становятся более значимыми, когда они связаны с неизменяемыми версиями политики, а не со скрытой логикой бэкенда, которая со временем может незаметно эволюционировать.
Оптимизировать вознаграждения, не понимая слой политики снизу, — это просто фермерство с дополнительными шагами.
Если каждая авторизация несет отпечаток политики, которая ее создала, разве управление (governance) со временем не станет проще аудировать, чем само исполнение?
Иногда самый маленький хэш несет наибольшую ответственность.
NEWTON: Разделение авторизации и расчетов меняет жизненный цикл транзакции
Разделение авторизации и расчетов меняет жизненный цикл транзакции Наблюдение за транзакциями в блокчейне на протяжении многих лет создало для меня простую ментальную модель. Пользователь подписывает транзакцию, отправляет ее в сеть, ждет подтверждения и считает процесс завершенным. Почти все обсуждения были сосредоточены на скорости исполнения, комиссиях или финальности. Чтение белой книги Newton заставило меня понять, что еще одна стадия заслуживает такого же внимания: что происходит до того, как разрешается начать исполнение. Авторизация становится отдельным уровнем
Ньютон: детерминированные политики означают, что каждый оператор должен получать один и тот же ответ
Было время, когда я полагал, что децентрализация означает сбор разных мнений и каким-то образом усреднение их в одно решение.
Чем больше я изучал распределённые системы, тем яснее понимал, что согласованность часто важнее разнообразия. Этот взгляд вернулся во время чтения whitepaper по Newton. Каждый оператор оценивает одну и ту же детерминированную политику с теми же входными данными, поэтому цель — не произвести множество ответов, а независимо прийти к одному и тому же ответу.
Мне интересно, что такая архитектура переносит сложность с доверия индивидуальному суждению на доказательство того, что сами правила всегда приводят к одному и тому же результату. Mainnet Beta придаёт этой идее практический смысл, превращая оценку политики в то, что пользователи могут проверить, а не просто принять.
Активность, не связанная с реальной диссертацией, — это просто шум в наградном значке. Если каждый честный оператор приходит к одному и тому же выводу, доверие начинается с сети или с оцениваемой политики?
Согласованность часто тише скорости, но иногда гораздо ценнее.
Мошенничество не всегда выглядит опасным, когда доходит до кошелька.
Иногда это выглядит как обычный перевод. Иногда это всего лишь подтверждение контракта. Иногда адрес сокращают, скрывают за дружелюбным интерфейсом или вставляют, кто-то притворяется, что помогает. К тому моменту, когда пользователь видит опасность, транзакция уже стала историей. Вот слабое место: многие системы видят риск, но не всегда успевают остановить его до выполнения. Проверяемые адреса поначалу могут звучать скучно. Список мошеннических кошельков, вредоносных отправителей, фишинговых контрактов, адресов-«мулов» или известных пунктов мошенничества не кажется захватывающим. Но сила появляется тогда, когда этот список превращается в правило.