После того как Dusk объявил о запуске основной сети, я не переслал информацию сразу. За эти годы я видел немало проектов: при запуске — шумно, через пару месяцев блоки почти не растут, узлы тоже без изменений. Поэтому на этот раз я не спешил писать — а несколько дней подряд следил за данными в сети.
Сначала я проверил, есть ли устойчивые изменения в высоте блоков, насколько ровный ритм выработки блоков, и кто реально участвует — подключились ли и продолжают ли оставаться в системе. Раньше, оценивая ценность сети, я по привычке смотрел на анонсы и объёмы транзакций. Но за эти дни наблюдений стало ясно: то, что действительно не врёт, — это сформировалось ли состояние непрерывной работы сети. Это вывод холодный, но чем больше я смотрю, тем больше с ним соглашаюсь.
То, что реально остановило меня и заставило задуматься, — это Succinct Attestation от Dusk. Это базовый для DuskDS слой, основанный на комитетном PoS-согласовании: с помощью случайно выбранного Provisioner предложение формируется, проверяется и подтверждается. Каждая фаза консенсуса проходит в три шага: Proposal — выбранный Provisioner создаёт и транслирует кандидатный блок; Validation — комитет проверяет корректность блока, и для одобрения требуется абсолютное большинство в две трети; Ratification — другой комитет подтверждает и окончательно фиксирует блок. Как только после Ratification блок входит в детерминированное окончательное состояние, он больше не откатывается.
Я перечитал этот момент дважды, потому что речь не о «вероятностной безопасности», а об «окончании навсегда после подтверждения».
Это критично для финансовых сценариев. Логика многих сетей такова: подожди чуть дольше — с большой вероятностью отката не будет. Но ценные бумаги, клиринг/расчёты и комплаенс-активы не принимают «в основном». Им нужны чёткие результаты: вчера подтвердили — сегодня это не должно быть пересмотрено. Раньше я считал окончательность (finality) просто техническим показателем. Теперь понимаю: это порог, который определяет, осмелятся ли институты размещать на цепочке реальные активы.
Стать Provisioner несложно. Нужно заложить минимум 1000 DUSK и запустить узел. Узел должен быть онлайн 24/7: минимум 2 CPU, 4GB памяти и 50GB хранилища. После стейкинга созревание занимает около 12 часов, затем можно участвовать в консенсусе. Комитет выбирает Provisioner по случайной выборке с учётом весов стейка — каждый раз по-новому.
Эти дни наблюдений изменили для меня не столько доверие к Dusk, сколько ясность: что именно мне нужно смотреть. Для инфраструктуры, ориентированной на приватность и комплаенс-финансы, запуск основной сети — лишь старт; по-настоящему важно, может ли сеть стабильно производить надёжное состояние #dusk $DUSK @Dusk
Я почти целый день подвисал, изучая логи нод тестсети Dusk: лёд в холодном айс-американо на столе весь растаял, а вода, которая конденсировалась на стенках стакана, расплылась мокрым пятном на коврике для мыши. Я поставил мышь на беспроводную зарядную станцию — и просто сидел, как вкопанный, пять минут. И вдруг дошло — вопрос, который всё время меня мучил: сейчас проектов с приватными блокчейнами немало. Почему Dusk в итоге выбрал нативную приватную виртуальную машину Rusk, а не просто обернул EVM слоем ZK-приватности? Сначала я думал, что дело лишь в выборе техмаршрута. Но потом я несколько раз перелопатил официальные материалы про Phoenix-модель торговли и про end-to-end приватность — и понял, что всё оказалось проще и глубже одновременно.
Самое критичное место для приватных приложений — дело не в нулевых знаниях само по себе, а в риске утечки состояния на всём пути. Если просто добавить «приватную оболочку» на слой транзакций EVM, то следы в виде открытых данных всё равно останутся повсюду: в хранилище контрактов, в стеке выполнения, в event-логах. Достаточно, чтобы утёк хотя бы один из этапов — и вся предыдущая приватная защита окажется сделана зря. Dusk начинает проектировать приватность с самого низа, с нативной виртуальной машины Rusk, и использует рекурсивные доказательства PLONK для привязки состояния. Проверка валидации одной приватной транзакции на одном узле занимает всего 1,2 секунды — почти в 4 раза быстрее, чем схема с ZK-плагином поверх EVM. Если по-простому: они трезво разложили по приоритетам приватность, скорость разработки и безопасность — и не гнались слепо за краткосрочным эффектом вроде «совместимость с EVM поможет быстрее разогнать экосистему».
Но окончательно переубедила меня другая деталь. Официально снова и снова подчёркивают: ноды занимаются проверкой транзакций, а не хранят у себя открытые данные пользователей. Выполнение транзакций можно реализовать за счёт зашифрованного пространства состояний, но контроль над активами и ключи для целевых представлений всегда остаются у самого пользователя. Именно это помогло мне понять: Dusk изменил не просто способ реализации приватности, а самую базовую связку доверия в публичном чейне — свёл к минимуму ту часть, которую обязательно нужно доверять узлу, и максимально расширил долю того, что можно проверять криптографией.
В конце концов end-to-end приватность — это лишь способ представить продуктовую фичу. Вот эта модель доверия — «нода ничего не знает» + «пользователь сам держит ключи» — это то, что @dusk_foundation действительно стоит обдумать и что сложнее всего скопировать. #dusk $DUSK @Dusk
В последнее время я снова разбираю фиксированно-процентный механизм AMM @TermMaxFi. Меня несколько дней удерживала одна довольно глупая мысль: чтобы DeFi-кредитование вошло в более привычные для широкой публики финансовые сценарии, чего не хватает — большего числа видов заимствований или способа ценообразования, при котором пользователи не несут риск колебаний процентных ставок. Несколько раз я сопоставлял четвертую главу белой книги и реальные данные сделок с официального сайта, и мне кажется, что TermMax пытается решить не поверхностную проблему «высокие или низкие проценты», а то, как сделать стоимость ончейн-кредитов предсказуемой. #TermMax
Раньше в DeFi кредитование в основном шло по пути моделей с плавающей ставкой: беря в долг, ты видишь текущую APY и в принципе не знаешь, не уведут ли через три дня ставку из-за крупной заявки на далёкие значения. Будь то Compound, Aave или Morpho — эффективность капитала действительно выросла, но цена в том, что каждый участник вынужден принимать неопределённость из‑за колебаний ставки. Инструментов для заимствований стало больше, но при этом самая важная стабильность стоимости капитала превратилась в переменную, которая может измениться в любой момент. TermMax кажется мне не таким: он вообще не «чинит» плавающие модели ставками.
По словам команды, для каждого срока погашения соответствующий пул имеет собственную независимую фиксированную процентную кривую. С помощью механизма AMM, который разбивает по срокам (bucketed maturities), и многослойного ценообразования по ликвидности фиксируется стоимость заимствований для разных горизонтов заранее — логика ценообразования по сути с самого начала не меняется. Меняется не сама логика, а то, насколько пользователи могут заранее оценить будущую стоимость средств.
Мне кажется, по-настоящему важно «копать» именно слой ценообразования. Пользователю не нужно гадать, не появится ли на следующем блоке крупный заём, который резко поднимет ставку, и не нужно спорить с тем, не решит ли протокол внезапно изменить параметры и тем самым пересобрать модель ставок. TermMax использует автоматический мейкинг с сегментацией по срокам и добавляет слой протокольного резервного фонда, накопленного из клиринговых штрафов, — тем самым переводит процентные ставки для разных сроков в фиксированную стоимость, которую пользователь может прямо зафиксировать.
$TMX, параметры глубины ликвидности, коэффициент отклонения ставок и риск-подготовительный резерв — честно говоря, их ещё надо подтвердить временем, поэтому делать выводы сейчас рано. Но TermMax хотя бы напомнил мне следующее: когда DeFi‑кредитование будет сопрягаться с мейнстримным капиталом, необязательно копировать стратегию плавающих ставок. Можно попробовать сохранить ончейн‑модель децентрализованной безопасности и при этом сначала дать пользователям определённую, заранее известную стоимость заимствований. #termmax @TermMax
Вчера задержался на работе и «рыбачил» на сайте — пока листал новую официальную версию Dusk, запустился с настроем «переделали дизайн и поменяли обложку проекта». Старый сайт: чтобы найти техдокументацию, нужно кликнуть по трём-четырём ссылкам, а иногда он ещё и 404 выдает. В итоге я 20 минут разглядывал слоистую техническую схему на новом сайте и наконец связал в одну цепочку все мои разрозненные знания о проекте.
Новый сайт почти не заваливает маркетингом — сразу разложил техстек от нижнего уровня до верхнего. Самый низ — DuskDS: на нём держатся консенсус, расчёты и доступность данных. Уровень консенсуса построен на SBA — это комитетный PoS-механизм, где генератор блока выбирается анонимно через Proof-of-Blind-Bid. Список валидаторов меняется каждую эпоху — так задумано, чтобы не дать заранее зафиксировать валидаторов или атаковать их, и чтобы не было классической проблемы PoS, когда крупные игроки монополизируют право выпускать блоки. Транзакционный уровень — Phoenix: он опирается на UTXO-модель учёта, где средства существуют в виде крипто-«notes». В связке с обязательствами Pedersen это скрывает суммы, а инвалидаторы блокируют дабл-спенд. Узлы проверяют только валидность самих zero-knowledge proof’ов. Когда я тестировал, просто вставил в транзакцию открытый текст — всё отклонили; тогда стало ясно, что это жёстко «зашито» уже на уровне консенсуса.
Дальше, на уровне Dusk Trade, я думал, что это обычный приватный «DEX-обвес». Но демо в документации показало другое: он напрямую стыкуется с базовыми каналами расчётов, а в order book цены и количество по умолчанию шифруются — используется ElGamal гомоморфное шифрование. В цепочке и цена, и объём — в виде шифротекста. Матчинг-движок вычисляет совпадения прямо по шифротексту; после определения цены и количества сделка расшифровывается, и в итоге детали ордеров на всём пути не раскрываются. Ещё выше есть слой DuskEVM — уровень выполнения, переработанный на базе OP Stack. Там же делаются расчёты на DuskDS, так что Solidity-проекты, подключаясь, наследуют приватные возможности нижнего уровня — без изобретения «второго котла». Сверху — рабочие процессы рынка с соблюдением требований: Citadel оформлен как нативный модуль, который можно вызывать напрямую; пользователям не нужно передавать фото паспорта — достаточно zero-knowledge proof’а, чтобы доказать системе, что они «прошли комплаенс-проверку».
Раньше мне всё время казалось, что технический путь Dusk собран из кусочков. Но после нового официального сайта, где весь стек разложен по полочкам, я понял: это не про анонимные «игрушки» для переводов с нуля. Это построение полноценного комплаенс-приватного финансового базиса. Закончил читать — сразу докинул немного DUSK: смелость так прозрачно выставить техническую архитектуру напоказ для всех — сегодня редкость. #dusk $DUSK @Dusk
Скажу по правде: в самом начале я тоже думал, что Dusk — это просто очередная старая схема с анонимными нарративами. Пока на прошлой неделе я не пошёл на тест RC2 в основной сети, в составе Discord-сообщества. Было три часа ночи, холодный американо уже успел стать тёплым; Gas поставили низкий — и он застрял на 20 минут, после чего я ещё пошёл жаловаться администратору. И только когда тестировали дальше, я внезапно понял: это вообще не то же самое, что те приватностные чейны, в которые я раньше играл.
У большинства приватностных чейнов шифрование прописано на уровне смарт-контрактов: как если бы замок от входной двери был установлен в гостиной. Если какой-то вор залезет через окно и проникнет внутрь, все ваши вещи будут на виду. Прошлым годом я тестировал один популярный приватностный чейн — там из‑за уязвимости прав в контракте все переводы тестовой сети утекали в виде открытого текста прямо в блокчейн‑обозреватель. Тестовый адрес, который я оставил, потом два месяца досаждали мусорные аирдропы.
Dusk же «припаял» шифрование коммитментов Педерсена к слою консенсуса SBA: активы уже с момента попадания в mempool находятся в зашифрованном состоянии. Даже если нода получит полный набор данных по блоку, она сможет прочитать только нулевые доказательства «что транзакция легитимна». Нельзя нащупать ни копейки открытого баланса, ни суммы, ни адреса. Я специально пихнул в интерфейс нод данные открытых транзакций — их просто отбросил уровень консенсуса, и даже верификацию толком не пропустило.
Раньше меня больше всего бесил вопрос KYC у приватностных чейнов. В прошлом году я пользовался какой‑то «комплаенс» приватностной цепью: я загрузил фото паспорта через сторонний плагин — и в ответ почти сразу начал получать спам‑СМС про зарубежные инвестиции. А ZkKYC у Dusk встроен прямо в виртуальную машину Rusk. Ваши KYC‑свидетельства хранятся у вас локально: при транзакции генерируется лишь доказательство «я соответствую требованиям регулятора», и даже команде проекта не достаются ваши данные личности. Регулятору, если ему открыть аудит‑вью, тоже будет доступен только просмотр по заранее определённым транзакциям. Сейчас они как раз объединили PR с гибридными доказательствами FRI+PLONK: проверка одной транзакции — всего 1,4 миллисекунды. Gas на конфиденциальных смарт‑контрактах примерно на 67% ниже, чем когда EVM заворачивают в ZK‑слой. Я развернул тестовый контракт облигаций — кода даже меньше 20 строк, а Gas ушло всего $0.28 DUSK.
На старых приватностных цепях я раньше попал на «стакан/залипание» и потерял почти две тысячи U. Я долго думал, что приватность и комплаенс по природе — смертельные противники: либо делаешь чисто анонимную песочницу для грязных бизнесов, либо строишь «комплаенс‑цепь», которая срывает с пользователя всю приватность. Протестировав Dusk, я понял другое: приватность вообще не должна быть ширмой для серых схем. Активы и данные пользователей должны всегда быть у самих пользователей; комплаенс тоже не должен покупаться ценой потери приватности. Dusk по‑настоящему срезал этот узел — который тянулся почти десять лет — прямо на уровне фундамента.
В выходные под барной кофейней зацепился за кондиционер, по очереди тестируя Dusk в тестовой сети: три раза подряд неправильно ввёл пароль, и только через полчаса дошёл до выполнения 21-й транзакции. Долго пялился в логи выполнения виртуальной машины Rusk — раньше я играл с парой старых приватных цепочек: то блоки не выходили по полдня, то анонимизацию делали настолько «в рамках правил», что открыть аудитные права было просто невозможно. Сначала я уже не возлагал особых надежд на так называемые «приватные блокчейны», но, наступив на грабли сам, понял: тут действительно не просто оболочка ради хайпа.
С самого начала, когда я был за консенсус SBA, я предположил, что там «перепакованный» PoS: прочитал правила узлов, прогнал десять тысяч симуляций двойной траты — и стало понятно. SBA (Segregated Byzantine Agreement, изолированный византийский протокол) делит узлы на два слоя: один — блоковый комитет, который упаковывает транзакции, второй — выборочные валидаторы, которые случайно проводят аудит. Семя для случайной выборки генерируется с помощью VDF (верифицируемая функция задержки), так что никто не может заранее предсказать, кого проверят дальше. Браузер тестовой сети показал, что из‑за отправки невалидных блоков наказаны штрафом залогом три узла: двое — «мягко» оштрафованы — пропустили несколько блоков, их временно вывели из очереди консенсуса, а размер эффективного стейка урезали; один — «жёстко» оштрафован: его поймали на двойной подписи, залоговые токены сразу списали на 20% с последующим уничтожением. Такие механизмы наказаний резко повышают цену злонамеренных действий — цена попыток выходит очень высокой.
При тестировании транзакций я по неаккуратности добавил лишний ноль: сумма сразу вышла за диапазон Range Proof, транзакцию мгновенно вернули обратно — на чейне даже следа «мусорной» транзакции не осталось. Range Proof в протоколе Phoenix жёстко фиксирует допустимый диапазон сумм, а в паре с обязательствами Педерсена «запирает» общий объём активов каждой записи: никакого произвольного выпуска «из воздуха» не будет. Плюс одноразовые Stealth Address: для каждой транзакции адрес автоматически меняется, поэтому я, последовательно переведя 5 тестовых монет, на чейне просто не смог связать эти 5 переводов с одним и тем же аккаунтом. Рекурсивно агрегированный PLONK‑доказательством сжался до 287 байт: проверка одной транзакции занимает всего 1,8 мс — запуск прошёл очень гладко, и даже на пике тестовой сети не было проблем с перегрузкой.
Виртуальная машина Rusk написана полностью на Rust с нуля, нативно поддерживает стандарты конфиденциальных активов. Я разворачивал тестовый Token — и мне даже не пришлось писать скрытнический код на 200 строк: вместо этого газа на контрактах ушло на 63% меньше, чем при обвязке EVM уровнем ZK. И ещё — заранее предусмотрели вход для аудитных прав для стороны, отвечающей за комплаенс: приватность и соответствие не нужно выбирать взаимоисключающе, их можно совмещать. В ту ночь, когда завершили запуск тестовой сети, мне стало по-настоящему спокойно — больше, чем от любых проектов, в которые я раньше инвестировал как соучастник. #dusk $DUSK @Dusk