В 2025 году несколько крупных бирж одна за другой сняли с листинга приватные монеты. Публичность — это риск: регулирование усиливает именно такие риски, а приватные решения снова подвергаются давлению со стороны регуляторов. Три силы одновременно сжимают ситуацию, почти не оставляя пространства для манёвра.
Я взялся за эту проблему и перелистал документацию Dusk. Когда я дошёл до белой книги XSC Confidential Security Contract Standard v2.0, я обратил внимание на Zedger. Zedger — это базовая транзакционная модель XSC: она объединяет возможности UTXO и аккаунтов и специально обрабатывает токенизацию безопасных активов. В основе её структуры данных лежит разреженное дерево Меркла (sparse Merkle segmented tree). С первого раза я не понял, как связаны Balance Trie и Memory Tree — я перечитывал дважды, пока не заметил: корень после каждого обновления записывается в Memory Tree, и параллельно генерируется соответствующий nullifier. Это решение не просто противодействует двойным расходам — оно «прошивает» приватность и защиту от double-spend на уровне состояния. Nullifier гарантирует, что каждую транзакцию можно будет потратить только один раз, а разреженное дерево Меркла позволяет валидаторам проверять корректность, не видя конкретных балансов
Перевод активов реализован в двухэтапном процессе: отправитель сначала чеканит Coin, а получатель обязан в пределах заданного времени его потребить (consume). Если он этого не сделает, отправитель может вернуть (recover) средства и откатить изменения в Balance Trie. Этот дизайн — не просто про переводы; это полноценный конечный автомат: каждая транзакция проходит четыре перехода состояний — Create, Send, Approve, Consume. Для аутентификации XSC использует схему подписей Шнорра, а для генерации доказательств — PLONK zk-proof. Плюс контракты XSC поддерживают ограничения на переводы: правила KYC и AML можно прямо «зашить» в Rusk виртуальную машину. Rusk — это реализация ноды Rust в DuskDS: она запускает консенсус, поддерживает состояние сети и предоставляет API. Регуляторные узлы могут в любой момент проверять легитимность конечного автомата через zk-доказательства, но блокчейн-эксплорер не способен разобрать конкретный путь транзакции и «разглашить» денежные суммы
Честно говоря, изначально я думал, что для Dusk самое сложное — достаточно ли сильна криптография. Но после прочтения документов понял: самое «убийственное» — именно структура и архитектура. Встроить правила соответствия прямо в логику переходов состояния и сделать так, чтобы каждый переход имел собственную проверяемость — вот в чём ключевое отличие. Это куда сильнее, чем просто использовать zk-доказательства
Я взялся за эту проблему и перелистал документацию Dusk. Когда я дошёл до белой книги XSC Confidential Security Contract Standard v2.0, я обратил внимание на Zedger. Zedger — это базовая транзакционная модель XSC: она объединяет возможности UTXO и аккаунтов и специально обрабатывает токенизацию безопасных активов. В основе её структуры данных лежит разреженное дерево Меркла (sparse Merkle segmented tree). С первого раза я не понял, как связаны Balance Trie и Memory Tree — я перечитывал дважды, пока не заметил: корень после каждого обновления записывается в Memory Tree, и параллельно генерируется соответствующий nullifier. Это решение не просто противодействует двойным расходам — оно «прошивает» приватность и защиту от double-spend на уровне состояния. Nullifier гарантирует, что каждую транзакцию можно будет потратить только один раз, а разреженное дерево Меркла позволяет валидаторам проверять корректность, не видя конкретных балансов
Перевод активов реализован в двухэтапном процессе: отправитель сначала чеканит Coin, а получатель обязан в пределах заданного времени его потребить (consume). Если он этого не сделает, отправитель может вернуть (recover) средства и откатить изменения в Balance Trie. Этот дизайн — не просто про переводы; это полноценный конечный автомат: каждая транзакция проходит четыре перехода состояний — Create, Send, Approve, Consume. Для аутентификации XSC использует схему подписей Шнорра, а для генерации доказательств — PLONK zk-proof. Плюс контракты XSC поддерживают ограничения на переводы: правила KYC и AML можно прямо «зашить» в Rusk виртуальную машину. Rusk — это реализация ноды Rust в DuskDS: она запускает консенсус, поддерживает состояние сети и предоставляет API. Регуляторные узлы могут в любой момент проверять легитимность конечного автомата через zk-доказательства, но блокчейн-эксплорер не способен разобрать конкретный путь транзакции и «разглашить» денежные суммы
Честно говоря, изначально я думал, что для Dusk самое сложное — достаточно ли сильна криптография. Но после прочтения документов понял: самое «убийственное» — именно структура и архитектура. Встроить правила соответствия прямо в логику переходов состояния и сделать так, чтобы каждый переход имел собственную проверяемость — вот в чём ключевое отличие. Это куда сильнее, чем просто использовать zk-доказательства

