Ключові висновки

  • Доказ з нульовим знанням дозволяє одній стороні довести, що твердження є істинним іншій стороні, не розкриваючи жодних базових даних.

  • zk-SNARK — це тип протоколу доказу з нульовим знанням, який використовується в крипто для верифікації інформації, наприклад балансів на рахунках, без розкриття приватних деталей.

  • Binance використовує zk-SNARK у поєднанні з деревами Меркла, щоб користувачі могли перевірити, що їхні баланси включено в загальний Proof of Reserves, не розкриваючи дані окремих акаунтів.

  • Крім резервів біржі, ZK-докази все частіше використовуються в ZK-rollups, для верифікації особи та в системах голосування в усьому блокчейн-екосистемі.

Вступ

Користувачі блокчейну цінують як прозорість, так і приватність. У багатьох ситуаціях ці дві цілі здаються такими, що суперечать одна одній: щоб довести, що щось є істинним, часто потрібно розкривати деталі, що лежать під цим. Докази з нульовим знанням пропонують спосіб вирішити цю суперечність.

Використовуючи протоколи доказів з нульовим знанням, такі як zk-SNARK, разом із криптографічними структурами даних на кшталт дерев Меркла, можна довести валідність інформації, не розкриваючи саму інформацію. У цій статті пояснюється, як працюють ці інструменти, і як Binance застосовує їх для Proof of Reserves.

Що таке доказ з нульовим знанням?

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

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

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

Навіщо потрібні докази з нульовим знанням?

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

У крипто типові сценарії використання включають:

  • Доведення володіння приватним ключем без його розкриття.

  • Надання біржі можливості перевірити її загальні резерви користувачів без розкриття балансів окремих акаунтів.

  • Уможливлення масштабованих транзакцій у блокчейні за допомогою ZK-rollups без публікації кожної транзакції в мережі (on-chain).

Ці докази використовують алгоритми, які приймають дані на вході та повертають або true, або false, не витікаючи жодних деталей про сам вхід.

Технічні властивості доказів з нульовим знанням

Коректний доказ з нульовим знанням має відповідати трьом властивостям:

  • Повнота (Completeness). Якщо твердження істинне, чесний верифікатор буде переконаний доказом.

  • Звуковість (Soundness). Якщо твердження хибне, жоден доказувач не зможе переконати верифікатора, що воно істинне.

  • Нульове знання (Zero-knowledge). Якщо твердження істинне, верифікатор не дізнається нічого, окрім самого факту, що воно істинне.

Що таке zk-SNARK?

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

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

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

Що таке дерево Меркла?

Дерево Меркла — це криптографічна структура даних, яка ефективно впорядковує великі обсяги інформації. Кожен фрагмент даних перетворюється на хеш, а ці хеші об’єднуються попарно, доки не буде сформовано один кореневий хеш (root hash). Будь-яка зміна будь-якого вхідного значення змінює кореневий хеш, тож втручання легко виявити.

Хеш-функції

Дерева Меркла залежать від хеш-функцій, щоб працювати. Хешування бере вхід будь-якої довжини та створює вихід фіксованої довжини. Один і той самий вхід завжди дає один і той самий вихід. Навіть крихітна зміна у вхідних даних призводить до повністю іншого результату.

Наприклад, пропускання 100 книг через хеш-функцію SHA-256 дає унікальний рядок із 64 символів. Якщо змінити один символ у цих книгах, результат зміниться повністю. Ця властивість робить легкою перевірку цілісності даних без порівняння всього початкового контенту.

Дерева Меркла в криптовалюті

У блокчейні кожну транзакцію хешують, щоб отримати унікальний вузол-лист. Пари вузлів-лістів об’єднуються й знову хешуються, щоб утворити вузли гілок. Цей процес триває, доки не буде створено один мерклівський корінь (Merkle root). Цей корінь криптографічно узагальнює всі транзакції в блоці.

Для бірж дерева Меркла надають спосіб організувати баланси клієнтів, щоб їх можна було аудитувати без розкриття кожного окремого облікового запису.

Обмеження використання дерев Меркла лише самих по собі

Криптовалютна біржа може побудувати дерево Меркла з усіх балансів рахунків клієнтів, щоб підтримати Proof of Reserves (PoR). Однак без додаткових захистів цей підхід має вразливості.

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

Використання довіреного третього аудитора є одним із можливих рішень, але це потребує довіри і до аудитора, і до даних, до яких він мав доступ.

