Skip to main content

Что такое ZK (zero-knowledge)

Что такое ZK (zero-knowledge)

Zero-knowledge proofs (ZK-доказательства) — это криптографический метод, позволяющий одной стороне (доказывающей) убедить другую сторону (верифицирующую) в истинности утверждения — не раскрывая никакой информации помимо самого факта истинности. В блокчейне ZK-доказательства используются для трёх основных целей: приватность (сокрытие деталей транзакции при подтверждении её корректности), масштабирование (сжатие множества транзакций в одно доказательство, которое проверяется ончейн) и верифицируемые вычисления (доказательство корректного выполнения офчейн-вычислений).

Коротко: ZK-доказательства позволяют подтвердить истинность утверждения, не раскрывая как и почему оно истинно. В крипто они обеспечивают приватные транзакции, масштабируемые роллапы и верифицируемый ИИ-инференс — без необходимости доверять доказывающей стороне.

Основная идея

Концепция контринтуитивна: как можно доказать, что вы что-то знаете, не раскрывая этого? Поможет классическая аналогия.

Представьте пещеру с двумя путями (левым и правым), которые сходятся у запертой двери в глубине. Вы утверждаете, что знаете пароль от двери. Чтобы доказать это, не раскрывая пароль, верификатор стоит у входа в пещеру, а вы заходите по случайному пути. Затем верификатор выкрикивает, с какой стороны он хочет, чтобы вы вышли. Если вы знаете пароль, вы всегда можете выйти с нужной стороны — при необходимости пройдя через дверь. Если не знаете — можете выйти только с той стороны, откуда зашли. После многих раундов верификатор убеждается, что вы знаете пароль, но при этом никогда не узнаёт сам пароль.

ZK-доказательства формализуют эту интуицию математически. Они удовлетворяют трём свойствам:

  • Полнота. Если утверждение истинно и обе стороны следуют протоколу, верификатор будет убеждён.
  • Корректность (soundness). Если утверждение ложно, ни один нечестный доказывающий не сможет убедить верификатора (за исключением пренебрежимо малой вероятности).
  • Нулевое разглашение. Верификатор не узнаёт ничего, кроме факта истинности утверждения.

Как работают ZK-доказательства (упрощённо)

Система ZK-доказательств включает следующие шаги:

  1. Формулировка утверждения. Доказываемое утверждение выражается как математическое — обычно в виде схемы (серии арифметических операций) или системы полиномиальных уравнений.
  2. Свидетельство (witness). Доказывающий обладает закрытой информацией («свидетельством»), которая делает утверждение истинным. Например, свидетельством могут быть входные данные вычисления, дающие известный результат.
  3. Генерация доказательства. Доказывающий использует свидетельство и утверждение для генерации доказательства — компактного математического объекта. Это вычислительно затратный процесс.
  4. Проверка доказательства. Верификатор проверяет доказательство на соответствие утверждению. Проверка быстрая и не требует свидетельства. Если доказательство валидно, верификатор убеждается в истинности утверждения, не узнавая свидетельства.

Доказательство обычно значительно меньше свидетельства, а проверка значительно дешевле повторного выполнения вычислений. Именно эта асимметрия делает ZK-доказательства полезными для масштабирования и верификации в блокчейне.

zk-SNARKs и zk-STARKs

В блокчейн-пространстве доминируют два основных семейства ZK-систем доказательств:

zk-SNARKs

Succinct Non-interactive Arguments of Knowledge (сжатые неинтерактивные аргументы знания). SNARKs генерируют очень компактные доказательства (несколько сотен байт), которые дёшево проверять. Они «неинтерактивные» — доказывающий генерирует доказательство за один шаг, без обмена сообщениями с верификатором. Большинство конструкций SNARK требуют доверенной настройки (trusted setup) — одноразовой церемонии генерации публичных параметров. Если настройка скомпрометирована, гарантия корректности нарушается. Современные SNARKs (такие как PLONK и его варианты) используют универсальную доверенную настройку, подходящую для любой схемы, что снижает, но не устраняет эту проблему.

zk-STARKs

Scalable Transparent Arguments of Knowledge (масштабируемые прозрачные аргументы знания). STARKs не требуют доверенной настройки — они «прозрачны». Они также обеспечивают постквантовую безопасность (устойчивость к атакам квантовых компьютеров). Компромисс в том, что доказательства STARK крупнее, чем SNARK, и их проверка несколько дороже. STARKs особенно подходят для больших вычислений, поскольку время работы доказывающего масштабируется квазилинейно с размером вычислений.

