crypto-folio

Понятно, практично, по делу

Вопросы и ответы·26 сентября 2026 г.·9 мин

Доказательства с нулевым разглашением: потенциал и ограничения

Что, если бы блокчейн мог проверить вашу транзакцию — и подтвердить, что всё корректно — но при этом не раскрывать ни адрес получателя, ни сумму? Звучит как фантастика, но именно так работают протоколы доказательств с нулевым разглашением в Web3.

Доказательства с нулевым разглашением: потенциал и ограничения

И нет, это не маркетинговый трюк и не магия — это реальная криптографическая технология, которая уже сегодня масштабирует Ethereum и защищает приватность пользователей. Давайте разберёмся вместе, как она устроена, чего от неё ждать и какие у неё есть честные ограничения, о которых редко говорят в восторженных обзорах.

От теоретической идеи 1980-х к масштабированию Ethereum

Прежде чем мы нырнём в технические детали, стоит оглянуться назад, потому что история здесь важна. Идея протоколов доказательств с нулевым разглашением (Zero-Knowledge Proofs, или сокращённо ZKP) родилась не вчера и даже не десять лет назад — её теоретические основы были заложены ещё в 1980-х годах усилиями криптографов Шафи Гольдвассера, Сильвио Микали и Чарльза Ракоффа. Именно они математически формализовали концепцию: одна сторона (доказывающий, или prover) может убедить другую сторону (проверяющего, или verifier) в истинности утверждения, не раскрывая при этом никакой дополнительной информации о самом утверждении.

Звучит контринтуитивно, правда? Как можно доказать, что ты что-то знаешь, не показывая, что именно ты знаешь? Когда я впервые столкнулся с этой концепцией, у меня в голове тоже не складывалось. Но возьмём бытовую аналогию: вы хотите доказать другу, что знаете пароль от сейфа, но не произносить сам пароль вслух. Друг кладёт в коробку записку, закрывает на замок и отдаёт вам ключ. Если вы открыли коробку и достали нужную записку — значит, вы действительно знали пароль, но сам пароль так и остался у вас в голове. Это упрощение, но суть ZKP оно передаёт точно.

Долгое время, с 1980-х до 2012 года, ZKP оставались в основном академической диковинкой. Переломный момент наступил в 2012 году, когда команда исследователей — Нир Битэнски, Рани Канетти, Алессандро Кьеза и Эран Тромер — опубликовала практически применимую схему zk-SNARK (Succinct Non-Interactive Argument of Knowledge). Это была первая конструкция, где доказательства получались по-настоящему компактными и пригодными для использования в реальных системах, а не только в научных работах.

ZKP — это не «показать, что у тебя есть данные», а «доказать корректность вычислений над ними, не раскрывая сами данные».

Следующая важная веха — 2018 год, когда Эли Бен-Сассон и его коллеги представили zk-STARK (Scalable Transparent Argument of Knowledge). Главное отличие STARK от SNARK — отсутствие так называемой доверенной настройки (trusted setup), о которой мы поговорим подробнее чуть ниже. С этого момента ZKP вышли за пределы академии и начали решать конкретные инженерные задачи Web3: масштабирование сетей, снижение комиссий и обеспечение приватности транзакций. Сегодня, в середине 2020-х, технология переживает настоящий бум: решения второго уровня (Layer 2) на базе ZK, такие как zkSync, Starknet и Polygon zkEVM, обрабатывают значительную долю транзакций в экосистеме Ethereum.

Механика zk-SNARKs: компактность в обмен на доверие

Начнём с zk-SNARK, потому что именно эти протоколы появились первыми и получили самое широкое распространение. Аббревиатура SNARK расшифровывается как Succinct Non-Interactive Argument of Knowledge — «краткий неинтерактивный аргумент знания». Каждое слово здесь важно:

  • Succinct (краткий) — доказательство действительно очень маленькое по размеру.
  • Non-Interactive (неинтерактивный) — для проверки не нужен диалог между prover и verifier, достаточно одного сообщения.
  • Argument of Knowledge (аргумент знания) — доказательство математически связывает проверяющего с тем фактом, что prover действительно владеет секретом.