Як zk-SNARK і дерева Меркла працюють разом

Комбінація zk-SNARK із деревами Меркла усуває потребу довіряти третій стороні. Біржа будує дерево Меркла з усіх балансів користувачів, а потім генерує zk-SNARK-доказ, який математично гарантує:

  • Кожен баланс користувача включено в дерево Меркла (без пропуску акаунтів).

  • Жоден користувач не має від’ємного чистого балансу (тобто немає сфальсифікованих даних).

  • Кореневий хеш (Merkle root) є дійсним і незмінним.

Користувачі можуть перевірити, що їхній власний баланс був унесений до кореня Меркла. Вони також можуть перевірити zk-SNARK-доказ, щоб підтвердити, що дерево було побудовано коректно, не бачачи балансів інших людей.

Як Binance застосовує цю систему

Binance визначає обмеження того, що вона хоче довести, як програмований обчислювальний контур (programmable circuit). Для кожного вузла-ліста з балансом користувача в дереві Меркла контур перевіряє три умови:

  • Активи користувача включені до розрахунку загального чистого балансу.

  • Загальний чистий баланс користувача більший або дорівнює нулю.

  • Кореневий хеш є дійсним після включення даних цього користувача.

Далі Binance генерує zk-SNARK-доказ для всього дерева Меркла. Під час кожного релізу Proof of Reserves Binance публікує мерклівський доказ для кожного користувача та zk-SNARK-доказ разом із його публічними вхідними даними. Будь-хто може незалежно перевірити обидва, використовуючи публічно доступний код з відкритим вихідним кодом.

Такий підхід забезпечує математичну впевненість, а не лише покладається на довіру до аудитора.

Ширші застосування поза Proof of Reserves

Технологія ZK-доказів значно вийшла за межі аудиту бірж. Зараз ZK-rollups — це один із провідних підходів масштабування рівня 2 в Ethereum: вони обробляють транзакції поза основним ланцюгом і надсилають ZK-докази в головний ланцюг, щоб підтвердити коректність. Це може збільшити пропускну здатність, зберігаючи безпеку.

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

Питання та відповіді (FAQ)

Що таке доказ із нульовим знанням простими словами?

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

Чому Binance використовує zk-SNARK для Proof of Reserves?

Binance використовує zk-SNARK, щоб довести, що баланси клієнтів повністю підтверджені, не розкриваючи деталі окремих акаунтів. ZK-доказ надає математичну верифікацію того, що всі акаунти включені та не існує від’ємних балансів, без необхідності, щоб користувачі довіряли аудитору.

У чому різниця між zk-SNARK і ZK-rollups?

zk-SNARK — це тип протоколу доказу з нульовим знанням. ZK-rollups — це рішення для масштабування рівня 2, яке використовує zk-SNARK (або подібні докази), щоб об’єднувати багато транзакцій разом і надсилати один доказ валідності в основний блокчейн. zk-SNARK — це базовий криптографічний інструмент; ZK-rollups — одне із застосувань цього інструменту.

Чи можуть користувачі незалежно перевірити Proof of Reserves від Binance?

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

Чи використовуються докази з нульовим знанням лише для резервів біржі?

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

Заключні думки

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

Додаткове читання

  • Що таке доказ з нульовим знанням і як він впливає на блокчейн?

  • Пояснення zk-SNARK і zk-STARK

  • Що таке ZK-Rollups?

  • Що таке Proof of Reserves і як він працює на Binance

  • Пояснення дерев Меркла та мерклівських коренів

Застереження: цей матеріал надано вам у форматі "як є" лише для загальної інформації та освітніх цілей і без будь-яких гарантій або заяв. Його не слід тлумачити як фінансову, юридичну чи іншу професійну консультацію, а також він не призначений для рекомендації придбання будь-якого конкретного продукту чи послуги. Вам слід звернутися по власну консультацію до відповідних професійних радників. Якщо контент надано стороннім автором, зверніть увагу, що висловлені погляди належать цьому сторонньому автору та не обов’язково відображають позицію Binance Academy. Ціни на цифрові активи можуть бути волатильними. Вартість вашої інвестиції може як знижуватися, так і зростати, і ви можете не повернути суму, яку інвестували. Ви несете повну відповідальність за свої інвестиційні рішення, а Binance Academy не несе відповідальності за будь-які збитки, які ви можете понести. Для отримання додаткової інформації ознайомтеся з нашими Умовами користування, Попередженням про ризики та Умовами Binance Academy.