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;
- Повна конфіденційність (Зірове знання) перевіряч нічого не знає, крім факту правди.
Використання#
| Сфера | Використання |
|---|---|
| Блокчейн | Транзакції з підтвердженням без розкриття даних |
| Фінанси | Захист даних клієнтів + регуляторні норми |
| Ідентифікація | Підтвердження особистості без розкриття |
| Медикатура | Доступ до даних пацієнтів без порушення приватності |
ZK на TON#
| Функція | Опис |
|---|---|
| Ідентифікація | Перевірка без розкриття особистої інформації |
| Кібербезпека | Перевірка достовірності даних без розкриття ключів |
| Протоколи обміну | Доказувати умови без розкриття початкових даних |
Проекти
- ZK on TON документація та туторіали;
- Tonnel Network приватні транзакції (Торнадо на ТОН), GitHub.
Джерела#
- ZK-STARK на Вікіпедії;
- What are zk-SNARKs (Zcash);
- ZK в блокчейні TON (tonblockchain.ru);
- Binance Academy: zk-SNARKs vs zk-STARKs.