Главное преимущество классических SNARK — компактность. В типичных реализациях, таких как Groth16, размер одного доказательства составляет от 288 до 512 байт. Это сопоставимо с короткой SMS — и это невероятно мало для конструкции, которая математически гарантирует корректность сложных вычислений. Именно благодаря такой компактности SNARK хорошо подходят для блокчейна: проверка доказательства в смарт-контракте на L1 обходится относительно дёшево по газу, потому что чем меньше данных нужно обработать, тем ниже комиссия.

Но у этой компактности есть своя цена, и она связана с понятием, которое криптографы называют Trusted Setup, или «доверенная настройка». Чтобы схема SNARK начала работать, нужно один раз сгенерировать специальный публичный параметр (CRS — Common Reference String). Эта генерация порождает так называемые «токсичные отходы» — секретные числа, которые используются при создании параметра и которые затем должны быть уничтожены. Если кто-то получит к ним доступ, он сможет подделывать доказательства, и вся система приватности и корректности рухнет.

Размер доказательства zk-SNARK — от 288 до 512 байт. Это меньше, чем средняя SMS, и это серьёзное инженерное достижение.

Именно поэтому разработчики проводят так называемые «церемонии доверенной настройки» (trusted setup ceremonies): несколько независимых участников по очереди вносят свой вклад в генерацию параметра, и для подделки доказательства злоумышленнику пришлось бы скомпрометировать всех участников одновременно. Самые известные церемонии — это Powers of Tau для Ethereum и многоэтапные процедуры в проекте Zcash. Это работает, но требует высокого уровня доверия к организаторам и инфраструктуре, что не всегда удобно. Кроме того, SNARK в классической формулировке опираются на эллиптические кривые — криптографический примитив, который потенциально уязвим перед достаточно мощными квантовыми компьютерами. Это не завтрашняя угроза, но забывать о ней не стоит.

Архитектура zk-STARKs: прозрачность и квантовая устойчивость

Где SNARK требует доверенной настройки, там STARK предлагает радикально другой подход — прозрачность (transparency). Аббревиатура STARK расшифровывается как Scalable Transparent Argument of Knowledge, и слово Transparent здесь ключевое: для запуска системы не нужно никакой церемонии, никаких «токсичных отходов», никакого риска компрометации секретов. Все параметры генерируются из публичной случайности, и любой может проверить, что они корректны.

Второе важное преимущество STARK — устойчивость к квантовым компьютерам (post-quantum security). Если SNARK используют эллиптические кривые и парные отображения, которые гипотетически могут быть взломаны достаточно мощным квантовым компьютером с алгоритмом Шора, то STARK строятся на основе криптографических хеш-функций — примитивов, которые считаются значительно более устойчивыми к квантовым атакам. Хеш-функции подвержены только ослаблению примерно в два раза по битовой стойкости при использовании алгоритма Гровера, что гораздо менее критично, чем полный взлом эллиптических кривых.

Звучит так, будто STARK побеждают по всем фронтам? Не торопитесь. У STARK есть своя, очень ощутимая слабость — размер доказательства. Если SNARK умещаются в 288–512 байт, то STARK требуют от 45 до 68 килобайт — это в десятки и сотни раз больше. По некоторым академическим замерам разница в компактности может достигать 123-кратной величины. Для блокчейна, где каждый байт ончейн-данных стоит газа, это серьёзный минус: проверка STARK-доказательства на L1 обходится дороже, а место в блоке расходуется менее эффективно.

