﻿---
title: "Доказательство с нулевым разглашением"
description: "Точное руководство по доказательствам с нулевым разглашением: полнота, корректность, симуляция, свидетель, параметры, применение в блокчейне и риски проверки."
image: "https://wiki.fcontext.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://wiki.fcontext.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Доказательство с нулевым разглашением

> Только в образовательных целях; не является инвестиционной рекомендацией или советом по безопасности. Действительное доказательство гарантирует лишь закодированное утверждение при допущениях системы доказательства.

<a id="answer"></a>

## Краткий ответ

Доказательство с нулевым разглашением (ZKP) позволяет доказывающему убедить проверяющего в истинности утверждения, не раскрывая секретный свидетель. Формальная гарантия не означает буквального отсутствия информации в протоколе. Она означает, что всё, что узнаёт допустимый проверяющий, можно смоделировать без свидетеля, кроме выводов из публичного утверждения.

Система оценивается по трём отдельным свойствам: **полноте**, когда честный доказывающий с действительным свидетелем принимается; **корректности**, когда ложное утверждение принимается лишь с пренебрежимо малой вероятностью; и **нулевому разглашению**, когда свидетель скрыт в заданной модели угроз. Многие практические системы являются вычислительными аргументами: корректность действует против вычислительно ограниченных противников и зависит от заявленных криптографических допущений.

Нулевое разглашение отлично от компактности и валидности. Доказательство может быть ZK, но дорогим для проверки, компактным, но открывающим публичные данные, либо верно доказывать закодированное отношение, не совпадающее с правилом приложения.

<a id="mechanism"></a>

## Как это работает

Задаются публичное утверждение `x`, приватный свидетель `w` и точное отношение `R`. Доказывающий создаёт доказательство, а проверяющий оценивает его с публичными параметрами или ключом проверки. Требование корректности можно кратко записать так:

`Verify(vk, x, proof) = 1 => exists w: R(x, w) = 1`

Формула говорит лишь о существовании подходящего свидетеля для закодированного отношения. Она не раскрывает его, не подтверждает подлинность офчейн-входов и не доказывает, что `R` охватывает все задуманные правила.

- **Интерактивные и неинтерактивные схемы.** Ранние ZK-протоколы обмениваются вызовами и ответами. Неинтерактивные системы упаковывают данные в одно доказательство и обычно зависят от параметров настройки, модели случайного оракула или обоих.
- **Модель настройки.** Groth16 даёт очень малые доказательства, но требует структурированной настройки для конкретной схемы. PLONK может использовать универсальную обновляемую структурированную опорную строку. STARK избегает структурированной доверенной настройки, но обычно даёт более крупные доказательства и зависит от хешей и тестирования низкой степени.
- **Арифметизация и обязательства.** Программа переводится в алгебраические ограничения, значения из свидетеля связываются обязательствами, а случайные проверки позволяют проверить вычисление без повтора и просмотра свидетеля.
- **Доказательство знания.** Некоторые системы дополнительно утверждают, что принятый доказывающий знает свидетель; это формализуется экстрактором. Свойство отдельно и не следует из названия «нулевое разглашение».

<a id="example"></a>

## Пример

Пусть `x` содержит обязательство и порог `100 units`, а `w` — связанный баланс и маскирующий фактор. Отношение проверяет правильное раскрытие обязательства и баланс не менее `100 units`. Действительное ZKP доказывает это, не раскрывая точный баланс.

Сам результат не доказывает владение счётом, отсутствие обременений или запрет повторного использования обязательства. Для этого нужны дополнительные ограничения и публичные входы.

В защищённой криптовалюте схема может проверять авторизацию, сохранение стоимости и отсутствие дублей, скрывая детали. В validity rollup доказательство подтверждает пакетный переход состояния; данные транзакций всё равно могут быть публичны, поэтому «ZK Rollup» не означает автоматически приватные транзакции.

<a id="risks"></a>

## Риски

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

<a id="misconceptions"></a>

## Распространённые заблуждения

- **«Нулевое разглашение не раскрывает никаких данных».** Публичное утверждение и намеренно открытые результаты видны, а метаданные могут утекать вне модели.
- **«Действительное доказательство означает корректность приложения».** Принято закодированное отношение; ошибки схемы, интеграции и правил остаются возможны.
- **«У всех ZK-систем одинаковые допущения доверия».** Церемонии, кривые, хеши, модели протокола и управление обновлениями существенно различаются.
- **«ZK — это шифрование».** Шифрование скрывает данные для расшифровки уполномоченной стороной; ZKP подтверждает утверждение без передачи свидетеля для расшифровки.

<a id="related"></a>

## Связанные темы

- [Криптографический хеш](/ru/crypto/cryptographic-hash/)
- [Приватная монета](/ru/crypto/privacy-coin/)
- [Доказательство валидности](/ru/crypto/validity-proof/)
- [ZK Rollup](/ru/crypto/zk-rollup/)

<a id="sources"></a>

## Источники

- [The Knowledge Complexity of Interactive Proof Systems](https://people.csail.mit.edu/silvio/Selected%20Scientific%20Papers/Zero%20Knowledge/The_Knowledge_Complexity_Of_Interactive_Proof_Systems.pdf) - SIAM Journal on Computing (дата обращения: 2026-08-22)
- [On the Size of Pairing-based Non-interactive Arguments](https://eprint.iacr.org/2016/260.pdf) - IACR Cryptology ePrint Archive (дата обращения: 2026-08-22)
- [Scalable, transparent, and post-quantum secure computational integrity](https://eprint.iacr.org/2018/046.pdf) - IACR Cryptology ePrint Archive (дата обращения: 2026-08-22)
- [PLONK: Permutations over Lagrange-bases for Oecumenical Noninteractive arguments of Knowledge](https://eprint.iacr.org/2019/953.pdf) - IACR Cryptology ePrint Archive (дата обращения: 2026-08-22)
- [Zcash Protocol Specification](https://zips.z.cash/protocol/protocol.pdf) - Zcash Protocol Specification (дата обращения: 2026-08-22)

Source: https://wiki.fcontext.com/ru/crypto/zero-knowledge-proof/index.mdx