Сравнение

Свойство zk-SNARKs zk-STARKs
Размер доказательства Маленький (сотни байт) Больше (десятки — сотни килобайт)
Стоимость проверки Низкая Средняя
Доверенная настройка Требуется (в большинстве конструкций) Не требуется (прозрачность)
Постквантовая безопасность Нет (в большинстве конструкций) Да
Стоимость для доказывающего Средняя Выше, но лучше масштабируется для больших схем

На практике многие проекты используют системы на основе SNARK из-за малого размера доказательств и низкой стоимости проверки, тогда как STARKs набирают популярность там, где приоритетны прозрачность и постквантовая безопасность.

ZK в блокчейне: основные применения

Приватность

ZK-доказательства обеспечивают приватные транзакции в публичных блокчейнах. Пользователь может доказать корректность транзакции (правильные балансы, отсутствие двойного расходования), не раскрывая отправителя, получателя или сумму. Протоколы, ориентированные на приватность, используют это для создания конфиденциальных переводов в прозрачных сетях.

Масштабирование (zk-роллапы)

ZK-роллапы — это решения масштабирования второго уровня (Layer 2), которые выполняют транзакции офчейн, объединяют их в пакеты и генерируют ZK-доказательство корректности обработки всего пакета. На базовый уровень (Layer 1) публикуется только доказательство и сводка изменений состояния. Смарт-контракт L1 проверяет доказательство и принимает обновление состояния. Это сжимает тысячи транзакций в одну проверку доказательства, значительно увеличивая пропускную способность при наследовании безопасности базового уровня. Основные реализации zk-роллапов включают zkSync, StarkNet, Polygon zkEVM, Scroll и Linea.

Подробнее о масштабировании Layer 2 см. L2.

Верифицируемые вычисления и zkML

ZK-доказательства могут подтвердить корректность выполнения любого вычисления. Это распространяется и на ИИ: zkML использует ZK-доказательства для верификации того, что модель машинного обучения дала конкретный результат по конкретным входным данным, не раскрывая весов модели или входных данных. Смарт-контракт может проверить доказательство ончейн, создавая бездоверительную гарантию корректного выполнения ИИ-инференса.

zkML — одно из самых технически амбициозных применений ZK в крипто-ИИ. Оно обеспечивает математическую (trustless) гарантию корректного инференса, но пока ограничено малыми моделями из-за вычислительных затрат на генерацию доказательств.

Почему ZK важен для крипто-ИИ проектов

ZK-доказательства решают две критические задачи в децентрализованном ИИ:

  • Верифицируемый ИИ. Когда ИИ-инференс выполняется на ненадёжном стороннем оборудовании, ZK-доказательства гарантируют корректность результата без повторного выполнения вычислений. Это критично для ончейн-приложений, где выходные данные ИИ запускают действия смарт-контрактов.
  • Приватность. ZK-доказательства позволяют выполнять ИИ-вычисления, при которых модель, входные данные или и то и другое остаются конфиденциальными. Пользователь может получить результат, сгенерированный ИИ, без того чтобы провайдер вычислений видел запрос, а владелец модели может доказать, что его модель использовалась, не раскрывая веса.

В системе оценки DecAIHub верификация на основе ZK служит индикатором подлинной ончейн-интеграции ИИ: она создаёт математически верифицируемую связь между офчейн ИИ-вычислениями и ончейн-состоянием.

Где это появляется в карточках проектов DecAIHub

Функции, связанные с ZK, отражаются в нескольких местах:

  • AI component — значения вроде «zkML inference», «ZK-verified computation» или «zero-knowledge proof of inference» указывают на ZK-верификацию ИИ.
  • Category — проекты, использующие ZK для ИИ, могут относиться к категориям AI/Inference или AI/Compute с ZK в качестве механизма верификации.
  • Evidence table — доказательства Tier-1 для ZK включают развёрнутые контракты-верификаторы, опубликованные бенчмарки доказательств, реализации схем и ончейн-транзакции верификации.
  • On-chain artifacts — ZK-верификаторы ончейн — это конкретное свидетельство реальной ZK-интеграции, вносящее вклад в измерение Onchain necessity.

