Огляд технології zk-SNARKs та її застосування в сфері Блокчейн
Резюме
zk-SNARKs(ZKP) технологія вважається одним із найважливіших інновацій у сфері Блокчейн, а також є ключовою областю уваги венчурного капіталу в останні роки. У цій статті систематично переглядається розвиток технології ZKP за майже 40 років та останні дослідження.
По-перше, представлено основні концепції та історичний фон ZKP. Потім акцентовано увагу на технології ZKP на основі схем, включаючи проекти, застосування та методи оптимізації моделей zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs та Ligero. Що стосується обчислювального середовища, у статті представлені ZKVM та ZKEVM, обговорюється, як вони підвищують потужність обробки транзакцій, захищають конфіденційність і підвищують ефективність верифікації. Стаття також пояснює робочий механізм та методи оптимізації нульового знання Rollup(ZK Rollup) як рішення для розширення Layer 2, а також останні досягнення в апаратному прискоренні, змішаних рішеннях і спеціалізованих ZK EVM.
Насамкінець, стаття розглядає нові концепції, такі як ZKCoprocessor, ZKML, ZKThreads, ZK Sharding та ZK StateChannels, і досліджує їх потенціал у сфері масштабованості Блокчейн, взаємодії та захисту приватності.
Аналізуючи ці ці новітні технології та тенденції розвитку, ця стаття пропонує всебічний погляд на розуміння та застосування технології ZKP, демонструючи її величезний потенціал у підвищенні ефективності та безпеки Блокчейн-систем, забезпечуючи важливу інформацію для прийняття інвестиційних рішень у майбутньому.
Зміст
Передмова
Одне: Основи zk-SNARKs
Огляд
zk-SNARKs приклад
Два, неінтерактивні zk-SNARKs
Фон
Введення NIZK
Перетворення Фіата-Шаміра
Йенс Грот та його дослідження
Інші дослідження
Три, основані на схемах zk-SNARKs
Фон
Основні концепції та характеристики електричних схем
Проектування та застосування схем у zk-SNARKs
Потенційні дефекти та виклики
Чотири, модель zk-SNARKs
Фон
Звичні алгоритмічні моделі
Схема на основі лінійного PCP та проблеми дискретного логарифму
Рішення, основане на доказах звичайних людей
Основи ймовірності, які можна перевірити, доведення ( PCP ) zk-SNARKs
Класифікація етапу налаштування загального доказу на основі CPC( конструкції )
П'ять. Огляд та розвиток нульових знань віртуальної машини
Фон
Існуюча класифікація ZKVM
Парадигма фронтенду та бекенду
Переваги та недоліки парадигми ZKVM
Шість, огляд та розвиток zk-SNARKs Ethereum Virtual Machine
Фон
Принцип роботи ZKEVM
Процес реалізації ZKEVM
Особливості ZKEVM
Сім. Огляд та розвиток рішень другого рівня з нульовими доказами
Фон
Механізм роботи ZK Rollup
Недоліки та оптимізація zk-Rollup
Вісім. Майбутні напрямки розвитку zk-SNARKs
Прискорення розвитку обчислювального середовища
Введення та розвиток ZKML
Розвиток технологій розширення ZKP
Розвиток інтероперабельності zk-SNARKs
Дев'ять, висновок
Список літератури
Вступ
Інтернет входить в епоху Web3, застосування Блокчейн (DApps) розвивається швидко. У останні роки блокчейн платформи щодня обробляють мільйони активностей користувачів, виконуючи десятки мільярдів транзакцій. Ці транзакції генерують величезну кількість даних, що містять чутливу особисту інформацію, таку як ідентичність користувачів, суми транзакцій, адреси рахунків та залишки. Завдяки відкритості та прозорості блокчейну, ці дані є доступними для всіх, що викликає різноманітні проблеми безпеки та конфіденційності.
Наразі існує кілька криптографічних технологій, які можуть впоратися з цими викликами, включаючи гомоморфне шифрування, кільцеві підписи, безпечні багатосторонні обчислення та zk-SNARKs. Гомоморфне шифрування дозволяє виконувати обчислення, не розшифровуючи зашифровані дані, що допомагає захистити безпеку балансу рахунків і сум транзакцій, але не може захистити безпеку адреси рахунку. Кільцеві підписи пропонують особливу форму цифрового підпису, яка може приховати особу підписувача, тим самим захищаючи безпеку адреси рахунку, але не може забезпечити захист балансу рахунків і сум транзакцій. Безпечні багатосторонні обчислення дозволяють розподілити обчислювальні завдання між кількома учасниками, не розкриваючи жодному з учасників дані інших учасників, що ефективно захищає безпеку балансу рахунків і сум транзакцій, але також не може захистити безпеку адреси рахунку. Крім того, ці технології не можуть використовуватися для перевірки того, чи має довірена сторона достатню суму транзакції в середовищі блокчейну, не розкриваючи суму транзакції, адресу рахунку та баланс рахунку.
zk-SNARKs є більш всеосяжним рішенням, цей протокол верифікації дозволяє перевіряти правильність певних тверджень без розкриття жодних проміжних даних. Цей протокол не потребує складної інфраструктури відкритих ключів, а його повторне виконання також не дає зловмисним користувачам можливості отримати додаткову корисну інформацію. Завдяки ZKP, верифікатор може перевірити, чи має доводчик достатню суму транзакцій, не розкриваючи жодних приватних даних транзакцій. Процес верифікації включає в себе генерацію доказу, що містить суму транзакцій, яку стверджує доводчик, а потім передавання цього доказу верифікатору, який проводить попередньо визначені обчислення та генерує остаточний результат обчислень, щоб зробити висновок про прийняття заяви доводчика. Якщо заява доводчика прийнята, це означає, що вони мають достатню суму транзакцій. Вищезгаданий процес верифікації може бути зафіксований на Блокчейн, без жодного підроблення.
Ця характеристика ZKP робить його центральним гравцем у транзакціях Блокчейн і застосуваннях криптовалют, особливо в питаннях захисту приватності та розширення мережі, що робить його не лише центром академічних досліджень, але й широко вважається однією з найважливіших технологічних інновацій з моменту успішної реалізації технології розподіленого реєстру, а також є ключовою траєкторією для галузевих застосувань і венчурного капіталу.
Відповідно, численні мережеві проекти на основі zk-SNARKs з’явилися один за одним, такі як ZkSync, StarkNet, Mina, Filecoin та Aleo. З розвитком цих проектів інновації в алгоритмах zk-SNARKs з’являються без упину, і, за повідомленнями, майже щотижня з'являються нові алгоритми. Крім того, розробка апаратного забезпечення, пов'язаного з технологією zk-SNARKs, також швидко прогресує, включаючи чіпи, оптимізовані спеціально для zk-SNARKs. Наприклад, деякі проекти вже завершили масштабний збір коштів, і ці досягнення не тільки демонструють швидкий прогрес технології zk-SNARKs, але й відображають перехід від універсального апаратного забезпечення до спеціалізованого, такого як GPU, FPGA та ASIC.
Ці досягнення свідчать про те, що технологія zk-SNARKs є не лише важливим проривом у галузі криптографії, а й ключовим чинником для реалізації більш широких застосувань Блокчейн-технологій, особливо в покращенні захисту приватності та обробної спроможності.
Тому ми вирішили систематизувати знання про zk-SNARKs ( ZKP ), щоб краще допомогти нам у прийнятті інвестиційних рішень у майбутньому. Для цього ми комплексно переглянули основні наукові статті, пов'язані з ZKP, (, відсортувавши їх за релевантністю та кількістю цитувань ); водночас ми також детально проаналізували інформацію та білі книги провідних проектів у цій галузі, ( відсортувавши їх за обсягом фінансування ). Ці комплексні збори та аналізи матеріалів стали міцною основою для написання цієї статті.
Один. Основи zk-SNARKs
1.Огляд
У 1985 році вчені Goldwasser, Micali та Rackoff вперше представили нульові знання у своїй статті «Складність знань інтерактивних доказових систем» (The Knowledge Complexity of Interactive Proof-Systems), визначивши такі терміни, як нульові знання ( Zero-Knowledge Proof, ZKP ) та інтерактивні нульові знання ( Interactive Zero-Knowledge, IZK ). Ця стаття стала основоположною для нульових знань, визначивши багато концепцій, що вплинули на подальші академічні дослідження. Наприклад, визначення знань – це "некероване обчислювальне вихід", тобто знання повинно бути виходом, а також некерованим обчисленням, що означає, що це не може бути простою функцією, а має бути складною функцією. Некероване обчислення зазвичай можна розуміти як NP-проблему, тобто задачу, рішення якої можна перевірити на правильність за поліноміальний час, при цьому поліноміальний час вказує на те, що час виконання алгоритму можна виразити поліноміальною функцією розміру вхідних даних. Це важливий критерій для оцінки ефективності та можливості алгоритмів у комп'ютерних науках. Оскільки процес розв'язання NP-проблем складний, його вважають некерованим обчисленням; однак процес перевірки відносно простий, тому він дуже підходить для перевірки нульових знань.
Класичним прикладом задачі NP є задача комівояжера, в якій потрібно знайти найкоротший шлях для відвідування ряду міст і повернення до початкової точки. Хоча знайти найкоротший шлях може бути важко, перевірити, чи є даний шлях найкоротшим, відносно легко. Адже перевірка загальної відстані конкретного шляху може бути виконана за поліноміальний час.
У своїй статті Голдвассер та ін. ввели концепцію "складності знань", щоб кількісно оцінити обсяг знань, які доводчик розкриває перевіряючому в інтерактивних системах доказів. Вони також запропонували інтерактивні системи доказів (Interactive Proof Systems, IPS), де доводчик (Prover) та перевіряючий (Verifier) через багато раундів взаємодії доводять істинність певного твердження.
Отже, визначення zk-SNARKs, яке підсумували Голдвассер та інші, є особливим інтерактивним доказом, в якому валідатор не отримує жодної додаткової інформації, окрім істинності висловлення; і були висунуті три основні характеристики, які включають:
1.Повнота: якщо доказ є істинним, чесний доказувач може переконати чесного перевіряючого в цьому факті;
Надійність: якщо доводчик не знає змісту заяви, він може обдурити перевіряючого лише з незначною ймовірністю;
Нульові знання: після завершення процесу доказу, перевіряючий отримує лише інформацію "доказувач має ці знання", і не може отримати жодного додаткового вмісту.
2.zk-SNARKs приклад
Для кращого розуміння zk-SNARKs та їхніх властивостей, нижче наведено приклад перевірки того, чи має довіритель певну конфіденційну інформацію. Цей приклад поділений на три етапи: налаштування, виклик і відповідь.
Перший крок: налаштування (Setup)
На цьому етапі мета доказувача полягає в тому, щоб створити доказ, що він знає певне секретне число s, але не показуючи безпосередньо s. Нехай секретне число;
Виберіть два великі прості числа p і q, обчисліть їхній добуток. Нехай прості числа та, обчисліть отримане.
Обчислення, тут v як частина доказу надсилається валідатору, але цього недостатньо, щоб валідатор або будь-який спостерігач змогли зробити висновок про s.
Випадковим чином вибрати ціле число r, обчислити та надіслати його перевіряючому. Це значення x використовується в подальшому процесі перевірки, але також не розкриває s. Нехай випадкове ціле число, обчислене .
Другий крок: виклик (Challenge)
Валідатор випадковим чином вибирає позицію a(, яка може бути 0 або 1), а потім надсилає її довірителю. Це "виклик" визначає кроки, які довіритель повинен зробити далі.
Третій крок: відповідь (Response)
Згідно з a значенням, яке надіслав валідатор, доказувач відповідає:
Якщо доводчик надсилає ( тут r – це число, яке він раніше випадково вибрав ).
Якщо , доводчик обчислює та надсилає. Нехай випадковий біт, надісланий перевіряючим, залежно від значення a, доводчик обчислює ;
Нарешті, валідатори перевіряють, чи дорівнює отримане g . Якщо рівність справедлива, валідатор приймає це підтвердження. Коли , валідатор обчислює , праву частину перевіряючи ; коли , валідатор обчислює , праву частину перевіряючи .
Тут ми бачимо, що перевірник обчислив, що доказник успішно пройшов процес верифікації, при цьому не розкривши своє секретне число s. Тут, оскільки a може приймати лише 0 або 1, існує лише дві можливості, ймовірність того, що доказник пройде верифікацію на удачу, коли a дорівнює 0, становить (. Але перевірник потім знову кидає виклик доказнику, доказник постійно змінює відповідні числа, які подає перевірнику, і завжди успішно проходить процес верифікації, таким чином, ймовірність того, що доказник пройде верифікацію на удачу, безмежно наближається до 0), що підтверджує висновок, що доказник дійсно знає певне секретне число s. Цей приклад доводить цілісність, надійність та нульову знаність системи нульових знань.
( Два, неконтактні zk-SNARKs
)# 1.Фон
zk-SNARKs###ZKP###в традиційних концепціях зазвичай є інтерактивними та онлайн-протоколами; наприклад, протокол Sigma зазвичай вимагає від трьох до п'яти раундів взаємодії для завершення аутентифікації. Однак у таких сценаріях, як миттєві транзакції або голосування, часто немає можливості для багатократної взаємодії, особливо у застосуваннях технології Блокчейн, де функція зовнішньої перевірки є особливо важливою.
(# 2.Введення NIZK
У 1988 році Блум, Фельдман і Мікалі вперше запропонували концепцію неінтерактивних нульових знань )NIZK###, довівши можливість завершення процесу автентифікації між довірителем (Prover) і перевіряльником (Verifier) без необхідності багаторазової взаємодії. Цей прорив зробив здійснення миттєвих транзакцій, голосування та застосувань Блокчейн можливим.
Вони запропонували неінтерактивні zk-SNARKs ( NIZK ).
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
6 лайків
Нагородити
6
4
Поділіться
Прокоментувати
0/400
GateUser-afe07a92
· 08-05 10:44
Що за чорна технологія, не розумію...
Переглянути оригіналвідповісти на0
WalletDoomsDay
· 08-05 10:42
zkp є ліками для гаманець
Переглянути оригіналвідповісти на0
BanklessAtHeart
· 08-05 10:30
Ліхтарик L2 вже тут, в zk
Переглянути оригіналвідповісти на0
WenAirdrop
· 08-05 10:14
Промоція в пустоті є щорічною, безкоштовні аірдропи викликають лише зітхання.
Останні досягнення та перспективи застосування технології zk-SNARKs у сфері Блокчейн
Огляд технології zk-SNARKs та її застосування в сфері Блокчейн
Резюме
zk-SNARKs(ZKP) технологія вважається одним із найважливіших інновацій у сфері Блокчейн, а також є ключовою областю уваги венчурного капіталу в останні роки. У цій статті систематично переглядається розвиток технології ZKP за майже 40 років та останні дослідження.
По-перше, представлено основні концепції та історичний фон ZKP. Потім акцентовано увагу на технології ZKP на основі схем, включаючи проекти, застосування та методи оптимізації моделей zkSNARK, Ben-Sasson, Pinocchio, Bulletproofs та Ligero. Що стосується обчислювального середовища, у статті представлені ZKVM та ZKEVM, обговорюється, як вони підвищують потужність обробки транзакцій, захищають конфіденційність і підвищують ефективність верифікації. Стаття також пояснює робочий механізм та методи оптимізації нульового знання Rollup(ZK Rollup) як рішення для розширення Layer 2, а також останні досягнення в апаратному прискоренні, змішаних рішеннях і спеціалізованих ZK EVM.
Насамкінець, стаття розглядає нові концепції, такі як ZKCoprocessor, ZKML, ZKThreads, ZK Sharding та ZK StateChannels, і досліджує їх потенціал у сфері масштабованості Блокчейн, взаємодії та захисту приватності.
Аналізуючи ці ці новітні технології та тенденції розвитку, ця стаття пропонує всебічний погляд на розуміння та застосування технології ZKP, демонструючи її величезний потенціал у підвищенні ефективності та безпеки Блокчейн-систем, забезпечуючи важливу інформацію для прийняття інвестиційних рішень у майбутньому.
Зміст
Передмова
Одне: Основи zk-SNARKs
Два, неінтерактивні zk-SNARKs
Три, основані на схемах zk-SNARKs
Чотири, модель zk-SNARKs
П'ять. Огляд та розвиток нульових знань віртуальної машини
Шість, огляд та розвиток zk-SNARKs Ethereum Virtual Machine
Сім. Огляд та розвиток рішень другого рівня з нульовими доказами
Вісім. Майбутні напрямки розвитку zk-SNARKs
Дев'ять, висновок
Список літератури
Вступ
Інтернет входить в епоху Web3, застосування Блокчейн (DApps) розвивається швидко. У останні роки блокчейн платформи щодня обробляють мільйони активностей користувачів, виконуючи десятки мільярдів транзакцій. Ці транзакції генерують величезну кількість даних, що містять чутливу особисту інформацію, таку як ідентичність користувачів, суми транзакцій, адреси рахунків та залишки. Завдяки відкритості та прозорості блокчейну, ці дані є доступними для всіх, що викликає різноманітні проблеми безпеки та конфіденційності.
Наразі існує кілька криптографічних технологій, які можуть впоратися з цими викликами, включаючи гомоморфне шифрування, кільцеві підписи, безпечні багатосторонні обчислення та zk-SNARKs. Гомоморфне шифрування дозволяє виконувати обчислення, не розшифровуючи зашифровані дані, що допомагає захистити безпеку балансу рахунків і сум транзакцій, але не може захистити безпеку адреси рахунку. Кільцеві підписи пропонують особливу форму цифрового підпису, яка може приховати особу підписувача, тим самим захищаючи безпеку адреси рахунку, але не може забезпечити захист балансу рахунків і сум транзакцій. Безпечні багатосторонні обчислення дозволяють розподілити обчислювальні завдання між кількома учасниками, не розкриваючи жодному з учасників дані інших учасників, що ефективно захищає безпеку балансу рахунків і сум транзакцій, але також не може захистити безпеку адреси рахунку. Крім того, ці технології не можуть використовуватися для перевірки того, чи має довірена сторона достатню суму транзакції в середовищі блокчейну, не розкриваючи суму транзакції, адресу рахунку та баланс рахунку.
zk-SNARKs є більш всеосяжним рішенням, цей протокол верифікації дозволяє перевіряти правильність певних тверджень без розкриття жодних проміжних даних. Цей протокол не потребує складної інфраструктури відкритих ключів, а його повторне виконання також не дає зловмисним користувачам можливості отримати додаткову корисну інформацію. Завдяки ZKP, верифікатор може перевірити, чи має доводчик достатню суму транзакцій, не розкриваючи жодних приватних даних транзакцій. Процес верифікації включає в себе генерацію доказу, що містить суму транзакцій, яку стверджує доводчик, а потім передавання цього доказу верифікатору, який проводить попередньо визначені обчислення та генерує остаточний результат обчислень, щоб зробити висновок про прийняття заяви доводчика. Якщо заява доводчика прийнята, це означає, що вони мають достатню суму транзакцій. Вищезгаданий процес верифікації може бути зафіксований на Блокчейн, без жодного підроблення.
Ця характеристика ZKP робить його центральним гравцем у транзакціях Блокчейн і застосуваннях криптовалют, особливо в питаннях захисту приватності та розширення мережі, що робить його не лише центром академічних досліджень, але й широко вважається однією з найважливіших технологічних інновацій з моменту успішної реалізації технології розподіленого реєстру, а також є ключовою траєкторією для галузевих застосувань і венчурного капіталу.
Відповідно, численні мережеві проекти на основі zk-SNARKs з’явилися один за одним, такі як ZkSync, StarkNet, Mina, Filecoin та Aleo. З розвитком цих проектів інновації в алгоритмах zk-SNARKs з’являються без упину, і, за повідомленнями, майже щотижня з'являються нові алгоритми. Крім того, розробка апаратного забезпечення, пов'язаного з технологією zk-SNARKs, також швидко прогресує, включаючи чіпи, оптимізовані спеціально для zk-SNARKs. Наприклад, деякі проекти вже завершили масштабний збір коштів, і ці досягнення не тільки демонструють швидкий прогрес технології zk-SNARKs, але й відображають перехід від універсального апаратного забезпечення до спеціалізованого, такого як GPU, FPGA та ASIC.
Ці досягнення свідчать про те, що технологія zk-SNARKs є не лише важливим проривом у галузі криптографії, а й ключовим чинником для реалізації більш широких застосувань Блокчейн-технологій, особливо в покращенні захисту приватності та обробної спроможності.
Тому ми вирішили систематизувати знання про zk-SNARKs ( ZKP ), щоб краще допомогти нам у прийнятті інвестиційних рішень у майбутньому. Для цього ми комплексно переглянули основні наукові статті, пов'язані з ZKP, (, відсортувавши їх за релевантністю та кількістю цитувань ); водночас ми також детально проаналізували інформацію та білі книги провідних проектів у цій галузі, ( відсортувавши їх за обсягом фінансування ). Ці комплексні збори та аналізи матеріалів стали міцною основою для написання цієї статті.
Один. Основи zk-SNARKs
1.Огляд
У 1985 році вчені Goldwasser, Micali та Rackoff вперше представили нульові знання у своїй статті «Складність знань інтерактивних доказових систем» (The Knowledge Complexity of Interactive Proof-Systems), визначивши такі терміни, як нульові знання ( Zero-Knowledge Proof, ZKP ) та інтерактивні нульові знання ( Interactive Zero-Knowledge, IZK ). Ця стаття стала основоположною для нульових знань, визначивши багато концепцій, що вплинули на подальші академічні дослідження. Наприклад, визначення знань – це "некероване обчислювальне вихід", тобто знання повинно бути виходом, а також некерованим обчисленням, що означає, що це не може бути простою функцією, а має бути складною функцією. Некероване обчислення зазвичай можна розуміти як NP-проблему, тобто задачу, рішення якої можна перевірити на правильність за поліноміальний час, при цьому поліноміальний час вказує на те, що час виконання алгоритму можна виразити поліноміальною функцією розміру вхідних даних. Це важливий критерій для оцінки ефективності та можливості алгоритмів у комп'ютерних науках. Оскільки процес розв'язання NP-проблем складний, його вважають некерованим обчисленням; однак процес перевірки відносно простий, тому він дуже підходить для перевірки нульових знань.
Класичним прикладом задачі NP є задача комівояжера, в якій потрібно знайти найкоротший шлях для відвідування ряду міст і повернення до початкової точки. Хоча знайти найкоротший шлях може бути важко, перевірити, чи є даний шлях найкоротшим, відносно легко. Адже перевірка загальної відстані конкретного шляху може бути виконана за поліноміальний час.
У своїй статті Голдвассер та ін. ввели концепцію "складності знань", щоб кількісно оцінити обсяг знань, які доводчик розкриває перевіряючому в інтерактивних системах доказів. Вони також запропонували інтерактивні системи доказів (Interactive Proof Systems, IPS), де доводчик (Prover) та перевіряючий (Verifier) через багато раундів взаємодії доводять істинність певного твердження.
Отже, визначення zk-SNARKs, яке підсумували Голдвассер та інші, є особливим інтерактивним доказом, в якому валідатор не отримує жодної додаткової інформації, окрім істинності висловлення; і були висунуті три основні характеристики, які включають:
1.Повнота: якщо доказ є істинним, чесний доказувач може переконати чесного перевіряючого в цьому факті;
Надійність: якщо доводчик не знає змісту заяви, він може обдурити перевіряючого лише з незначною ймовірністю;
Нульові знання: після завершення процесу доказу, перевіряючий отримує лише інформацію "доказувач має ці знання", і не може отримати жодного додаткового вмісту.
2.zk-SNARKs приклад
Для кращого розуміння zk-SNARKs та їхніх властивостей, нижче наведено приклад перевірки того, чи має довіритель певну конфіденційну інформацію. Цей приклад поділений на три етапи: налаштування, виклик і відповідь.
Перший крок: налаштування (Setup)
На цьому етапі мета доказувача полягає в тому, щоб створити доказ, що він знає певне секретне число s, але не показуючи безпосередньо s. Нехай секретне число;
Виберіть два великі прості числа p і q, обчисліть їхній добуток. Нехай прості числа та, обчисліть отримане.
Обчислення, тут v як частина доказу надсилається валідатору, але цього недостатньо, щоб валідатор або будь-який спостерігач змогли зробити висновок про s.
Випадковим чином вибрати ціле число r, обчислити та надіслати його перевіряючому. Це значення x використовується в подальшому процесі перевірки, але також не розкриває s. Нехай випадкове ціле число, обчислене .
Другий крок: виклик (Challenge)
Валідатор випадковим чином вибирає позицію a(, яка може бути 0 або 1), а потім надсилає її довірителю. Це "виклик" визначає кроки, які довіритель повинен зробити далі.
Третій крок: відповідь (Response)
Згідно з a значенням, яке надіслав валідатор, доказувач відповідає:
Якщо доводчик надсилає ( тут r – це число, яке він раніше випадково вибрав ).
Якщо , доводчик обчислює та надсилає. Нехай випадковий біт, надісланий перевіряючим, залежно від значення a, доводчик обчислює ;
Нарешті, валідатори перевіряють, чи дорівнює отримане g . Якщо рівність справедлива, валідатор приймає це підтвердження. Коли , валідатор обчислює , праву частину перевіряючи ; коли , валідатор обчислює , праву частину перевіряючи .
Тут ми бачимо, що перевірник обчислив, що доказник успішно пройшов процес верифікації, при цьому не розкривши своє секретне число s. Тут, оскільки a може приймати лише 0 або 1, існує лише дві можливості, ймовірність того, що доказник пройде верифікацію на удачу, коли a дорівнює 0, становить (. Але перевірник потім знову кидає виклик доказнику, доказник постійно змінює відповідні числа, які подає перевірнику, і завжди успішно проходить процес верифікації, таким чином, ймовірність того, що доказник пройде верифікацію на удачу, безмежно наближається до 0), що підтверджує висновок, що доказник дійсно знає певне секретне число s. Цей приклад доводить цілісність, надійність та нульову знаність системи нульових знань.
( Два, неконтактні zk-SNARKs
)# 1.Фон
zk-SNARKs###ZKP###в традиційних концепціях зазвичай є інтерактивними та онлайн-протоколами; наприклад, протокол Sigma зазвичай вимагає від трьох до п'яти раундів взаємодії для завершення аутентифікації. Однак у таких сценаріях, як миттєві транзакції або голосування, часто немає можливості для багатократної взаємодії, особливо у застосуваннях технології Блокчейн, де функція зовнішньої перевірки є особливо важливою.
(# 2.Введення NIZK
У 1988 році Блум, Фельдман і Мікалі вперше запропонували концепцію неінтерактивних нульових знань )NIZK###, довівши можливість завершення процесу автентифікації між довірителем (Prover) і перевіряльником (Verifier) без необхідності багаторазової взаємодії. Цей прорив зробив здійснення миттєвих транзакцій, голосування та застосувань Блокчейн можливим.
Вони запропонували неінтерактивні zk-SNARKs ( NIZK ).