◎ Главная 📰 Новости 📖 История 💰 Цена 🔧 Технологии 👥 Сообщество

◎ Как работает ZCash

zk-SNARKs · Shielded vs Transparent · Orchard · Для людей которые хотят понять

🔐 zk-SNARKs — магия приватности

zk-SNARK расшифровывается как "Zero-Knowledge Succinct Non-Interactive Argument of Knowledge". Звучит страшно. На деле — это кидок математики которая отвечает на вопрос:

"Как я могу доказать что знаю тайну — не раскрывая саму тайну?"

Аналогия: у тебя есть сейф с деньгами. Ты хочешь доказать банку что в сейфе действительно деньги, но не хочешь открывать сейф и показывать сколько там. Вместо этого ты даёшь банку доказательство которое математически верно проверяется — и всё.

В ZCash это работает так: когда ты отправляешь приватную транзакцию, ты создаёшь зашифрованное доказательство что ты владелец монет, что у тебя достаточно денег, и что тебе разрешено их потратить. Никаких данных о сумме, отправителе или получателе — только доказательство что транзакция честная.

🏠 Transparent vs Shielded адреса

📤 Transparent (t-адреса)
  • Работает как Bitcoin
  • Все транзакции видны публично
  • t-адрес: t1...
  • Быстро, лёгко для кошельков
  • Для людей без проблем с приватностью
🔒 Shielded (z-адреса)
  • Полная приватность
  • Сумма и адреса зашифрованы
  • z-адрес: z1... (Sapling)
  • Требует немного ресурсов для шифрования
  • Для людей которые ценят приватность
Важно: ты можешь иметь оба адреса в одном кошельке и переводить между ними. Это даёт гибкость — можешь быть публичным когда нужно и приватным когда нужно.

🔄 Sapling (2018) → Orchard (2022)

Sapling была первая версия которая сделала shielded транзакции практичными — быстрыми и лёгкими. До этого приватная транзакция требовала 40 секунд и 3GB памяти. Sapling сократил это до секунды.

Orchard — следующий уровень. Она использует Halo2 — новую систему доказательства которая не требует trusted setup.

Что такое trusted setup? При создании zk-SNARK параметров нужно исходить из предположения что люди которые их создавали — не скрыли тайное число (которое можно использовать для подделки доказательств). Это называется "trust" — вера. Halo2 избегает этой проблемы полностью.

⚙️ Как работает shielded транзакция

Упрощённо: 1. Ты выбираешь сумму и шифруешь её 2. Ты создаёшь доказательство что: ✓ Ты владелец монет ✓ У тебя достаточно денег ✓ Ты не потратил эти монеты раньше ✓ Сумма правильная (никакие не созданы) 3. Ты отправляешь шифр + доказательство в блокчейн 4. Сеть проверяет доказательство за ~50ms 5. Получатель видит деньги в своём z-адресе 6. Мир видит что была транзакция — но деталей не видит
Вся магия в том что проверка занимает 50 миллисекунд — очень быстро. И не требует доступа к секретным данным. Это как показать билет на концерт охраннику — он видит что билет валидный но не знает ни твоё имя ни сумму которую ты за него заплатил.

🌳 Merkle Tree и нулевое знание

ZCash использует Merkle tree хранилища всех когда-либо созданных монет. Когда ты тратишь монету — ты доказываешь что эта монета есть в дереве без раскрытия какая именно.

Это похоже на игру с картами в рукаве: ты можешь доказать что у тебя есть туз не показывая какой именно туз.

Все z-адреса зашифрованы в дереве. Сеть видит что дерево выросло (появилась новая монета) но не видит где она и чья.

🔬 Почему это работает без trusted setup (Halo2)

Классические zk-SNARKs требуют ceremony — ритуал где люди собираются и вместе генерируют параметры. Один человек в этой группе может потайно узнать magic number который позволит подделать доказательство. Это очень маловероятно (нужна согласованность всех участников) но теоретически возможно.

Halo2 переключилась на IPA (Inner Product Argument) — способ доказательства который не требует такой церемонии. Доказательство безопасно по математике, а не по доверию к людям.

Это более честный способ. Поэтому Orchard важна не только для скорости но и для философии — ZCash становится более независимой от человеческих факторов.

📊 Скорость и эффективность

Версия Время создания Память Размер доказательства
Zerocash (2014) 40+ сек 3 GB ~300 bytes
Sapling (2018) ~1 сек 40 MB ~200 bytes
Orchard (2022) ~500 ms 10 MB ~200 bytes

Эволюция: каждая версия быстрее и эффективнее.