ZK (Zero-Knowledge Proof) — криптографический способ подтвердить утверждение без раскрытия информации.
В операции участвуют 2 стороны:
- Prover (доказывающая) — у неё есть знание;
- Verifier (проверяющая) — она проверяет.
Пример: кредит#
Кредитор хочет убедиться в платёжеспособности заёмщика, но заёмщик хочет остаться инкогнито.
→ ZK-доказательство даёт гарантию платёжеспособности без раскрытия личности и обеспечения.
История#
1985 — Сильвио Микали, Ави Вигдерсон, Одед Голдрайх опубликовали «Сложность знаний интерактивных систем доказательств».
В работе:
- Введён термин доказательство с нулевым разглашением;
- Описана криптографическая технология;
- Доказательство не открывает приватных данных, но вводит обязательную коммуникацию.
Категории#
zk-SNARKs
Zero-Knowledge Succinct Non-Interactive Argument of Knowledge.
- Доказательство без раскрытия информации;
- Требует секретный ключ, созданный заранее;
- Пример приложения: Zcash — первый широко доступный токен конфиденциальности на zk-SNARKs;
- При переводе Zcash → подтверждение приходит без раскрытия сторон и сумм.
zk-STARKs
Zero-Knowledge Scalable Transparent Arguments of Knowledge.
- Открытые случайно анализируемые доказательства;
- Не требует первоначальной настройки;
- Не раскрывает конфиденциальные данные третьей стороне;
- Также называются протоколами Артура-Мерлина.
Сравнение
| Параметр | zk-SNARKs | zk-STARKs |
|---|---|---|
| Размер доказательства | Маленький | Больше |
| Trusted setup | Да | Нет |
| Post-quantum security | Уязвим | Устойчив |
| Скорость верификации | Быстрее | Быстрее для больших данных |
Свойства ZK#
- Точность (Completeness) — true утверждение → можно убедить verifier;
- Подлинность (Soundness) — false утверждение → нельзя убедить verifier;
- Полная конфиденциальность (Zero-knowledge) — verifier не узнаёт ничего, кроме факта истинности.
Применение#
| Сфера | Использование |
|---|---|
| Блокчейн | Транзакции с подтверждением без раскрытия данных |
| Финансы | Защита данных клиентов + регулятивные нормы |
| Идентификация | Подтверждение личности без раскрытия |
| Медицина | Доступ к данным пациентов без нарушения приватности |
ZK на TON#
| Функция | Описание |
|---|---|
| Идентификация | Верификация без раскрытия личной информации |
| Кибербезопасность | Проверка достоверности данных без раскрытия ключей |
| Протоколы обмена | Доказательство условий без раскрытия исходных данных |
Проекты
- ZK on TON — документация и туториалы;
- Tonnel Network — приватные транзакции (Tornado на TON), GitHub.
Источники#
- ZK-STARK на Wikipedia;
- What are zk-SNARKs (Zcash);
- ZK в блокчейне TON (tonblockchain.ru);
- Binance Academy: zk-SNARKs vs zk-STARKs.