Протокол знань про нуль - це метод, за допомогою якого одна сторона (доводчик) може довести до іншої сторони (перевіряючий), що щось є правдою, не розкриваючи жодної інформації, окрім того, що цей конкретний вислів є правдою.
Докази з нульовим розголошенням поліпшилися з роками і зараз вони використовуються в кількох реальних додатках.
Але є проблеми з таким підходом, головним чином - відсутність конфіденційності. Особиста ідентифікована інформація (ОІІ), яка ділиться з послугами сторонніх сторін, зберігається в центральних базах даних, які піддаються вразливості від взломів. З поширенням крадіжок особистості стає критичною проблемою, і є заклики до більш конфіденційних засобів обміну чутливою інформацією.
Докази з нульовим рівнем вирішують цю проблему, усуваючи потребу в розкритті інформації для підтвердження правдивості вимог. Протокол з нульовим рівнем використовує заяву (звану 'свідком') як вхід, щоб згенерувати стислий доказ її правдивості. Цей доказ надає міцні гарантії того, що заява є правдивою, не розкриваючи інформації, використаної для її створення.
Повертаючись до нашого попереднього прикладу, єдиним доказом, який вам потрібно представити для підтвердження вашої вимоги на громадянство, є доказ з нульовим знанням. Верифікатору потрібно лише перевірити, чи відповідні властивості доказу відповідають дійсності, щоб переконатися, що базове твердження також є правдивим.
Протокол з нульовими знаннями повинен задовольняти наступні критерії:
Повнота: Якщо вхід є дійсним, протокол з нульовим доказом завжди повертає «true». Таким чином, якщо базове твердження є правдивим, а доказуючий та перевіряючий діють чесно, доказ може бути прийнятий.- Здоров'я: Якщо введені дані є недійсними, теоретично неможливо обманути протокол з нульовим доказом, щоб повернутися 'true'. Отже, брехливий доводчик не може обдурити чесного перевіряючого вважати недійсним висловлюванням є валідним (крім невеликого ймовірнісного маржі).- Нуль-знання: Верифікатор нічого не дізнається про твердження, крім його вірності або хибності (вони мають "нуль-знання" про твердження). Це вимога також перешкоджає верифікатору виводити початковий ввід (зміст твердження) з доказу.У базовій формі доказ знання нуля складається з трьох елементів: свідок, виклик та відповідь.
Свідок: З доказом з нульовим знанням доводувач хоче довести знання якоїсь схованої інформації. Секретна інформація є "свідком" для доказу, а припущене знання доводувача про свідка встановлює набір питань, які може відповісти тільки сторона, яка знає інформацію. Таким чином, доводувач починає процес доведення, випадково обираючи питання, обчислюючи відповідь та відправляючи її верифікатору.- Виклик: Верифікатор випадковим чином вибирає ще одне питання з набору та просить довідника відповісти на нього.- Відповідь: Доказувач приймає питання, обчислює відповідь та повертає її верифікатору. Відповідь доказувача дозволяє верифікатору перевірити, чи дійсно колишній має доступ до свідка. Щоб переконатися, що доказувач не вгадує наугад та не отримує правильні відповіді випадковим чином, верифікатор вибирає більше питань для запитання. Повторюючи цю взаємодію багато разів, можливість того, що доказувач фальшиво знатиме свідка, значно зменшується, поки верифікатор не буде задоволений.Вище описана структура 'інтерактивного доказу знань нуля'. Ранні протоколи нуль-знань використовували інтерактивне доведення, де перевірка валідності твердження вимагала взаємодії між доводами та перевіряючими.
Добрий приклад, який ілюструє, як працюють інтерактивні докази, - це відомий Жан-Жак КіскартерКазка про печеру Алі-Баби
(відкривається в новій вкладці)
. У історії Пеггі (доведена) хоче довести Віктору (перевіряючому), що вона знає секретну фразу для відкриття магічних дверей, не розголошуючи фразу.
Для вирішення цієї проблеми Мануель Блум, Пол Фелдман та Сільвіо Мікалі запропонували перше невзаємодійні докази нульового знання
де доказувач і перевіряючий мають спільний ключ. Це дозволяє доказувачу продемонструвати свої знання певної інформації (тобто, свідка), не надаючи саму інформацію.
У відміну від інтерактивних доказів, неінтерактивні докази потребують лише одного раунду спілкування між учасниками (доказувачем і перевіряючим). Доказувач передає секретну інформацію спеціальному алгоритму для обчислення доказу нульового знання. Цей доказ надсилається перевіряючому, який перевіряє, що доказувач володіє секретною інформацією за допомогою іншого алгоритму.
Неінтерактивне доведення зменшує комунікацію між доводником та перевіряючим, роблячи ZK-докази більш ефективними. Більше того, як тільки доказ згенеровано, він доступний для будь-кого іншого (з доступом до спільного ключа та алгоритму верифікації), щоб перевірити.
Невзаємодійні докази стали проривом для технології нульового доказу та сприяли розвитку систем доведення, які використовуються сьогодні. Ми обговорюємо ці типи доказів нижче:
Багатосторонні обчислення (MPC)
(відкривається в новій вкладці)
це спосіб зменшення ризиків при формуванні загальних параметрів. В процесі беруть участь кілька сторін.церемонія довіреного налаштування
(відкривається в новій вкладці)
, де кожна особа вносить деякі випадкові значення для генерації CRS. Поки одна чесна сторона знищує свою частину ентропії, протокол ZK-SNARK зберігає обчислювальну звуковість.
Довірені налаштування потребують від користувачів довіри до учасників у генерації параметрів. Однак розробка ZK-STARKs дозволила створити протоколи доведення, які працюють без довіреної настройки.
Криптовалюти були призначені для забезпечення можливості користувачам проводити приватні, один до одного транзакції. Проте більшість транзакцій з криптовалютами відкрито видимі на публічних блокчейнах. Ідентифікатори користувачів часто є псевдонімами і можуть бути свідомо пов'язані з реальними ідентичностями (наприклад, шляхом включення адрес ETH у Twitter або профілях GitHub) або можуть бути пов'язані з реальними ідентичностями за допомогою базового аналізу даних в ланцюжку та поза ним.
Існують конкретні «конфіденційні монети», призначені для повністю анонімних транзакцій. Блокчейни, що акцентують на приватності, такі як Zcash та Monero, захищають деталі транзакцій, включаючи адреси відправника/одержувача, тип активу, кількість та часову шкалу транзакції.
Вбудовуючи технологію з нульовим розголошенням у протокол, блокчейн-мережі, орієнтовані на конфіденційність, дозволяють вузлам перевіряти транзакції без необхідності доступу до даних транзакцій.
Докази з нульовим розголошенням також застосовуються для анонімізації транзакцій у публічних блокчейнах. Прикладом є Tornado Cash, децентралізований, некастодіальний сервіс, який дозволяє користувачам проводити приватні транзакції на Ethereum. Tornado Cash використовує докази з нульовим розголошенням, щоб приховати деталі транзакцій і гарантувати фінансову конфіденційність. На жаль, оскільки це інструменти конфіденційності за згодою, вони асоціюються з незаконною діяльністю. Щоб подолати це, конфіденційність повинна в кінцевому підсумку стати стандартом в публічних блокчейнах.
Докази з нульовим відомостями особливо корисні в контексті децентралізований ідентифікатор. Децентралізована ідентичність (також описується як 'самосуверенна ідентичність') дає особі можливість контролювати доступ до особистих ідентифікаторів. Доведення вашого громадянства без розголошення ідентифікаційного номера платника податків або деталей паспорта є хорошим прикладом того, як технологія нульового знання дозволяє децентралізовану ідентичність.
Нульові докази, однак, можуть спростити автентифікацію як для платформ, так і для користувачів. Після того, як було створено ZK-докази з використанням публічних входів (наприклад, даних, що засвідчують членство користувача на платформі) та приватних входів (наприклад, деталі користувача), користувач може просто представити їх для автентифікації своєї особи, коли йому потрібен доступ до сервісу. Це покращує досвід для користувачів та звільняє організації від потреби зберігати величезні обсяги інформації користувачів.
Перевірка обчислень є критично важливою для покращення швидкості обробки на блокчейнах без зниження рівня безпеки. Для зрозуміння цього потрібно знати відмінності запропонованих рішень для масштабування Ethereum.
Рішення для масштабування на ланцюжку, такі як шардінг, потребують значних модифікацій базового рівня блокчейну. Однак цей підхід є дуже складним, а помилки в реалізації можуть підірвати модель безпеки Ethereum.
Офшорні рішення щодо масштабуванняне потребує перепроектування основного протоколу Ethereum. Замість цього вони покладаються на модель зовнішнього обчислення для покращення пропускної здатності базового рівня Ethereum.
Ось як це працює на практиці:
Ланцюгу потрібен спосіб підтвердження позаланцюжкових транзакцій без повторного виконання їх, інакше втрачається цінність позаланцюжкового виконання.
Ось де входить в гру перевірка обчислень. Коли вузол виконує транзакцію поза Ethereum, він надсилає доказ знань нульового рівня, щоб довести правильність виконання поза ланцюжком. Цей доказ (називається
доказ процесу) гарантує, що транзакція є дійсною, дозволяючи Ethereum застосувати результат до свого стану—не чекаючи, поки хтось не заперечить це.
Zero-knowledge rollups та validiumsдва рішення позашляхового масштабування, які використовують докази достовірності для забезпечення безпечного масштабованості. Ці протоколи виконують тисячі транзакцій позашляхово і подають докази для перевірки на Ethereum. Ці результати можуть бути застосовані негайно після того, як доказ буде перевірено, що дозволяє Ethereum обробляти більше транзакцій без збільшення обчислень на базовому рівні.
Визначивши як «координацію з метою обмеження відкритої конкуренції шляхом обману, шахрайства та вводження в оману інших», змова може приймати форму зловмисника, що впливає на голосування, пропонуючи хабарі. Наприклад, Аліса може отримати хабар від Боба за голосування за варіант B на бюлетені навіть якщо вона віддає перевагу варіанту A.
Хабарництво та змова обмежують ефективність будь-якого процесу, який використовує голосування як сигнальний механізм (особливо там, де користувачі можуть довести, як вони проголосували). Це може мати серйозні наслідки, особливо коли голоси відповідальні за розподіл рідкісних ресурсів.
Наприклад, квадратичні механізми фінансування
(відкривається в новій вкладці)
покладатися на пожертви, щоб виміряти вибір серед різних проектів громадського добра. Кожна пожертва вважається "голосом" за певний проект, при цьому проекти, які отримують більше голосів, отримують більше коштів з фонду співставлення.
Використання голосування на ланцюжку робить квадратичне фінансування вразливим до зговору: транзакції блокчейну є публічними, тому хабарники можуть перевірити діяльність хабарника на ланцюжку, щоб побачити, як вони "голосували". Таким чином, квадратичне фінансування перестає бути ефективним засобом розподілу коштів на основі агрегованих вподобань спільноти.
На щастя, нові рішення, такі як MACI (Мінімальна інфраструктура проти злочинних угод), використовують докази нульового знання для того, щоб зробити голосування на ланцюжку (наприклад, квадратичні фінансові механізми) стійкими до підкупу та зговору. MACI - це набір смарт-контрактів та скриптів, які дозволяють центральному адміністраторові (званий “координатором”) агрегувати голоси та підбивати підсумки, не розкриваючи конкретики того, як голосував кожен окремий учасник. Тим не менш, все ще можна перевірити, що голоси були правильно підраховані, або підтвердити, що певна особа брала участь у голосуванні.
У MACI докази з нульовим відомості використовуються для забезпечення правильності обчислень, роблячи неможливим для координатора неправильно обробляти голоси та підбивати результати. Це досягається за допомогою вимоги до координатора генерувати докази ZK-SNARK, що підтверджують, що a) всі повідомлення були оброблені правильно b) кінцевий результат відповідає сумі всіх правильних голосів.
Отже, навіть без розподілу голосів за кожним користувачем (як це зазвичай буває), MACI гарантує цілісність результатів, розрахованих під час підрахунку. Ця функція корисна для зменшення ефективності базових схем злочинної угоди. Ми можемо дослідити цю можливість, використовуючи попередній приклад, коли Боб підкупив Алісу, щоб та проголосувала за варіант:
Проте в тих випадках, де координатор залишається чесним, MACI є потужним інструментом для гарантування святості голосування на ланцюжку. Це пояснює його популярність серед заявок на квадратичне фінансування (наприклад, clr.fund
(відкривається в новій вкладці)
) які сильно покладаються на цілісність виборів кожної окремої особи.
(відкривається в новій вкладці)
.
Але дійсно, немає способу для користувачів оцінити чесність учасників, і користувачам доводиться вірити розробникам на слово. ZK-STARKs вільні від припущень про довіру, оскільки випадковість, яка використовується для генерації рядка, є публічно перевірною. Тим часом дослідники працюють над недовіреними налаштуваннями для ZK-SNARKs, щоб збільшити безпеку механізмів доведення.
ECDSA) для шифрування. Хоча алгоритм ECDSA наразі є безпечним, розвиток квантових комп'ютерів може порушити його модель безпеки у майбутньому.
ZK-STARK вважається імунним до загрози квантового обчислення, оскільки використовується ударостійка хеш-функція для шифрування. На відміну від використання пар ключів публічного-приватного типу в еліптичній криптографії, ударостійка хеш-функція складніше для алгоритмів квантового обчислення взламати.





