Незважаючи на те, що криптовалютні транзакції не пов’язані з чиєюсь особистістю, їх зазвичай можна відстежити, оскільки вони публічно реєструються в блокчейні. Якщо ви хочете уникнути цього, вам знадобиться особливий тип криптовалюти, який називається монета приватності. Один з методів, який використовують монети приватності для збереження анонімності транзакцій, – це технологія zk-SNARKs.
Що таке zk-SNARK?
zk-SNARK – це протокол доведення з нульовим знанням, за допомогою якого можна довести, що володієш певною інформацією, не розкриваючи її і без будь-якої взаємодії між сторонами, які доводять і перевіряють інформацію.
Термін “zk-SNARK” – це абревіатура, яка розшифровується як “Zero-Knowledge Succinct Non-Interactive Argument of Knowledge” (“Стислий неінтерактивний аргумент знання з нульовим знанням”). Кожна частина назви вказує на характеристику zk-SNARK, тому вона допомагає розглянути кожну складову окремо:
- Нульові знання: Доказуючий може показати верифікатору, що він володіє певною інформацією, не надаючи саму інформацію.
- Стислість: доказ може бути перевірений протягом декількох мілісекунд, оскільки довжина доказу становить максимум кілька сотень байт.
- Неінтерактивний: Доказ складається з одного повідомлення від того, хто доводить, до того, хто перевіряє.
- Аргумент: Аргумент – це термін, який використовується для цих доказів, оскільки вони не зовсім відповідають традиційному визначенню доказів, але фактично слугують тій самій меті.
- Знання: Знання – це інформація, якою володіє той, хто доводить.
У криптовалюті zk-SNARK – це спосіб зробити транзакції приватними і повністю зашифрованими в блокчейні, але при цьому підтвердженими за допомогою правил консенсусу в мережі. zk-SNARK може показати, що відправник має суму коштів, яку він хоче переказати, не оприлюднюючи цю інформацію.
Пояснення механізму роботи zk-SNARKs
zk-SNARKs походить від концепції доказу з нульовим знанням, яку вперше було представлено в статті 1985 року Шафі Голдвассера, Сільвіо Мікалі та Чарльза Ракоффа. Як пояснювалося раніше, доказ з нульовим знанням – це метод, який дозволяє одній стороні показати лише те, що вона володіє певною інформацією, не розкриваючи саму інформацію або будь-яку додаткову інформацію.
Ранні протоколи з нульовим знанням вимагали, щоб відправник і верифікатор надсилали повідомлення туди і назад. У статті 2012 року Нір Бітанскі, Ран Канетті, Алессандро К’єза та Еран Тромер ввели термін “zk-SNARK” для опису нового протоколу з нульовим знанням. На відміну від попередніх методів, він не вимагатиме взаємодії між верифікатором і верифікатором за межами одного повідомлення.
Співавтор К’єза згодом допоміг заснувати Zcash (ZEC 1,01%), монету конфіденційності, яка була запущена в 2016 році. Вона використовує технологію zk-SNARKs для здійснення приватних транзакцій.
Як працюють zk-SNARKs
У більшості типів криптовалют транзакція підтверджується мережею, яка перевіряє, чи були виконані певні умови. Зокрема, ці умови полягають в тому, що відправник має в наявності кошти і надав правильний приватний ключ, який підтверджує, що кошти належать йому.
zk-SNARK дозволяють відправнику транзакції довести все це, не розкриваючи жодної адреси чи суми. Для цього мережа блокчейн кодує деякі зі своїх правил консенсусу в zk-SNARKs.
Під час процесу транзакції zk-SNARK перетворюють інформацію, яку потрібно довести, на рівняння. Ці рівняння можуть бути оцінені і вирішені без розкриття інформації, що міститься в них.
Переваги та недоліки zk-SNARK
Основними перевагами zk-SNARK є конфіденційність і ефективність, які вони пропонують. Вони захищають конфіденційну інформацію, їхня перевірка займає лічені мілісекунди і не вимагає тривалої взаємодії між учасниками. Все, що потрібно, – це одне повідомлення від верифікатора до верифікатора.
Хоча zk-SNARK не мають кричущих недоліків, якщо у когось є приватний ключ, який використовується для налаштування протоколу, він зможе створювати фальшиві докази і підробляти кошти. Монети конфіденційності, які використовують zk-SNARK, повинні вжити заходів, щоб жодна сторона не мала доступу до цього приватного ключа.
zk-SNARK проти zk-Rollup
zk-SNARK – далеко не єдиний тип доказу нульового знання, який використовується в криптовалютах. Інша поширена технологія – zk-Rollup, рішення для масштабування, яке допомагає Ethereum ефективніше обробляти транзакції.
Роллап об’єднує велику групу транзакцій і перевіряє їх поза мережею, тобто всі операції виконуються поза основним блокчейном Ethereum. Потім вони згортаються в одну транзакцію, яка відправляється на рівень виконання Ethereum.
Існують різні типи згортання. Наприклад, Optimistic Rollups припускає, що транзакції є дійсними, поки не буде доведено, що вони хибні. zk-Rollups, з іншого боку, миттєво перевіряють транзакції і генерують криптографічні докази їхньої дійсності. Докази можуть бути згенеровані за допомогою zk-SNARKs або іншого типу технології доказу з нульовим знанням, zk-STARKs.
Приклади zk-SNARK
Найвідомішим прикладом zk-SNARK є їх використання для захисту криптовалютних транзакцій. Zcash – це перше широке застосування zk-SNARK. Ця приватна монета дозволяє користувачам обирати між приватними та прозорими адресами. Коли користувач обирає приватну адресу, zk-SNARKs захищають дані про транзакції.
Інші блокчейн-проекти також використовують zk-SNARK. Ethereum почав працювати над інтеграцією Zcash і zk-SNARKs у 2017 році. Того ж року Zcash уклав партнерство з JP Morgan Chase (JPM 1,1%) для створення платіжної системи на основі блокчейну з zk-STARKs.
Хоча в даний час zk-SNARK використовуються для приватизації фінансових транзакцій, це не єдине їхнє застосування. В майбутньому ми можемо побачити їх використання для захисту даних людей під час онлайн-активності.
Як застосовуються zk-SNARK
zk-SNARK застосовуються шляхом перетворення інформації, яку потрібно довести, в математичне рівняння. Відправник транзакції будує доказ, який демонструє:
Вхідні та вихідні значення переказу збігаються.
Відправник має приватні витратні ключі для вхідних даних.
Ці приватні ключі криптографічно пов’язані з цифровим підписом транзакції, що гарантує, що її не зможе змінити ніхто, хто не має цих приватних ключів.
Точний спосіб, як це працює, залежить від криптовалюти. Наприклад, Zcash відстежує невитрачені результати транзакцій за допомогою так званих “зобов’язань” і вимагає розкриття “нуліфікатора”, щоб витратити ці зобов’язання. Для того, щоб зберегти зобов’язання і нуліфікатори приватними, вони зберігаються у вигляді хешів.
zk-SNARK – це корисна технологія, а криптовалюти, які її використовують, стали популярними інвестиціями. Хоча монети приватності мають чіткий кейс використання, майте на увазі, що вони нестабільні, і рівень конфіденційності, який вони пропонують, може призвести до регуляторних проблем у майбутньому. Якщо ви вирішили інвестувати в приватні монети, дотримуйтесь консервативного підходу і не вкладайте більше грошей, ніж ви можете дозволити собі втратити.
Яке застосування для zk-SNARK
zk-SNARK застосовуються шляхом перетворення інформації, яку потрібно довести, в математичне рівняння. Відправник транзакції формує доказ, який демонструє:
- Вхідні та вихідні значення транзакції збігаються.
- Відправник має приватні витратні ключі для вхідних даних.
- Ці приватні ключі криптографічно пов’язані з цифровим підписом транзакції, що гарантує, що її не зможе змінити ніхто, хто не має цих приватних ключів.
- Точний спосіб, як це працює, залежить від криптовалюти. Наприклад, Zcash відстежує невитрачені результати транзакцій за допомогою так званих “зобов’язань” і вимагає розкриття “нуліфікатора”, щоб витратити ці зобов’язання. Для того, щоб зберегти зобов’язання і нуліфікатори приватними, вони зберігаються у вигляді хешів.
zk-SNARK – це корисна технологія криптовалюти, яка її використовує. Хоча монети приватності мають чіткий кейс використання, майте на увазі, що вони нестабільні, і рівень конфіденційності, якій вони пропонують, може призвести до регуляторних проблем у майбутньому. Якщо ви вирішили інвестувати в приватні монети, дотримуйтесь консервативного підходу і не вкладайте більше грошей, ніж ви можете дозволити собі втратити.