Что ZK сам по себе не доказывает

  • ZK доказывает, что вычисление выполнено корректно, — но не доказывает, что вычисление полезно, модель хороша или данные точны. Верифицированный мусор — всё равно мусор.
  • ZK не доказывает, что токен необходим. ZK-доказательства работают без блокчейна; решение разместить верификацию ончейн — это архитектурный выбор.
  • ZK не доказывает децентрализацию. Централизованный провайдер может генерировать ZK-доказательства для собственных вычислений.
  • ZK не доказывает, что модель — именно та, что заявлена, если коммитмент модели (хэш весов) не зафиксирован публично и доказательство не привязано к этому коммитменту.
  • Упоминание ZK в вайтпейпере проекта не означает, что ZK реализован. Ищите развёрнутые контракты-верификаторы, бенчмарки доказательств и код схем как подтверждение.

Не путать с

  • Приватность — приватность — это более широкая цель. ZK — один из инструментов её достижения. Другие механизмы обеспечения приватности включают TEE, MPC и гомоморфное шифрование.
  • TEE (Trusted Execution Environment) — TEE обеспечивает аппаратную конфиденциальность. ZK предоставляет математические доказательства. Оба подхода могут использоваться для верифицируемого ИИ с разными допущениями о доверии и компромиссами в производительности.
  • zkML — конкретное применение ZK-доказательств к инференсу машинного обучения. ZK — это общая криптографическая техника; zkML — специализированный вариант использования.
  • Шифрование — шифрование скрывает данные. ZK-доказательства подтверждают утверждения о данных, не раскрывая их. Это разные операции: шифрование преобразует данные в нечитаемый вид, тогда как ZK-доказательства создают математическое подтверждение без раскрытия данных.
  • Оптимистичная верификация — предполагает корректность результатов и использует доказательства мошенничества только при оспаривании. ZK проактивно доказывает корректность заранее. Это взаимодополняющие подходы, используемые в разных конструкциях L2 (оптимистичные роллапы vs zk-роллапы).

Часто задаваемые вопросы

В чём разница между zk-SNARKs и zk-STARKs?

Оба семейства — системы доказательств с нулевым разглашением, но они различаются по ключевым свойствам. zk-SNARKs генерируют меньшие доказательства и имеют более низкую стоимость проверки, но обычно требуют доверенной настройки — одноразовой церемонии генерации системных параметров. zk-STARKs не требуют доверенной настройки (они прозрачны) и обеспечивают постквантовую безопасность, но их доказательства крупнее и дороже в проверке. Выбор зависит от задачи: SNARKs предпочтительнее, когда критичны размер доказательства и стоимость проверки (например, ончейн-верификация), тогда как STARKs предпочтительнее, когда приоритетны прозрачность и долгосрочная безопасность.

Как ZK-доказательства используются для масштабирования блокчейна?

ZK-роллапы выполняют транзакции офчейн пакетами, затем генерируют единое ZK-доказательство корректной обработки всего пакета. Это доказательство отправляется в блокчейн Layer 1 вместе со сжатой сводкой изменений состояния. Смарт-контракт L1 проверяет доказательство — что значительно дешевле повторного выполнения всех транзакций — и принимает обновление состояния. Это позволяет L1 обработать эффект тысяч транзакций, проверив одно доказательство, значительно увеличивая пропускную способность.

Какова связь между ZK и ИИ?

ZK-доказательства могут подтвердить корректность выполнения инференса ИИ-модели без раскрытия модели или входных данных. Это применение, называемое zkML, обеспечивает бездоверительную верификацию ИИ ончейн: смарт-контракт может подтвердить, что конкретная модель выдала конкретный результат. В настоящее время zkML практически применимо только для малых моделей из-за вычислительных затрат на преобразование операций модели в ZK-схемы и генерацию доказательств. По мере совершенствования систем доказательств диапазон верифицируемых ИИ-моделей будет расширяться.

Являются ли ZK-доказательства вычислительно затратными?

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

Внешние ссылки

  • Ethereum.org — Zero-knowledge proofs — подробное введение в концепции ZK-доказательств, их типы и применение в Ethereum.
  • ZKProof Standards — инициатива сообщества по стандартизации терминологии, фреймворков и определений безопасности доказательств с нулевым разглашением.
  • Vitalik Buterin — An incomplete guide to rollups — основополагающее сравнение оптимистичных и ZK-роллапов от сооснователя Ethereum.

См. также