Я запускаю на своем ноутбуке в Исламабаде небольшой скрипт на Python, который выполняет тяжёлое хеширование для сайд-проекта. Однажды я попробовал перенести его в песочницу, думая, что он будет работать примерно так же быстро, потому что логика не менялась. Но он заметно замедлился, и до тех пор, пока я не прочитал про VM Piecrust от Dusk, я на техническом уровне не понимал, почему так происходит.
Я предполагал, что выполнение смарт-контрактов внутри виртуальной машины WASM работает примерно с нативной скоростью, поскольку WASM обычно продаётся как «почти нативная» производительность. Это не совсем так именно для криптографических операций. В исследовании, на которое ссылается whitepaper, показано, что выполнение в WASM может идти на 45–255 процентов медленнее, чем нативный код для сложных приложений — в основном из‑за виртуализированного управления памятью и дополнительной обработки инструкций внутри песочницы.
Именно поэтому Piecrust вообще не выполняет такие вещи, как верификация ZK‑доказательств, хеширование или проверки подписи, внутри WASM‑песочницы. Вместо этого он раскрывает хост‑функции. Это прямые нативные вызовы для операций вроде hash, verify_plonk, verify_groth16_bn254, verify_schnorr и verify_bls. Контракт обращается к нативному коду для дорогих криптографических вычислений, а затем возвращается обратно в WASM для всего остального. Это намеренное архитектурное разделение, а не обходной путь.
То, что whitepaper признаёт напрямую, — Dusk пока не количественно оценил фактическую экономию мощности от этой схемы. Поэтому я не могу назвать реальное значение эффективности, потому что сама Dusk не опубликовала его.
Реальный тест для DUSK — будет ли подход с хост‑функциями продолжать работать так же, когда сложность контрактов растёт на mainnet.
Кто-нибудь уже сравнивал бенчмарками вызовы хост‑функций Piecrust с чистым выполнением в WASM? @Dusk #dusk $DUSK
I keep an old cash register receipt roll from my father's shop in Sialkot, every entry stacked one after another and nothing ever gets erased once it's printed. That's the picture I had of UTXO systems, notes just pile up chronologically and stay there. Reading Phoenix broke that assumption a bit.
Phoenix does use a UTXO structure, but calls them notes, stored in a Merkle tree rather than a flat ledger. When you spend a note, you don't delete it, you generate a nullifier instead, a value derived from the note's secret key that proves it's been spent without revealing which note in the entire tree it was. The network just tracks the list of used nullifiers. Notes physically stay in the tree forever, growing larger with every transaction, spent or not.
That detail is what actually reframed how I see this. The privacy isn't coming from hiding transactions off chain, it's coming from making every note indistinguishable from every other unspent note once a nullifier appears. Nobody, including validators, can point at the tree and say which specific leaf just got spent. Ownership and balance are proven entirely through a zero knowledge proof, so the network verifies math instead of verifying visible amounts.
What the whitepaper doesn't tell me is how tree size affects proof generation time as the note count grows over years of mainnet activity. That's a real scaling question I can't answer from the source material.
The real test for DUSK is whether Phoenix stays fast to use once the note tree gets genuinely large.
Does anyone know how large the Phoenix note tree currently is on Dusk mainnet? @Dusk #dusk $DUSK
Я отправил банковский перевод поставщику в Гуджранвале вчера, и квитанция показывала всё: мой счёт, его счёт, точную сумму — ничего не было скрыто. Я предположил, что Dusk как privacy-цепочка означает, что каждая транзакция работает наоборот: всё по умолчанию скрыто и размыто, без исключений.
Однако это предположение не подтверждается, когда смотришь на Moonlight. Это полностью прозрачная, основанная на аккаунтах модель — ближе к тому, как устроен Ethereum, чем к Zcash. У каждого аккаунта есть публичный ключ, который выступает идентификатором, и сеть напрямую отслеживает для него видимый nonce и баланс. Владение доказывается простой цифровой подписью: сеть проверяет, что отправитель располагает достаточными средствами, а nonce должен быть ровно на единицу больше текущего счётчика для аккаунта, чтобы остановить replay-атаки.
Что действительно переосмыслило для меня ситуацию — понимание того, что Dusk не является privacy-цепочкой, которая «случайно» допускает прозрачность как побочный эффект. Он запускает Moonlight и Phoenix бок о бок как две одинаково поддерживаемые модели транзакций, и только Phoenix обрабатывает скрытую (обфусцированную) сторону. Это означает, что Dusk намеренно создан для мира, где финансовым институтам нужны и то, и другое: публичный аудиторский след для одних транзакций и скрытые детали для других, а не одна универсальная privacy-настройка по умолчанию. Это более зрелый дизайнерский выбор, чем даже пытаются сделать многие монеты приватности.
Чего не говорит whitepaper — это насколько реально используется сеть: сколько проходит через Moonlight, а сколько через Phoenix на практике. У меня нет достоверного разбиения транзакций, на которое можно сослаться.
Настоящая проверка для DUSK — будут ли институты реально использовать Moonlight для комплаенсной (соответствующей требованиям) части своих операций, когда появится реальный объём.
Кто-нибудь знает текущее соотношение транзакций Moonlight versus Phoenix в сети Dusk mainnet?@Dusk #dusk $DUSK
Читатель нашего электросчетчика в Равалпинди в прошлом месяце получил предупреждение за то, что во время обхода пропустил нашу улицу. Ничего страшного — просто формальная запись в его деле. Я решил, что Dusk относится к проступкам поставщика так же: одна система предупреждений, штрафы растут одинаково, независимо от того, что именно вы сделали не так.
Но это работает иначе. Dusk делит неисправности на две совершенно отдельные категории, и последствия у них разные. Незначительная неисправность, например непередача блока кандидата, когда вас выбрали генератором, приводит к приостановке и мягкому слэшингу. Существенная неисправность, например рассылка некорректного блока, двойное голосование или публикация двух разных блоков кандидата для одной и той же итерации, вместо этого запускает жесткий слэшинг.
То, что на самом деле переосмыслило это для меня, — в чем именно разница между soft slashing и hard slashing. Soft slashing просто блокирует часть вашего стейка, что снижает ваш вес в будущих раундах сортирования, но ничего не уничтожает. Hard slashing прямо сжигает часть вашего стейка безвозвратно; сжигаемая сумма увеличивается в зависимости от того, насколько серьезной была неисправность или насколько она повторялась. Один вариант — это тайм-аут. Второй — это реальный финансовый убыток без возможности вернуть назад.
Чего не уточняет whitepaper, так это точного процента или суммы DUSK, сжигаемой при каждом уровне major faults. Без этого числа я не могу сказать никому, насколько дорого в реальных терминах обходится конкретное нарушение.
Главная проверка для DUSK — сохранится ли жесткость жесткого слэшинга настолько высокой, чтобы реально сдерживать двойное голосование, когда концентрация стейка начнет расти.
Кто-нибудь знает реальные проценты сжигания, которые Dusk применяет для major faults? #dusk $DUSK @Dusk
Мой портной в Лахоре делит заработок со своими двумя учениками по фиксированному проценту с каждой работы — одна и та же доля независимо от того, сколько работы ученики реально сделали в тот день. Я предположил, что и разбиение вознаграждения в блоке Dusk по схеме 80/10/10 работает так же: фиксированные доли выдаются без изменений. Только 10 процентов Dusk и примерно базовая структура фиксированы. А 80 процентов генератора на самом деле делятся на две части: зафиксированные 70 процентов и переменные 10 процентов, которые целиком зависят от того, сколько голосов генератор включает в сертификат блока. Убери голоса — и эта переменная доля уменьшается. Включи каждый известный голос — и генератор получает все свои 80. Этот нюанс перевернул мое понимание этой системы. Это не совсем разбиение 80/10/10 — по сути, это стимулирование к соблюдению правил, оформленное под разбиение вознаграждений. Генератора финансово подталкивают собрать как можно больше подписей валидаторов до финализации блока, что напрямую повышает вероятность того, что голосующие тоже получат свою 10-процентную долю. Пул вознаграждений избирателей распределяется пропорционально тому, сколько кредитов у них на руках — это возвращает нас к взвешенной системе комитета, о которой я говорил ранее.
То, что не проясняет whitepaper, — как часто генераторы на практике отправляют блоки с неполными наборами голосов: это редкость или реальная повторяющаяся практика. Я не могу ответить на это по материалам источника.
Настоящая проверка для DUSK — сохранится ли эта структура стимулов так, что генераторы будут включать полные наборы голосов, когда сетевой трафик масштабируется. Кто-нибудь знает, публикует ли Dusk где-то реальные показатели включения голосов генераторами? #dusk $DUSK @Dusk
Таможенное оформление, которое я отслеживал в порту Карачи, три дня висело в статусе "на рассмотрении", а затем на портале сразу перескочило в "оформлено" без каких-либо промежуточных этапов. Я ожидал, что окончательность блока Dusk будет работать так же: сначала ожидается, потом окончательно — один переход. Но так не работает пошаговая окончательность.
Есть четыре различных состояния, через которые проходит блок, и переход между ними целиком зависит от того, что произошло в предыдущих итерациях. Блок начинается как подтверждённый (attested), если в этом раунде неудач не было в нулевом числе предыдущих итераций, то есть никакой другой кандидат теоретически не мог обойти его до консенсуса. Если какие-либо предыдущие итерации всё же завершились неудачей без подтверждения отказа, то он вместо этого начинается как принятый (accepted), то есть блок с более низкой итерацией всё ещё мог бы теоретически заменить его.
Тот момент, который действительно изменил моё понимание, — это то, что подтверждённость и окончательность не столько про сам блок. Подтверждённый блок становится подтверждённым (confirmed), как только у него появляется один единственный преемник, который подтверждён или окончателен. Но принятый блок должен набрать 2 раза по n подряд подтверждённых или окончательных блоков, уложенных поверх него, где n — это количество предыдущих итераций, не имевших подтверждения. Поэтому два блока примерно одного возраста могут приходить к одному и тому же уровню уверенности за совершенно разное время — в зависимости исключительно от того, насколько «чистой» была история их итераций.
Чего мне не даёт whitepaper, так это реального среднего временного окна — в секундах или в блоках — для того, чтобы что-то на живой инфраструктуре Dusk прошло путь от accepted до final. Я не могу «выдумать» это число.
Главный реальный тест для DUSK — чувствуется ли этот вариативный путь к окончательности достаточно быстрым для повседневных пользователей, которые перемещают средства.
Кто-нибудь отслеживал, сколько времени заняла реальная транзакция, чтобы получить финальный статус на Dusk? #dusk $DUSK @Dusk
$BTC сильно бычий, но текущая свеча выглядит чрезмерно вытянутой после очень резкого движения от ~$62.7K до ~$79.5K. Я бы не гнался за длинной позицией по $77.9K.
Ключевые уровни с вашего графика:
🟢 Сопротивление
$79,555: недавний максимум
$80,400: следующее видимое сопротивление
🟡 Поддержка
$76,700: зона ближайшего отката
$74,300: EMA 7 и более сильная динамическая поддержка
$72,975: важная структурная поддержка
$69,400: область EMA 25
Индикаторы
EMA 7 > EMA 25 > EMA 99 = сильная бычья структура
MACD сильно положительный и расширяется
Объём растёт вместе с движением
Цена заметно выше EMA 7, поэтому период охлаждения будет нормальным
Мой торговый план
Предпочтительный LONG: Дождаться отката к $76.7K–$74.3K и посмотреть подтверждение бычьего сценария на 4H.
Возможные цели: $79.5K → $80.4K → выше, если $80.4K будет пробит
Пробойный LONG: Если BTC сделает чистое закрытие на 4H выше $80.4K при сильном объёме, сценарий продолжения становится более привлекательным.
SHORT: Я бы не открывал шорт просто потому, что BTC выглядит чрезмерно растянутым. Шорт становится интереснее только если $74.3K будет пробит решительно и структура на 4H начнёт поворачиваться в медвежью сторону.
Итог: 🔥 Тренд = бычий. ⚠️ Вход на $77.9K = плохое соотношение риск/прибыль после этого вертикального движения. Терпение для отката или подтверждённого пробоя $80.4K безопаснее, чем догонять.
Два продавца на рынке Садар в Карачи однажды оба заявили, что продали мне один и тот же чехол для телефона первыми, а лавочник просто выбрал того, кто первым ухватился за книгу с чеками. Я решил, что Dusk обрабатывает конкурирующие блоки так же грубо: выигрывает тот, который сеть видит первым. Это наоборот по отношению к тому, как на самом деле работает fallback. Когда два кандидатных блока оба достигают консенсуса в одном и том же раунде — что может случиться из‑за задержанных или потерянных сообщений при перегрузке сети, — Dusk не отдает предпочтение тому, который пришел раньше. Он отдает предпочтение тому, который достиг консенсуса с наименьшим номером итерации. Блок с итерацией 5 может быть заменен блоком с итерацией 2, если этот блок с более низкой итерацией тоже набирает кворум. Процедура fallback откатывает локальную цепочку к моменту прямо перед блоком с более высокой итерацией, принимает блок с более низкой итерацией вместо него и отбрасывает все последующие блоки, которые были построены поверх отброшенного. То, что реально изменило мои представления, — это исключение для итерации 0. Блок, который достигает консенсуса на итерации 0, никогда не может быть заменен блоком с более низкой итерацией, потому что такой не существует. Позже его все же могут откатить, но только если сначала откатят что-то выше по цепочке — одну из его предков. Поэтому финальность в Dusk — это не столько про статус одного блока, сколько про то, что она «унаследована» от всего, что находится под ним. Чего не хватает в whitepaper — так это количественной оценки того, как часто подобные развилки происходят на практике, когда сеть действительно перегружена масштабно, а не только в теории.
Кто-нибудь видел реальное событие fallback на блоке Dusk? #dusk $DUSK @Dusk
$HEMI делаю паузу после того мощного рывка 😬 📉 HEMI торгуется на уровне $0.009006 (+37.02%) — откаты были неизбежны после уверенного пробоя и достижения локального максимума $0.009750. ⚠️ Ключевые уровни, за которыми стоит следить: * Зона поддержки: $0.00829 - $0.00850 (совпадает с 7 EMA). Удержание выше этого уровня сохраняет параболическую структуру. * Сопротивление: возврат к $0.00975 открывает дверь для теста психологического уровня $0.010. * Зона риска: потеря $0.0082 может спровоцировать более глубокую коррекцию в сторону 25 EMA примерно на $0.00715. Гистограмма MACD показывает небольшое остывание на 4H, так что этот следующий свечной бар задаст тон. Вопрос: Быстрая консолидация перед пробоем $0.010 или сначала более глубокий откат? 👀 $VELVET $ACE
На прошлой неделе в Исламабаде у нас была сессия отключения электроэнергии: сеть просто продолжала выходить из строя снова и снова, и каждый раз, когда она возвращалась, резервная система должна была перезапускаться с нуля, а не продолжать с того места, где остановилась. Я предположил, что аварийный режим Dusk работает так же: сетевые зависания, и он просто продолжает повторять один и тот же фиксированный таймаут, пока что-нибудь не сработает. Но это не так. Аварийный режим включается только после 16 подряд неудачных итераций, и когда он активируется, вся структура таймаутов удаляется. Итерации больше не истекают — они выполняются бесконечно, пока кандидатский блок не будет фактически предложен и не достигнет квorum как на этапе валидации, так и на этапе ратификации. Голоса NoCandidate и NoQuorum тоже отключаются, так что каждый шаг должен корректно завершиться, прежде чем начнётся следующий. То, что для меня всё переосмыслило, — что несколько таких открытых итераций могут выполняться одновременно. Это не ошибка — это задумано: так повышаются шансы, что хотя бы одна итерация произведёт валидный блок. Компромисс в том, что возрастает риск форков, который решается тем, что всегда выбирается тот кандидат, который достиг консенсуса на наименьшем номере итерации. Есть ещё и план «последний резерв» внутри «последнего резерва». Если даже финальная итерация зависает, валидаторы, удерживающие большинство от общего стейка, могут запросить аварийный блок — специальный пустой блок, подписанный Dusk, без каких-либо транзакций, просто чтобы раунд продолжился. Чего whitepaper не говорит — это как часто это реально срабатывало на инфраструктуре Dusk до сих пор. У меня нет данных, чтобы утверждать какую-то частоту.
Настоящая проверка для DUSK — насколько редко аварийный режим должен запускаться после того, как mainnet начнёт работать в реальном масштабе. Кто-нибудь уже видел, как на Dusk срабатывает аварийный режим? @Dusk #dusk $DUSK
Сегодня я потратил целый час, выясняя в суде Лахора у секретаря, что именно считается доказательством результата слушания — реальный итог или просто запись в файле. Эта картинка прочно засела у меня в голове, когда я добрался до системы аттестации Dusk. Я решил, что аттестация — это просто изящное слово для подтверждённого блока, один статус, и всё.
Неверно. Аттестация — это доказательство того, что кворум был достигнут в одной конкретной итерации, и она бывает в двух формах. Успешная аттестация доказывает достижение супербольшинства — две трети кредитов комитета — и голосование Valid. Неуспешная аттестация доказывает достижение большинства — половина плюс один — с голосованием Invalid, NoCandidate или NoQuorum. Обе одинаково действительные доказательства: они просто подтверждают противоположные исходы.
Вот тот момент, который заставил меня по-другому смотреть на вещи. Поскольку после того, как кворум технически достигнут, могут прийти дополнительные голоса, теоретически возможно получить несколько действительных аттестаций для одной и той же итерации. Поэтому каждый блок действительно несёт аттестацию предыдущего блока — так называемый сертификат блока, который фиксирует одну конкретную группу избирателей как официальный протокол. Именно этот сертификат определяет вознаграждения и штрафы, а не любая «плавающая» аттестация.
Чего не говорит whitepaper, так это того, как часто на практике появляются несколько конкурирующих аттестаций — чаще ли это, чем редкий пограничный случай. Там я не могу подделать уверенность.
Настоящая проверка для DUSK — сохраняется ли однозначность сертификатов блоков, когда сетевые условия становятся хаотичными в масштабе.
Кто-нибудь уже видел реальный случай конкурирующих аттестаций на блоке Dusk? @Dusk #dusk $DUSK
Мой дядя в Пешаваре заседает в небольшом комитете при мечети, где каждый участник получает ровно один голос независимо от того, сколько он пожертвовал в фонд строительства. Я предположил, что в комитетах Dusk всё устроено так же: одна провизионерская должность — один голос, простой подсчёт голов при достижении кворума.
Это предположение рухнуло, когда я прочитал, как голоса на самом деле взвешиваются внутри комитета. Каждый участник располагает определённым числом кредитов, и эти кредиты напрямую берутся из детерминированного сортиционирования, о котором я писал ранее. У комитета есть фиксированная общая сумма в 64 кредита, распределённая между выбранными провизионерами. Когда голоса подсчитываются, голос участника учитывается не один раз: он умножается на то количество кредитов, которое он держит. Участник с 3 кредитами фактически отдаёт 3 голоса в счёт кворума.
Это по-новому определяет, что вообще означает кворум. Достижение двух третей сверхбольшинства — это не про то, что две трети людей в комнате согласны, а про то, что две трети из 64 кредитов согласны. Теоретически в комитете может быть меньше отдельных провизионеров, но кворум можно набрать быстрее, если несколько из них обладают большим весом в кредитах. Голоса суммируются также с использованием BLS-подписей: с помощью битсета отмечается ровно, какие участники включены, что сохраняет эффективность проверки даже при взвешенных голосах.
Чего не проясняет белая книга — как часто распределение кредитов фактически оказывается перекошенным внутри одного конкретного комитета, а не остаётся довольно равномерным. Без реальных данных я не могу сказать, насколько часто встречаются участники с большим весом.
Настоящая проверка для DUSK — сохраняется ли справедливость взвешенного голосования по кредитам, когда меньше крупных стейкеров начинают доминировать кредитами комитетов.
Кто-нибудь знает средний разброс кредитов, который наблюдался в реальных комитетах Dusk на данный момент? @Dusk #dusk $DUSK