Параметрzk-SNARKzk-STARK
Год практической реализации20122018
Размер доказательства288–512 байт45–68 КБ
Доверенная настройкаТребуетсяНе требуется
Устойчивость к квантовым компьютерамОграниченнаяПостквантовая
Основа криптографииЭллиптические кривыеХеш-функции
Стоимость проверки на L1НижеВыше из-за объёма
Генерация (prover)БыстрееВ десятки раз медленнее по ряду тестов

Так что выбор между SNARK и STARK — это не вопрос «что лучше», а вопрос инженерных компромиссов: компактность и дешевизна проверки против прозрачности и квантовой устойчивости. Разные проекты делают этот выбор по-разному, и оба подхода имеют право на жизнь.

Почему генерация доказательств требует специализированных ресурсов

Один из аспектов, о которых редко говорят в популярных обзорах, — это колоссальная вычислительная стоимость генерации доказательств. Если проверка (verification) на L1 обходится относительно дёшево, то вот фаза создания доказательства (proving) — это настоящий монстр по ресурсам.

Не нужно быть криптографом, чтобы понять интуицию: чтобы доказать, что сложное вычисление выполнено корректно, нужно это вычисление фактически «перевыполнить» в специальной арифметике, превратив его в систему полиномиальных уравнений. Это требует огромного количества операций — в десятки и сотни раз больше, чем простое выполнение исходной программы. В отдельных бенчмарках на архитектуре ARM разница в скорости генерации доказательства между SNARK и STARK достигала 68-кратной величины, причём SNARK в этой конкретной конфигурации оказывался быстрее. Это значит, что для генерации доказательств среднестатистического блока транзакций нужны серьёзные мощности.

Именно поэтому в реальных ZK-Rollup-системах генерация доказательств выносится за пределы блокчейна (off-chain) на специализированное оборудование — мощные серверы с GPU или FPGA, а иногда и с кастомными ускорителями. Кто-то один (или небольшая группа) выполняет работу по созданию доказательства, а затем отправляет результат в основную сеть для проверки. Это ломает привычную картину «децентрализованной валидации», но без этого ZK-технологии были бы просто непрактичны при сегодняшнем уровне вычислительной техники.

Важный момент, о котором стоит упомянуть: исследования в области оптимизации prover-стороны активно продолжаются. Разрабатываются параллельные схемы, рекурсивные доказательства (когда одно доказательство подтверждает корректность другого), а также специализированные ускорители. Но пока что нужно честно признать: ZK-proofs — это не та технология, которую можно запустить на ноутбуке в одиночку и получить мгновенный результат. Если вы встретите в интернете утверждения вроде «ZK-proofs решают всё мгновенно и без затрат» — отнеситесь к ним с разумным скепсисом. Это серьёзный инженерный инструмент с реальной ценой.

ZK-Rollups: реальный баланс между децентрализацией и эффективностью

Теперь давайте поговорим о самом важном практическом применении ZKP в Web3 — это ZK-Rollups, технология масштабирования Ethereum. Идея простая и красивая: вместо того чтобы отправлять каждую транзакцию напрямую в L1 (что дорого и медленно), мы собираем сотни или тысячи транзакций в один пакет, выполняем их вне основной сети (off-chain), а затем отправляем в L1 одно компактное ZK-доказательство валидности. L1-проверяющий контракт (verifier) проверяет это доказательство и фиксирует новое состояние.

Самые известные проекты в этом направлении — zkSync, Starknet и Polygon zkEVM. Каждый из них использует разные комбинации SNARK и STARK и разные архитектуры виртуальных машин, но принцип общий: пакетная обработка транзакций off-chain плюс ончейн-доказательство их корректности. Результат — заметное снижение комиссий для пользователей и значительное повышение пропускной способности (TPS, transactions per second) по сравнению с базовым L1.

ZK-Rollup — это не «бесплатные транзакции», а инженерный компромисс: меньше комиссий и выше скорость, но за счёт новых ролей в инфраструктуре.

