В выходные под барной кофейней зацепился за кондиционер, по очереди тестируя 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