Що робить доказ з нульовим знанням
Зазвичай довести щось означає показати докази: ввести пароль або пред'явити документ, що посвідчує особу. Але це може розкрити більше, ніж потрібно знати іншій людині.
Доказ з нульовим знанням — це криптографічний метод, який змінює це. Одна сторона доводить точне твердження іншій, не розкриваючи секрет, завдяки якому воно правдиве. Друга сторона дізнається потрібну відповідь — наприклад, що ви відповідаєте віковій вимозі, — але не вашу дату народження, адресу чи номер документа.
Це не розпливчаста обіцянка конфіденційності. Доказ розробляють під одне конкретне твердження, і вдалий дизайн робить обман украй малоймовірним.
Приклад із печерою
Уявіть печеру з двома стежками, які сходяться за замкненими дверима. Двері відкриваються лише за таємним словом. Ви кажете, що знаєте це слово, але не хочете вимовляти його вголос.
Ви заходите однією зі стежок, поки друг чекає зовні. Потім друг вигукує, якою стежкою хоче, щоб ви повернулися. Якщо ви знаєте слово, ви можете відкрити двері всередині печери й повернутися будь-якою стежкою. Якщо ви просто вгадуєте, шанс опинитися на потрібному боці — лише п'ятдесят на п'ятдесят.
Повторіть перевірку багато разів із новим, непередбачуваним вибором. Після десяти успішних раундів шанс блефувальника вгадати кожного разу — приблизно один до 1000. Друг отримує вагомий доказ того, що ви знаєте слово, але так і не чує його.
Від історії з печерою до реального програмного забезпечення
У реальних доказах замість печери використовують математику, але мета конфіденційності та сама. Вони можуть показати, що транзакція відповідає правилам, не розкриваючи всіх її деталей. Крім того, один невеликий доказ може замінити цілий пакет перевірок, що прискорює роботу деяких систем.
Ще одне практичне застосування — цифрові посвідчення. Замість завантаження повного документа в кожну службу, добре розроблене посвідчення може відповісти лише на поставлене запитання: «Цій людині більше 18?» або «Чи має вона цю кваліфікацію?»
Деталі мають значення. Доказ захищає лише ту інформацію, для приховання якої його створили. Застосунок навколо нього все одно може збирати дані, ідентифікувати вас або десь-інде припуститися помилки в безпеці.
Доказ із нульовим знанням проти шифрування з нульовим знанням
Фразу «нульове знання» також використовують у хмарних сховищах. Але це інша ідея. Шифрування з нульовим знанням означає, що постачальник сховища не може прочитати ваші файли, бо не має ключів розшифрування.
Доказ з нульовим знанням відповідає на запитання, не розкриваючи таємницю, що стоїть за відповіддю. Шифрування з нульовим знанням робить збережені файли нечитабельними для постачальника. Обидва можуть покращити конфіденційність, але це не взаємозамінні речі.
Практичний урок про конфіденційність
Докази з нульовим знанням корисно нагадують: діліться лише мінімумом інформації, потрібним для завдання. Вони не роблять вас анонімним і не захищають кожну частину застосунку. Служба все одно може знати, що ви підключалися, коли саме і які ще дані виходять за межі доказу.
Sealby не потребує доказів з нульовим знанням, бо в нього немає облікового запису чи сервера, який просив би щось довести. Файли шифруються на вашому iPhone. У повсякденній конфіденційності практичне запитання просте: що ця служба насправді має знати — і чи може вона обійтися меншим?