Но вот здесь начинается самое интересное — и, честно говоря, самое недооценённое в популярных обзорах. Чтобы ZK-Rollup работал, нужны так называемые секвенсоры (sequencers) — операторы, которые собирают транзакции, упорядочивают их и подают в систему. И вот ключевой нюанс: на сегодняшний день в большинстве ZK-Rollup-проектов роль секвенсора централизована — её выполняет команда проекта или ограниченный круг операторов. Это значит, что секвенсор потенциально может цензурировать транзакции, задерживать их или извлекать MEV (Miner/Maximal Extractable Value). Конечно, активы пользователей защищены криптографией — секвенсор не может украсть средства напрямую — но он может отказываться включать вашу транзакцию в пакет, и это уже серьёзный рычаг влияния.

Разработчики ZK-Rollups прекрасно понимают эту проблему и работают над её решением: распределённые секвенсоры, общие (shared) sequencer-сети, механизмы принудительного включения (forced inclusion) транзакций напрямую через L1. Но это всё ещё в активной фазе разработки, а не в массовом продакшене. Поэтому, когда вы читаете рекламные материалы о ZK-Rollup-проектах, относитесь к ним трезво: за снижением комиссий стоят реальные инженерные и экономические компромиссы, которые не исчезают сами собой.

Технология доказательств с нулевым разглашением — это один из самых мощных криптографических инструментов, появившихся в Web3 за последние годы. Она реально масштабирует Ethereum через ZK-Rollups, реально защищает приватность пользователей и реально имеет потенциал для постквантовой эпохи. Но у неё есть и честные ограничения: высокая вычислительная стоимость генерации доказательств, необходимость доверенной настройки у SNARK, больший размер доказательств у STARK и незакрытые вопросы с децентрализацией секвенсоров. Не нужно делать вид, что этих ограничений нет — именно понимание компромиссов делает вас грамотным пользователем Web3, а не просто зрителем маркетинговых презентаций.

Если вы только начинаете знакомиться с Web3, не пытайтесь освоить всё и сразу. Начните с простого понимания: ZK-proofs позволяют доказать корректность вычислений, не раскрывая сами данные. Этого уже достаточно, чтобы понимать, о чём говорят разработчики L2-сетей и почему вокруг этой технологии столько внимания. А дальше — задавайте вопросы, читайте документацию конкретных проектов и не стесняйтесь возвращаться к теме: область развивается стремительно, и то, что сегодня казалось сложным, через полгода может стать привычным инструментом.

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

Частые вопросы

В чем главное отличие zk-SNARK от zk-STARK?
Ключевые различия заключаются в необходимости доверенной настройки у SNARK, размере доказательств и криптографической основе: SNARK используют эллиптические кривые, а STARK — хеш-функции, что делает последние устойчивыми к квантовым компьютерам.
Почему ZK-доказательства сложно генерировать?
Процесс требует выполнения вычислений в специальной арифметике, что превращает исходную программу в систему полиномиальных уравнений и требует в десятки раз больше операций, чем обычное выполнение кода.
Что такое доверенная настройка в ZK-протоколах?
Это процедура генерации публичных параметров, при которой создаются секретные числа, называемые «токсичными отходами». Если эти данные попадут к злоумышленнику, он сможет подделывать доказательства, поэтому для безопасности проводятся специальные церемонии с участием нескольких независимых сторон.
Могут ли секвенсоры в ZK-Rollups украсть средства пользователей?
Нет, активы пользователей защищены криптографией. Однако централизованный секвенсор может цензурировать транзакции, задерживать их или извлекать выгоду из порядка их включения в блок.
Почему размер доказательства важен для блокчейна?
Размер доказательства напрямую влияет на стоимость газа при проверке в смарт-контракте на первом уровне (L1): чем меньше данных нужно обработать, тем ниже комиссия для пользователя.
Текст: Олег Сафонов, Проводник в мир Web3 для новичков