Что такое ZK (zero-knowledge)
Что такое ZK (zero-knowledge)
Zero-knowledge proofs (ZK-доказательства) — это криптографический метод, позволяющий одной стороне (доказывающей) убедить другую сторону (верифицирующую) в истинности утверждения — не раскрывая никакой информации помимо самого факта истинности. В блокчейне ZK-доказательства используются для трёх основных целей: приватность (сокрытие деталей транзакции при подтверждении её корректности), масштабирование (сжатие множества транзакций в одно доказательство, которое проверяется ончейн) и верифицируемые вычисления (доказательство корректного выполнения офчейн-вычислений).
Коротко: ZK-доказательства позволяют подтвердить истинность утверждения, не раскрывая как и почему оно истинно. В крипто они обеспечивают приватные транзакции, масштабируемые роллапы и верифицируемый ИИ-инференс — без необходимости доверять доказывающей стороне.
Основная идея
Концепция контринтуитивна: как можно доказать, что вы что-то знаете, не раскрывая этого? Поможет классическая аналогия.
Представьте пещеру с двумя путями (левым и правым), которые сходятся у запертой двери в глубине. Вы утверждаете, что знаете пароль от двери. Чтобы доказать это, не раскрывая пароль, верификатор стоит у входа в пещеру, а вы заходите по случайному пути. Затем верификатор выкрикивает, с какой стороны он хочет, чтобы вы вышли. Если вы знаете пароль, вы всегда можете выйти с нужной стороны — при необходимости пройдя через дверь. Если не знаете — можете выйти только с той стороны, откуда зашли. После многих раундов верификатор убеждается, что вы знаете пароль, но при этом никогда не узнаёт сам пароль.
ZK-доказательства формализуют эту интуицию математически. Они удовлетворяют трём свойствам:
- Полнота. Если утверждение истинно и обе стороны следуют протоколу, верификатор будет убеждён.
- Корректность (soundness). Если утверждение ложно, ни один нечестный доказывающий не сможет убедить верификатора (за исключением пренебрежимо малой вероятности).
- Нулевое разглашение. Верификатор не узнаёт ничего, кроме факта истинности утверждения.
Как работают ZK-доказательства (упрощённо)
Система ZK-доказательств включает следующие шаги:
- Формулировка утверждения. Доказываемое утверждение выражается как математическое — обычно в виде схемы (серии арифметических операций) или системы полиномиальных уравнений.
- Свидетельство (witness). Доказывающий обладает закрытой информацией («свидетельством»), которая делает утверждение истинным. Например, свидетельством могут быть входные данные вычисления, дающие известный результат.
- Генерация доказательства. Доказывающий использует свидетельство и утверждение для генерации доказательства — компактного математического объекта. Это вычислительно затратный процесс.
- Проверка доказательства. Верификатор проверяет доказательство на соответствие утверждению. Проверка быстрая и не требует свидетельства. Если доказательство валидно, верификатор убеждается в истинности утверждения, не узнавая свидетельства.
Доказательство обычно значительно меньше свидетельства, а проверка значительно дешевле повторного выполнения вычислений. Именно эта асимметрия делает 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.
No comments to display
No comments to display