Transfer Contract就是一个协调入口。它接收不同格式的payload——有Moonlight格式的,有Phoenix格式的。合约不关心你从哪来,只关心payload里带了什么字段,然后把它路由到对应的验证逻辑里。Moonlight的验证直接读公开账户状态,Phoenix的验证跑ZK proof。两边验证通过之后,再把结果写入同一套全局状态树。我琢磨了好一阵才想明白这一步的关键:如果你把两套账本的状态树合成一棵,那么从公开账户转一笔钱到隐私note,本质上只是一次payload的转换,不需要跨链桥,不需要复杂的同步协议。状态更新是原子性的,要么全部成功,要么全部回滚。
#dusk $DUSK @Dusk Вчера увидел сообщение: на платформе NPEX появился вариант кастодиального решения на базе Dusk. Я пролистал дальше — и чем больше читал, тем интереснее становилось. Это не похоже ни на одно кастодиальное решение на рынке: активы находятся в сети, приватные ключи — у тебя, а регулятор при этом тоже может всё проверить.
Я раньше с таким не сталкивался.
Те, кто разбирался в кастодиальном бизнесе, знают: в этой сфере всегда было только два пути. Либо ты отдаёшь приватный ключ третьей стороне и выполняешь требования регулятора, но по сути активы уже не у тебя. Либо ты сам управляешь ключом — тогда с точки зрения безопасности всё хорошо, но когда регулятор спрашивает про соответствие требованиям, ты не можешь доказать свою комплаенс-совместимость. Всегда приходится выбрать одно из двух, третьего нет.
Dusk и Cordial предложили схему zero-trust кастодиального хранения, которая фактически открывает третью дорогу. Это не «классическое» хранение у третьей стороны — это набор технологий self-custody кошелька под названием Cordial Treasury: организация разворачивает систему сама и сама же ею управляет, а приватный ключ всё время находится в собственном аппаратном кошельке организации. Когда на такие решения заходят лицензированные биржи вроде NPEX, регулятор через zero-knowledge proofs может проверить, соответствует ли позиция организации требованиям по комплаенсу. Но после проверки он просто уходит: до приватного ключа не добраться.
Тебе не нужно отдавать ключи и не нужно показывать активы всем подряд. Ты можешь подтвердить, что соответствуешь правилам, но не обязан выворачивать наизнанку всё своё состояние. «Self-custody» и «комплаенс» — два узла, завязанные за эти десять лет, которые теперь впервые удалось развязать.
Раньше я думал, что zero-knowledge proofs слишком далеки от реального применения — что это что-то из академической среды. Но Dusk на этот раз встроил это в настоящую кастодиальную ситуацию — причём в платформу под надзором регуляторов. Это не proof of concept и не тестнет, это то, что реально используется.
Эта история поменяла моё отношение к Dusk. Раньше, когда я смотрел на его консенсус, архитектуру и экономическую модель, казалось, что речь в основном о технологических вещах. Но именно это кастодиальное решение показало, что оно решает конкретную и при этом долгосрочную проблему: как в блокчейне заново выстроить доверие?
Ответ Dusk звучит так: доверие создаётся не отказом от контроля, а проверяемостью. Тебе не обязательно отдавать ключи, чтобы в тебя поверили.
#termmax @TermMax На прошлой неделе, когда я случайно наткнулся на TermMax, листая рейтинг доходности ончейн-проектов, его TVL только-только подбирался к 71 миллиону. Я минут десять рассматривал его кривую процентных ставок по кредитам и подумал, что логика продукта выглядит довольно стройно, но ведь это всё-таки новый проект — поэтому решил: «Понаблюдаю ещё две недели, подожду, пока данные станут стабильнее, и тогда зайду». Я на всякий случай сохранил адрес контракта в свой наблюдательный кошелёк и тут же занялся другими делами.
На прошлой неделе, когда я смотрел ончейн-дашборд и увидел, что его TVL подскочил до 90 миллионов, я пять минут колебался перед пустым адресом в наблюдательном кошельке, уже даже палец положил на кнопку подтверждения перевода, но в итоге всё же отступил. Мне казалось: «Раз так быстро выросло, значит, обязательно будет пространство для отката — лучше подождать ещё, тогда получится зайти в более комфортную позицию». Я ещё и успокаивал себя тем, что рынок я не пропустил, и даже если зайду на пару дней позже, ничего не потеряю.
Вчера вечером, когда я увидел в официальном объявлении, что его TVL официально перевалил за 100 миллионов, я сел и заново просмотрел все ончейн-данные проекта. И только на странице с архитектурой продукта я действительно всё понял: FT покупается со скидкой и погашается по номиналу при наступлении срока, а GT упаковывает залог и долг в отдельную позицию. Раньше в протоколах с фиксированной ставкой я больше всего боялся простаивания капитала: пока ордер ждёт сопоставления, деньги просто застревают и не двигаются. TermMax же напрямую подключён к Morpho: пока ордер ждёт, средства автоматически работают во плавающей доходности, а после успешного матчинга бесшовно переходят в фиксированную ставку. Эта логика оказалась гораздо зрелее, чем я ожидал, но чем она зрелее, тем сильнее моё сожаление — почему я тогда не вошёл? За один год после запуска проект успел вырасти от основной сети до версии V2, уже развернут на 10 EVM-цепочках, а число пользователей напрямую превысило 1,1 миллиона. Это совершенно не похоже на раздутые цифры, нарисованные краткосрочными майнинговыми стимулами — это реальный проект, которым огромное число пользователей действительно пользуется на высоких оборотах.
Когда я раньше ловил просадку на альткоинах и терял несколько десятков тысяч, мне не было так тяжело. Там ты сам наступил на грабли, признал ошибку, срезал убыток — и можно начинать заново. Но это сожаление совсем другого рода: ты ведь видел проект с самого раннего этапа, дважды стоял у дверей вагона, но так и не сделал шаг внутрь, а теперь своими глазами наблюдаешь, как он из «нового проекта с потенциалом» вырос в лидера ниши. Каждый шаг роста был у тебя перед глазами, и всё это ты пропустил только из-за собственной нерешительности.
Сейчас я снова смотрю на пустой адрес в наблюдательном кошельке и зависаю. Есть тут старые игроки, скажите честно: сейчас ещё не поздно заходить в $TMX? @TermMax
#dusk $DUSK За эти годы я видел, как «срывались» приватные сети (privacy chain): постепенно у меня выработалась привычка — меня уже не так волнует, взломали ли криптографический алгоритм. Вместо этого я в первую очередь смотрю, были ли реально связаны обязательствами те, кто оставил «легальные» бэкдоры. Видел слишком много проектов по приватности, которые взрывались. Корень проблемы не в том, что zk-доказательство (zero-knowledge) когда-то взломали, а в том, что дизайн прав с самого начала исходил из предположения: «проектная команда не будет трогать пользовательские данные». Если это допущение хоть раз не подтверждается, активы пользователей и данные транзакций рано или поздно окажутся обнажены. Процесс выполнения ZkKYC в RC-версии мейннета @dusk_foundation — вот то, что заставило меня остановиться. Это не «добавить» в приватную сеть еще один блок комплаенса, а превратить вопрос «кто может видеть мои данные» прямо в жесткое правило, которое проверяется zk-схемой. Прежде чем пользователь включит право на аудит, схема сначала проходит проверку цепочкой (через нативный модуль Citadel): удостоверения хранятся у пользователя локально, а состояние транзакции шифруется с помощью обязательств (Pedersen). Логика валидации полностью публична на всем чейне. Даже самой проектной команде нельзя обойти схему и напрямую запросить пользовательские данные. Доказательство с нулевым разглашением гарантирует, что сам процесс проверки прав не был подменен; если аудитный запрос выходит за рамки авторизации, заданной пользователем, он вообще не сможет получить доступ к открытому (plaintext) данным. #dusk — это рассуждение очень похоже на то, как в банке запрашивают справку о наличии активов: кассир не может просто открыть и просмотреть всю вашу банковскую историю, а может выдать подтверждение только на сумму и по назначению, которые вы указали — больше никакой дополнительной информации он получить не может. На ончейне всегда не хватало «внешнего» барьера для приватности и подтверждения прав. Dusk хочет добавить не настолько сильную анонимность, насколько обеспечить единообразную, контролируемую пользователем границу для приватного использования. И я не буду возносить это на пьедестал. Если пользователь потеряет локальные KYC-учетные данные, он не сможет снова выпустить комплаенс-версию доказательства для аудита; если в zk-схеме окажется логический баг — проверка прав все равно даст уязвимость. Настоящая проверка — не насколько красиво звучит история, а выдержит ли эта приватная связка после того, как на нее реально начнут загружать RWA-активы. В будущем комплаенс-активов в ончейне будет становиться все больше. Я больше всего беспокоюсь не о том, сможет ли это обеспечить анонимные транзакции, а о том, кто сможет доказать, что ваша приватность — это только то, чем вы сами управляете @Dusk
#dusk $DUSK Прошлой ночью в два, лёжа втиснутый у стола в арендованной комнате, я листал белую книгу @Dusk для 6/ для белой книги. У угла стола полчаса стояла ледяная кола — и всё закончилось. Капли воды на стенке стакана стекали на коврик для мыши, расползаясь маленьким пятном тёмного оттенка.
Dusk делает ставку на приватность Layer1 для финансовых сценариев. Их собственный механизм консенсуса Succinct Attestation — проще говоря, это специально заточенное средство против монополии крупных участников PoS-цепей на продление блоков, против того, что случайность легко подмять, против медленного подтверждения блоков — старые ловушки, через которые я уже бесчисленное количество раз проходил: обещают детерминированный финал за 3 секунды, выдерживают 51% атаку и не дадут нескольким китам с крупными балансами решать, кому и как выдавать право на блок.
Слушается действительно безупречно.
Децентрализация, безопасность, высокая производительность — три болевые точки, из‑за которых индустрия спорила сколько лет, — а они говорят, что закрывают все разом? Но когда доходишь до раздела про генерацию семени для случайной выборки, написано особенно туманно: формулировка вроде «на основе агрегирования хэшей предыдущих блоков». Я отодвинул мышь в сторону, уставился в экран на две секунды и даже не сдвинулся. Если случайность в процедуре лотерейного выбора валидаторов заранее можно «прощупать» небольшой группой крупных узлов, а тем более сговориться и управлять процессом, то вся эта «справедливая случайная выборка валидаторов» — откровенный спектакль. Самое важное для приватной сети — децентрализованность её ключевых узлов — сразу режется пополам. Вопрос о том, можно ли подделать/исказить «случайное семя» через сговор, любому человеку, который занимался распределённым консенсусом, понятен куда лучше, чем идея просто ускорить генерацию блоков. Если в дизайне источника случайности есть лазейки, то высокая производительность и устойчивость к атакам превращаются в взаимоисключающие рекламные лозунги — и в реальность так и не приземляются. @Dusk
Здесь есть один ключевой конфликт: протокол позиционируется как рассчитанный на расчёты на уровне институциональных активов. Но если верифицируемая логика случайной выборки валидаторов не объяснена полностью, то доверие к консенсусу SA по факту всё равно придётся подтверждать данными, полученными от долгосрочной работы в основной сети, а не опираться на утверждения в тексте whitepaper.
Долгосрочная ценность $DUSK в некоторой степени напрямую «привязана» к тому, сможет ли этот механизм консенсуса реально отработать.
Когда вы исследуете проект, чего больше всего боитесь в белой книге — какая часть написана туманно? Обсудим в комментариях.
#dusk $DUSK Недавно в тестнете Dusk за мотивацией для пополнения меня выбросило на проверку источника средств — я тогда уже был полностью готов: даже подготовил транзакционные записи адреса за полгода. Когда я раньше играл в Zcash и делал похожие доказательства соответствия, у меня только на скриншоты ушло 20 минут, Gas сжёг почти 0.1 монеты, и при этом я раскрыл проверяющей стороне весь баланс моего адреса. Каждый раз, когда встречаю требования такого рода, у меня голова кругом.
В итоге я в кошельке Dusk нажал три раза — и за две минуты проверка прошла. Причём верификатор вообще не увидел, сколько тестовых монет у меня осталось на адресе.
Моё прежнее представление о Dusk ограничивалось идеей: «это приватный блокчейн». Я даже по умолчанию считал, что он работает как другие анонимные сети: ради приватности отказываются от проверяемости. Я почти два часа перелистывал исходники Rust Phoenix, пока не врубился — там реально заложен дизайн, который бьёт прямо в больное место.
Он вообще не делает чёрно-белый переключатель «всё открыто / всё анонимно», а в слое доказательств на zk-SNARKs использует схему проверяемых криптографических атрибутов (VEP). С помощью алгоритма Plookup он ужимает размер одного доказательства до 1 КБ. Для сравнения: другие ZK-приватные цепочки для таких доказательств как минимум генерируют 10 КБ+, а проверка занимает десятки секунд. В Dusk ончейн-проверка занимает только 2 миллисекунды: чтобы доказать, что средства пришли с легитимной биржи, нужно сгенерировать прицеленное доказательство только для этой конкретной операции пополнения — не надо раскрывать полный адрес, общий баланс, другие транзакции и даже вообще сообщать верификатору, какой у тебя адрес для получения. На генерацию доказательства у меня ушло 0.0003 DUSK Gas — дешевле, чем обычный перевод. Верификатор сразу в сети вызывает контракт и проверяет подлинность; даже шаги с загрузкой скриншота не понадобились. Если посмотреть в блок-эксплорере, в этой транзакции есть только хэш доказательства — половины открытых данных в явном виде там нет.
Раньше все приватные сети застревали в тупике: «хочешь приватность — соответствия не будет; хочешь соответствие — потеряешь приватность». Конструкция Dusk возвращает контроль приватности пользователю: когда нужно скрыть транзакции — в ончейне не найти никакого явного текста; когда нужно сделать доказательство соответствия — показывается минимум необходимых данных. Никакой лишней приватности не нужно утекать.
У вас бывали ситуации, когда для ончейн-аутентификации приходилось неловко раскрывать весь баланс?@Dusk
第一天就卡壳。./dusk-node跑起来,ZK证明生成到87%必崩,终端吐一句"witness construction failed",内存从4G顶到12G,风扇跟楼下夜宵摊抽油烟机似的。重装五次程序、重下三次快照,都没用。最后翻GitHub示例,一行注释小得差点漏过去:"key expects BigInt, string will break witness construction."改完传参方式,重启,8秒证明生成。
#baby $BABY В позапрошлую ночь я сделал одну вещь: опробовал staking-скрипт Babylon на UTXO, которые сам задепонировал в своей тестовой сети.
Хочу понять, как именно работают те три способа выхода.
Сначала попробовал самый простой: по истечении срока депозита просто использую только собственную подпись, чтобы разблокировать тот UTXO, и транслирую транзакцию в тестовую сеть Bitcoin. Узлы приняли, транзакцию включили. Никакого одобрения Finality Provider не нужно, Babylon-цепь в онлайне не нужна — хватает моей собственной подписи. Тогда я подумал: это и есть самая базовая уверенность в безопасности — пока работает сеть Bitcoin, стейкер может забрать свои монеты обратно.
Затем попробовал второй вариант: смоделировал ситуацию, когда не хочется ждать весь срок депозита и нужно выйти заранее. На этот раз требуется моя собственная подпись плюс подпись ковенантного (Covenant) комитета. Со стороны подписи с моей стороны проблем не было, а для комитета я смоделировал процесс подписи. После трансляции узлы верифицировали успешно, UTXO разблокировался. Я понял: комитет отвечает лишь за подтверждение того, что запрос на досрочный выход соответствует правилам, но не перехватывает активы и не получает контроль.
Третий вариант, когда тестировал, у меня сначала не сложился. Путь slashing/штрафа требует три ключа: моя подпись, EOTS-подпись Finality Provider и подпись Covenant-комитета. Тогда у меня возник вопрос: почему при пенальти всё равно нужна моя собственная подпись? Разве это не значит, что меня заставляют участвовать в наказании самого себя?
Позже, изучив аудиторский отчет, я понял причину. Подпись Covenant-комитета — это адаптерная подпись: она шифруется так, что указывает на Finality Provider. Я заранее подписал путь slashing, но в обычном режиме эта подпись «заперта». Она будет расшифрована и начнёт действовать только тогда, когда FP подпишет два разных блока на одной высоте одним и тем же nonce, в результате чего будет раскрыт приватный ключ.
Это означает, что мне не нужно никому доверять и надеяться, что никто не начнёт творить зло. Злодейство FP → математическое раскрытие приватного ключа → адаптерная подпись автоматически расшифровывается → путь slashing разблокируется. Мне не нужно, чтобы администратор решал «следует ли наказывать», и не нужно чьё-либо одобрение.
Я попробовал все три способа выхода. По какому сценарию всё произойдёт — не решает никто: всё зависит от того, выполняются ли условия, «зашитые» в самом скрипте.