У складній галузі криптографії докази з нульовим знанням пропонують унікальне рішення, здавалося б, суперечливого завдання: довести знання частини інформації без розкриття самої інформації. У цьому методі шифрування беруть участь дві сторони: довідник і верифікатор. Мета првера — довести, що вони володіють деякою інформацією (назвемо це ;x), не розкриваючи жодних даних про сам ;x;. Про те, що верифікатор дізнається з обміну, це простий факт, що перевіряльник має ці знання. Найголовніше, що верифікатор не має додаткової інформації про ;x;.
Наприклад, коли Сяолін і Сяоші грають у квест, Сяолінг каже Сяолінгу, що зламав пароль певної «скриньки зі скарбами». Але Сяо Лін не бажає прямо ділитися готовою «відповіддю» і не бажає відкривати скриню зі скарбами перед Сяо Теном. Тож як довести Сяо Ши, що він справді розгадав головоломку та знає пароль скрині зі скарбами?
Тож він попросив Сяо Тена написати на аркуші паперу рядок рядків, які знав лише він, одночасно підписати своє ім’я та просунув папір у щілину в скрині зі скарбами.
Потім Сяо Лін відкрив скриньку зі скарбами, вийняв папір, який поклав Сяо Тень, і показав його Сяо Тену. Сяо Тен перевірив, чи правильний рядок і підпис. Це доводить, що Сяо Лін знає пароль скриньки зі скарбами, і цей папірець справді витягли зі скриньки.
Процес дешифрування не був відомий Сяо Тену, і в той же час Сяо Лін довів, що він зламав пароль скриньки зі скарбами.
Доказ нульового знання
У криптографії підтвердження з нульовим знанням (Zero Knowledge Proof, також відомий як; ZKP) або протокол з нульовим знанням — це метод, який дозволяє перевіряючому переконати верифікатор повірити або довести верифікатору правдивість заяви чи твердження.
Доказ із нульовим знанням спочатку запропонували професори Массачусетського технологічного інституту; Шафі Голдвассер, Сільвіо Мікалі; і майстри криптографії; Чарльз Рокофф; три автори в статті «Складність знань інтерактивних доказів». Ця концепція алгоритму заклала певну основу сучасної криптографії.
Докази з нульовим знанням мають дві додаткові властивості: стислість і нульовий рівень знань. Стислість дозволяє верифікатору прийняти правильність великого обчислення без обчислення самого твердження чи представлення. А нульове знання гарантує відсутність витоку даних про введення.
Докази з нульовим знанням мають вирішальне значення для забезпечення конфіденційності та безпеки багатьох криптографічних протоколів. Вони є запобіжником від потенційних витоків інформації, невидимими бронежилетами «криптосвіту». Застосування цих знань можна поширити на різні сфери, включаючи технологію блокчейн і безпечні системи автентифікації, де захист конфіденційних даних має першочергове значення.
Широкий спектр застосування
Блокчейн і криптографія: такі технології блокчейну, як Zcash, використовують докази нульового знання для захисту конфіденційності транзакцій. Особа може довести, що у неї достатньо ;Cypto; валюти для проведення транзакції, не розкриваючи точну суму своїх коштів. Це забезпечує конфіденційність, одночасно забезпечуючи цілісність транзакцій.
Перевірка особи та автентифікація: підтвердження особи з нульовим знанням також можна використовувати для підтвердження особи без розкриття непотрібної інформації. Наприклад, особа може довести, що їй більше 18 років, не вказавши точної дати народження, або підтвердити свою особу, не надавши конфіденційних даних, таких як паролі. Це мінімізує ризик викрадення особистих даних або несанкціонованого доступу.
Захищені багатосторонні обчислення (SMPC): докази з нульовим знанням можуть сприяти складній взаємодії між кількома сторонами, де кожна сторона може довести, що вона дотримується узгодженого протоколу, не розкриваючи специфіку свого введення. Це дуже ефективно в багатьох аспектах, таких як інтелектуальний аналіз даних із збереженням конфіденційності, безпечні системи голосування тощо.
Безпека мережі. Докази з нульовим знанням можуть забезпечувати покращені протоколи безпеки, такі як безпечні політики паролів. Він може перевірити, чи запропонований користувачем пароль відповідає певним стандартам безпеки, не повідомляючи серверу та не записуючи фактичний пароль. Оскільки паролі ніде не зберігаються, потенційні порушення запобігають.
Обмін даними з одночасним захистом конфіденційності. Докази з нульовим знанням можна використовувати, щоб довести, що певні дані відповідають певним вимогам, не розкриваючи самих даних, що особливо важливо в таких сферах, як медичне обслуговування чи фінанси. Положення щодо конфіденційності даних у цих сферах є суворими, але обмін інформацією безпечним способом із збереженням конфіденційності може принести величезні переваги, наприклад, сприяти розвитку медичної кар’єри тощо.
Докази з нульовим знанням відкрили нові технічні можливості в блокчейні. Це можна побачити в різних;Layer 2;ZKSync; і;Polygon;'s;zkEVM; Однак це лише підмножина блокчейнів, створених доказами з нульовим знанням.
Як представити доказ
У цьому розділі та в решті статті ми зосередимося на доказах, побудованих на основі системи доказів ;PLONK;.
PLONK — це система доказів нульового знання, її повна назва
«Перестановки над базами Лагранжа для всесвітніх неінтерактивних аргументів знання», тобто «Глобальна система доказів неінтерактивного знання на основі баз Лагранжа».
По суті, PLONK; — це універсальна, оновлювана система криптографічного підтвердження, інновація, яка дозволяє ефективну перевірку та масштабування в системах блокчейн та інших розподілених мережах.
PLONK; ідея полягає в створенні загальної та оновлюваної системи доказів. У контексті систем підтвердження з нульовим знанням «універсальний» означає, що його можна використовувати для будь-якого типу обчислень; «оновлюваний» означає, що криптографічний довідковий рядок (частина даних, яка використовується для створення та перевірки підтвердження) безпечно оновлюється через час.
PLONK; виділяється своєю ефективністю та простотою, що робить його популярним вибором для проектів і компаній, яким потрібна безпечна приватна система транзакцій. Порівняно з іншими системами, вона використовує менше обмежень на гейт (основну одиницю обчислення, яку ми разом називаємо «шлюз»), що робить обчислення швидшим і більш масштабованим.
Віталік Бутерін; опублікував більш повний опис;PLONK;. [Скопіюйте посилання в браузер, щоб переглянути вихідний текст;
довести
Перш ніж доводити твердження, ми спочатку представляємо твердження в термінах схеми. Схема кодує значення в обчисленні разом із двома іншими типами даних:
Операції: такі як обчислення множення та додавання вхідних даних
Порядок виконання операцій
Щоб закодувати ці дані, PLONKish; схеми представлені як набір векторів і обмежень. Обмеження – це зв’язки, яким повинні підкорятися одиниці у векторі. Типи обмежень: обмеження воріт і обмеження копіювання, які відповідно представляють операції та порядок операцій у схемі.
Існує багато способів вираження схеми за допомогою різних архітектур воріт і схем.
🎛; Представте оператор як схему
Припустимо, що у нас є два вентилі: вентиль множення та вентиль додавання. Вентиль множення представляється у вигляді вектора |a|b|c| довжини;3;.
Якщо вибрано цей гейт, він обмежуватиме ;c; рівним ;a*b. Аналогічно, вентиль додавання виражається як довжина; 3; вектор, якщо вибрано вентиль додавання, тоді; c; дорівнює; a+b. Використовуючи ці вентилі, давайте позначимо скалярний добуток між двома векторами (a,;b) і (c,;d). Для цього нам потрібно виконати наступні розрахунки:
Використовуйте вентиль множення, щоб обчислити; a*b
Обчислити за допомогою вентиля множення; c*d
Обчислення з додатком; ab+cd
Це можна представити вектором.
Зауважте, що вихід першого та другого вентилів множення є вхідним значенням вентиля додавання. Ці дані кодуються окремо від обмежень вентиля в нашій схемі. Це називається обмеженням копіювання.
Отже, чому обмеження схеми важливі? Якби не було обмежень, тоді зловмисний валідатор міг би ввести в схему будь-яке значення, яке йому подобається. Наприклад, верифікатор може замінити ;ab+cd на ;aba*b;. Подібно до смарт-контрактів, обмеження повинні бути перевірені за допомогою системи доказів, перш ніж їх можна буде використовувати.
🎛; доказова заява
Тепер, коли ми можемо представити твердження в термінах схем, як перевіряльник переконає верифікатор, що доказ дійсний? Для системи ;PLONK;, прувер повинен переконати верифікатор, що обмеження шлюзу та обмеження реплікації виконуються. Для обмежень копіювання це робиться шляхом перевірки перестановки.
Перевірку підстановки вперше запропонував Байєр-Грот, а потім розвинув Габізон, Вільямсон і Чіоботару в статті PLONK. Щоб довести обмеження воріт, потрібно обчислити певний частковий поліном.
Інтуїтивно зрозуміло, перевірки перестановки показують, що якщо записи обмежень копіювання переставлені, схема залишається незмінною. 🎛; Замінити чек
Кажемо, що вектор ;a; Ми позначимо це як σ(a)=b. Маючи два вектори: a=(a,;b,...,;c), b=(a',;b',...,;c')$ і перестановку σ, ми хочемо визначити σ (a)=b. Це можна зробити наступним чином:
Подайте вектори як ;a'=((a,;1),(b,;2),...,(c,;n)) і ;b'=((a',σ(;1), ( b',σ(;2)),...,(c',σ(n))). Це кодує вектор відносно перестановки σ.
Перепишіть вектор як поліноміальний вектор: a''=((a+;1;X),(b+;2;X),...,(c+nX)) і ;b''=((a'+ σ(;1)X), (b'+σ(;2)X),..., (c'+σ(n)X))
Перевірити, чи є ;a'' і ;b'' еквівалентними як мультимножини, можна здійснити випадковим вибором ;gamma;, таким чином показуючи $(a+;1;X+γ)(b+;2;X+γ).. .. (c+nX+γ) = (a'+σ(;1)X)+γ)(b'+σ(;2)X+γ)....(c'+σ(n)X +γ )$ .
Вибираючи β навмання, ми можемо перевірити, що ці поліноми еквівалентні за допомогою леми Шварца-Ціпеля; Множини ;a'' і ;b'' еквівалентні як полімножини, якщо вони еквівалентні як поліноми. Якщо вони не є еквівалентними поліномами, то ;a'' і ;b'' не є еквівалентними мультимножинами.
напишіть в кінці
Хоча докази з нульовим знанням є складною темою, їх впровадження зростає. У цій статті ми надали інтуїтивно зрозуміле пояснення того, як працюють докази з нульовим знанням. У майбутньому команда CertiK; ;j; зануриться в застосування доказів із нульовим знанням і як команда може оптимізувати свої схеми для нових випадків використання.
Переглянути оригінал
Контент має виключно довідковий характер і не є запрошенням до участі або пропозицією. Інвестиційні, податкові чи юридичні консультації не надаються. Перегляньте Відмову від відповідальності , щоб дізнатися більше про ризики.
Стаття, щоб зрозуміти доказ нульового знання, що стоїть за ZCash
У складній галузі криптографії докази з нульовим знанням пропонують унікальне рішення, здавалося б, суперечливого завдання: довести знання частини інформації без розкриття самої інформації. У цьому методі шифрування беруть участь дві сторони: довідник і верифікатор. Мета првера — довести, що вони володіють деякою інформацією (назвемо це ;x), не розкриваючи жодних даних про сам ;x;. Про те, що верифікатор дізнається з обміну, це простий факт, що перевіряльник має ці знання. Найголовніше, що верифікатор не має додаткової інформації про ;x;.
Наприклад, коли Сяолін і Сяоші грають у квест, Сяолінг каже Сяолінгу, що зламав пароль певної «скриньки зі скарбами». Але Сяо Лін не бажає прямо ділитися готовою «відповіддю» і не бажає відкривати скриню зі скарбами перед Сяо Теном. Тож як довести Сяо Ши, що він справді розгадав головоломку та знає пароль скрині зі скарбами?
Тож він попросив Сяо Тена написати на аркуші паперу рядок рядків, які знав лише він, одночасно підписати своє ім’я та просунув папір у щілину в скрині зі скарбами.
Потім Сяо Лін відкрив скриньку зі скарбами, вийняв папір, який поклав Сяо Тень, і показав його Сяо Тену. Сяо Тен перевірив, чи правильний рядок і підпис. Це доводить, що Сяо Лін знає пароль скриньки зі скарбами, і цей папірець справді витягли зі скриньки.
Процес дешифрування не був відомий Сяо Тену, і в той же час Сяо Лін довів, що він зламав пароль скриньки зі скарбами.
Доказ нульового знання
У криптографії підтвердження з нульовим знанням (Zero Knowledge Proof, також відомий як; ZKP) або протокол з нульовим знанням — це метод, який дозволяє перевіряючому переконати верифікатор повірити або довести верифікатору правдивість заяви чи твердження.
Доказ із нульовим знанням спочатку запропонували професори Массачусетського технологічного інституту; Шафі Голдвассер, Сільвіо Мікалі; і майстри криптографії; Чарльз Рокофф; три автори в статті «Складність знань інтерактивних доказів». Ця концепція алгоритму заклала певну основу сучасної криптографії.
Докази з нульовим знанням мають дві додаткові властивості: стислість і нульовий рівень знань. Стислість дозволяє верифікатору прийняти правильність великого обчислення без обчислення самого твердження чи представлення. А нульове знання гарантує відсутність витоку даних про введення.
Докази з нульовим знанням мають вирішальне значення для забезпечення конфіденційності та безпеки багатьох криптографічних протоколів. Вони є запобіжником від потенційних витоків інформації, невидимими бронежилетами «криптосвіту». Застосування цих знань можна поширити на різні сфери, включаючи технологію блокчейн і безпечні системи автентифікації, де захист конфіденційних даних має першочергове значення.
Широкий спектр застосування
Блокчейн і криптографія: такі технології блокчейну, як Zcash, використовують докази нульового знання для захисту конфіденційності транзакцій. Особа може довести, що у неї достатньо ;Cypto; валюти для проведення транзакції, не розкриваючи точну суму своїх коштів. Це забезпечує конфіденційність, одночасно забезпечуючи цілісність транзакцій.
Перевірка особи та автентифікація: підтвердження особи з нульовим знанням також можна використовувати для підтвердження особи без розкриття непотрібної інформації. Наприклад, особа може довести, що їй більше 18 років, не вказавши точної дати народження, або підтвердити свою особу, не надавши конфіденційних даних, таких як паролі. Це мінімізує ризик викрадення особистих даних або несанкціонованого доступу.
Захищені багатосторонні обчислення (SMPC): докази з нульовим знанням можуть сприяти складній взаємодії між кількома сторонами, де кожна сторона може довести, що вона дотримується узгодженого протоколу, не розкриваючи специфіку свого введення. Це дуже ефективно в багатьох аспектах, таких як інтелектуальний аналіз даних із збереженням конфіденційності, безпечні системи голосування тощо.
Безпека мережі. Докази з нульовим знанням можуть забезпечувати покращені протоколи безпеки, такі як безпечні політики паролів. Він може перевірити, чи запропонований користувачем пароль відповідає певним стандартам безпеки, не повідомляючи серверу та не записуючи фактичний пароль. Оскільки паролі ніде не зберігаються, потенційні порушення запобігають.
Обмін даними з одночасним захистом конфіденційності. Докази з нульовим знанням можна використовувати, щоб довести, що певні дані відповідають певним вимогам, не розкриваючи самих даних, що особливо важливо в таких сферах, як медичне обслуговування чи фінанси. Положення щодо конфіденційності даних у цих сферах є суворими, але обмін інформацією безпечним способом із збереженням конфіденційності може принести величезні переваги, наприклад, сприяти розвитку медичної кар’єри тощо.
Докази з нульовим знанням відкрили нові технічні можливості в блокчейні. Це можна побачити в різних;Layer 2;ZKSync; і;Polygon;'s;zkEVM; Однак це лише підмножина блокчейнів, створених доказами з нульовим знанням.
Як представити доказ
У цьому розділі та в решті статті ми зосередимося на доказах, побудованих на основі системи доказів ;PLONK;.
PLONK — це система доказів нульового знання, її повна назва
«Перестановки над базами Лагранжа для всесвітніх неінтерактивних аргументів знання», тобто «Глобальна система доказів неінтерактивного знання на основі баз Лагранжа».
По суті, PLONK; — це універсальна, оновлювана система криптографічного підтвердження, інновація, яка дозволяє ефективну перевірку та масштабування в системах блокчейн та інших розподілених мережах.
PLONK; ідея полягає в створенні загальної та оновлюваної системи доказів. У контексті систем підтвердження з нульовим знанням «універсальний» означає, що його можна використовувати для будь-якого типу обчислень; «оновлюваний» означає, що криптографічний довідковий рядок (частина даних, яка використовується для створення та перевірки підтвердження) безпечно оновлюється через час.
PLONK; виділяється своєю ефективністю та простотою, що робить його популярним вибором для проектів і компаній, яким потрібна безпечна приватна система транзакцій. Порівняно з іншими системами, вона використовує менше обмежень на гейт (основну одиницю обчислення, яку ми разом називаємо «шлюз»), що робить обчислення швидшим і більш масштабованим.
Віталік Бутерін; опублікував більш повний опис;PLONK;. [Скопіюйте посилання в браузер, щоб переглянути вихідний текст;
довести
Перш ніж доводити твердження, ми спочатку представляємо твердження в термінах схеми. Схема кодує значення в обчисленні разом із двома іншими типами даних:
Щоб закодувати ці дані, PLONKish; схеми представлені як набір векторів і обмежень. Обмеження – це зв’язки, яким повинні підкорятися одиниці у векторі. Типи обмежень: обмеження воріт і обмеження копіювання, які відповідно представляють операції та порядок операцій у схемі.
Існує багато способів вираження схеми за допомогою різних архітектур воріт і схем.
🎛; Представте оператор як схему
Припустимо, що у нас є два вентилі: вентиль множення та вентиль додавання. Вентиль множення представляється у вигляді вектора |a|b|c| довжини;3;.
Якщо вибрано цей гейт, він обмежуватиме ;c; рівним ;a*b. Аналогічно, вентиль додавання виражається як довжина; 3; вектор, якщо вибрано вентиль додавання, тоді; c; дорівнює; a+b. Використовуючи ці вентилі, давайте позначимо скалярний добуток між двома векторами (a,;b) і (c,;d). Для цього нам потрібно виконати наступні розрахунки:
Зауважте, що вихід першого та другого вентилів множення є вхідним значенням вентиля додавання. Ці дані кодуються окремо від обмежень вентиля в нашій схемі. Це називається обмеженням копіювання.
Отже, чому обмеження схеми важливі? Якби не було обмежень, тоді зловмисний валідатор міг би ввести в схему будь-яке значення, яке йому подобається. Наприклад, верифікатор може замінити ;ab+cd на ;aba*b;. Подібно до смарт-контрактів, обмеження повинні бути перевірені за допомогою системи доказів, перш ніж їх можна буде використовувати.
🎛; доказова заява
Тепер, коли ми можемо представити твердження в термінах схем, як перевіряльник переконає верифікатор, що доказ дійсний? Для системи ;PLONK;, прувер повинен переконати верифікатор, що обмеження шлюзу та обмеження реплікації виконуються. Для обмежень копіювання це робиться шляхом перевірки перестановки.
Перевірку підстановки вперше запропонував Байєр-Грот, а потім розвинув Габізон, Вільямсон і Чіоботару в статті PLONK. Щоб довести обмеження воріт, потрібно обчислити певний частковий поліном.
Інтуїтивно зрозуміло, перевірки перестановки показують, що якщо записи обмежень копіювання переставлені, схема залишається незмінною. 🎛; Замінити чек
Кажемо, що вектор ;a; Ми позначимо це як σ(a)=b. Маючи два вектори: a=(a,;b,...,;c), b=(a',;b',...,;c')$ і перестановку σ, ми хочемо визначити σ (a)=b. Це можна зробити наступним чином:
Подайте вектори як ;a'=((a,;1),(b,;2),...,(c,;n)) і ;b'=((a',σ(;1), ( b',σ(;2)),...,(c',σ(n))). Це кодує вектор відносно перестановки σ.
Перепишіть вектор як поліноміальний вектор: a''=((a+;1;X),(b+;2;X),...,(c+nX)) і ;b''=((a'+ σ(;1)X), (b'+σ(;2)X),..., (c'+σ(n)X))
Перевірити, чи є ;a'' і ;b'' еквівалентними як мультимножини, можна здійснити випадковим вибором ;gamma;, таким чином показуючи $(a+;1;X+γ)(b+;2;X+γ).. .. (c+nX+γ) = (a'+σ(;1)X)+γ)(b'+σ(;2)X+γ)....(c'+σ(n)X +γ )$ .
Вибираючи β навмання, ми можемо перевірити, що ці поліноми еквівалентні за допомогою леми Шварца-Ціпеля; Множини ;a'' і ;b'' еквівалентні як полімножини, якщо вони еквівалентні як поліноми. Якщо вони не є еквівалентними поліномами, то ;a'' і ;b'' не є еквівалентними мультимножинами.
напишіть в кінці
Хоча докази з нульовим знанням є складною темою, їх впровадження зростає. У цій статті ми надали інтуїтивно зрозуміле пояснення того, як працюють докази з нульовим знанням. У майбутньому команда CertiK; ;j; зануриться в застосування доказів із нульовим знанням і як команда може оптимізувати свої схеми для нових випадків використання.