ЩО ТАКЕ ZK-SNARK? Доведення з нульовим пізнанням




ЩО ТАКЕ ZK-SNARK? Доведення з нульовим пізнанням.

Тема конфіденційності є центральним елементом ідеї криптовалюта, а поліпшення конфіденційності є постійним завданням. Віталік Бутерін розглядає реалізацію zk-SNARK в рамках дорожньої карти Ethereum, і Zcash вже використовує її як невід’ємну частину свого рішення для забезпечення конфіденційності.

zk-SNARK розшифровується як Zero-Knowledge Succinct Non-Interactive Argument of Knowledge, і працює, щоб довести певні умови, не розкриваючи інформацію, яка повинна бути конфіденційною. Розберемо це на складові частини, щоб було легше зрозуміти.

Zero-knowledge (нульове розголошування) = зберігає конфіденційність і таємність

Succinct (короткий) = докази зазвичай перевіряються протягом мілісекунд

Non-Interactive (не інтерактивні) = конструкція докази, де повідомлення може бути відправлено з перевірки в верифікатор без необхідності постійно відправляти повідомлення туди і назад

Argument of Knowledge (доказ) = провідник може переконати верифікатори в тому, що існує певна інформація, і до неї можна отримати доступ, не розкриваючи при цьому всю інформацію цілком.

Простіше кажучи, докази з нульовим розголошенням дозволяють здійснювати транзакції між двома сторонами, де кожна сторона може перевіряти іншу на предмет можливості отримання доступу до певного набору інформації, яка існує, навіть не розкриваючи, що це за інформація.

Денис (доводить) може довести Василю (верифікатори), що твердження вірне, не розкриваючи всю інформацію цілком. Денис може переконати Василя, що інформація існує, і що ще більш важливо, що він може отримати доступ до цієї інформації, навіть не розкриваючи, що це насправді ( «Так точно тобі кажу, все є! Але показувати не буду»)

І ось ще приклад на той випадок, якщо вам буде потрібно пояснити цю тему п’ятирічці. Дійові особи ті ж:

Денис і Вася підходять до містичної печері, у якій є чарівна секретна двері ззаду. Містична печера кругла, з входом спереду і чарівної зачиненими дверима, яка блокує сторону А від сторони Б. Денис каже Васі, що він знає секретний пароль, щоб відкрити чарівну двері в задній частині печери, але це секретне слово він вважає за краще зберігати в секреті. Василь цілком розумно не вірить Денису, і просить його довести це. У містичної печері є тільки два шляхи: A зліва і B справа. Денис може піти будь-яким шляхом, в залежності від того, як душа ляже, але Василь при цьому не повинен бачити, яким шляхом піде Денис, тому Вася чекає зовні печери.

Через кілька хвилин Вася входить в печеру і кричить Денису. Він може попросити його вийти з печери з будь-якого шляху А чи В, обраного навмання, так як він не знає, яким шляхом той пішов. Денис знає секретне слово магічної двері в задній частині печери і може з’являтися з обох сторін незалежно від того, що вибирає Вася.

На зображенні нижче Денис пішов шляхом А, а потім Вася підійшов до входу і попросив його вийти з боку В. Денис кричить «Без проблем!» і використовує секретне слово, щоб відкрити чарівну двері і виходить з боку В.

Звичайно, можна подумати, що є ймовірність 50/50, що запит Васі співпаде з тим, куди насправді пішов Денис, і Денис насправді не знає ніякого пароля.

Ось чому, щоб перевірити достовірність, цю вправу повторюється багато разів, поки Вася не буде переконаний. Припустимо, що вони виконували цю вправу 15 разів, і всі 15 разів Денис вийшов з правильного шляху. Ймовірність збігу обраних Денисом і Васею шляхів була б вкрай мала, або не існувала б зовсім.

Докази з нульовим розголошенням не є математичними доказами, так як існує невелика ймовірність помилки, тому ці докази є по своїй природі ймовірносними.

Докази з нульовим розголошенням повинні задовольняти трьом основним властивостям (з мінімальною ймовірністю помилки):

Повнота. У доводить є спосіб переконати верифікатори, що будь-яке твердження вірно

Надійність — жоден читер не може переконати верифікатори в хибному затвердження

Нульове знання. Якщо доводить може переконати і підтвердити, що твердження істинне, верифікатор все ще не має базової інформації і не знає нічого, крім твердження, що це правда.

Zk-SNARK захищає транзакції і забезпечує конфіденційність і приватність, тому Zcash інтегрує технологію в свою криптовалюта. Це тільки один з багатьох варіантів використання для zk-SNARK, але з урахуванням його обчислювальної складності, все ще недоцільно використовувати його за межами сфери валюти, орієнтованої на конфіденційність. Теоретично ви можете використовувати zk-SNARK для перевірки будь-якої транзакції або відносин між двома сторонами, не розкриваючи інформації між сторонами.

Ухвалення Zk-SNARK Ethereum’ом було б, щонайменше, гейм-чейнджером.