MantaPay, сервіс, який пропонує приватні платежі між двома сторонами, досягає своєї конфіденційності, використовуючи підтвердження нульових знань (ZKPs), щоб гарантувати дійсність транзакції без публікації будь-якої особистої інформації в блокчейні. ZKP є основою функції збереження конфіденційності Manta Network, щоб забезпечити конфіденційність усіх криптоактивів і реалізувати бачення Мережі як рівня конфіденційності для Web3.
Тип ZKP, який використовує Manta, потребує певної інфраструктури, тому нам потрібна надійна установка. У цій публікації ми розглянемо, що таке надійне налаштування та як воно забезпечить безпеку Manta Network.
Що таке довірене налаштування?
Довірене налаштування є частиною інфраструктури, необхідної для створення ZKP. Ідея ZKPs полягає в тому, що хтось (доказник) може довести правильність твердження комусь іншому (верифікатору), не розкриваючи жодної інформації. Щоб згенерувати ZKP, і перевіряюча, і верифікаційна сторони повинні взяти на себе певний спільний секрет і використовувати цей спільний секрет для генерації відкритих параметрів. Довірене налаштування — це те, як ми генеруємо ключі перевірки та верифікації, необхідні для створення транзакції в мережі Manta/Calamari. Ці ключі потрібно обчислити перед запуском продукту конфіденційності, звідси термін «налаштування». Крім того, під час обчислення цих ключів утворюється деяка кількість токсичних відходів, які потрібно викинути, отже, термін «надійний» (це означає, що ви вірите, що токсичні відходи викинули).
Ці ключі є центральними для всього, що ми робимо в нашій мережі, тому важливо, щоб вони були створені правильно. Існують складні конкретні математичні правила щодо того, як вони повинні бути сформовані, головна ідея полягає в тому, що ми починаємо з секретного числа, виконуємо кілька досить інтенсивних обчислень, а потім у нас є ключі перевірки/верифікації.
Коли довірене налаштування стане безпечним?
Важливо знати, що практично неможливо визначити секретне число, з якого ми почали, якщо кожному надано ключі перевірки/верифікатора. Однак якщо хтось коли-небудь дізнається це секретне число, він зможе використати його для створення підроблених доказів. Вони могли використовувати ці підроблені докази, щоб брехати мережі та створювати токени з повітря.
Тому дуже важливо, щоб ми викинули цей секретний номер після формування ключів перевірки/верифікації. Цей секретний номер настільки небезпечний, що ми називаємо його токсичними відходами. Ось звідки виникає «довіра» до «довіреної установки»: користувачі мережі мають вірити, що токсичні відходи було викинуто (це означає, що секретний номер було видалено з пам’яті після генерації ключів).
Отже, кому ми можемо довірити обчислення ключів?
Будь-хто, хто знає секретне число, може створювати жетони з повітря, тому спокуса зберегти токсичні відходи занадто велика для будь-якої людини (за винятком, можливо, Фродо Беггінса, але, на жаль, він несправжній…).
На щастя, є спосіб розділити цей тягар за допомогою процедури під назвою «безпечне багатостороннє обчислення». Нижче ми надамо більше деталей, але ідея полягає в тому, що замість того, щоб одна людина знала про токсичні відходи, ми розбиваємо токсичні відходи на сотні чи навіть тисячі частин, які зберігаються різними людьми. Потім відбувається щось магічне: доки одна людина викидає свій шматок токсичних відходів, неможливо з’ясувати секретне число — це означає, що ніхто не може створювати підроблені докази, тому жодні монети ніколи не будуть зроблені з повітря. (Уявіть, наскільки легшим було б життя Гаррі Поттера, якби йому потрібно було знищити лише один горокракс, щоб назавжди позбутися Волдеморта…)
Тож довіряти нашій установці означає вірити, що із сотень чи тисяч людей, які брали участь, принаймні одна людина знищила свою частину токсичних відходів. Іншими словами, будь-яка зловмисна змова з метою виявлення секретного номера вимагала б, щоб буквально кожен окремий учасник був залучений у змову або скомпрометований нею. Оскільки все більше людей бере участь у нашій церемонії, це стає все менш і менш імовірним.
Найкраще те, що ви самі можете забезпечити безпеку ключів перевірки/верифікатора, взявши участь у церемонії та знищивши свої токсичні відходи. Поки ви впевнені, що брали участь чесно, ви можете бути впевнені, що налаштування заслуговує довіри.
Що саме відбувається під час церемонії довіреного налаштування?
У церемонії буде багато учасників (включно з вами, якщо ви бажаєте). Кожен учасник виконає складні обчислення на своєму комп’ютері (не хвилюйтеся, є сценарій, який зробить усі обчислення за вас), і це обчислення призведе до токсичних відходів. Учасник знищує токсичні відходи (знову ж таки, сценарій зробить це автоматично), а потім повідомляє результат своїх обчислень.
Manta перевірить, чи правильно учасник виконав обчислення, а потім передасть результат наступному учаснику. Це відбуватиметься знову і знову, утворюючи ланцюжок із сотень учасників, кожен з яких зробив внесок у ключі перевірки/верифікатора, а потім викинув свої токсичні відходи. Наприкінці церемонії будуть отримані остаточні ключі перевірки/верифікатора. Поки хоча б один учасник знищив свої токсичні відходи, ці ключі будуть безпечними для використання в ЖКП.
Скільки часу займає церемонія?
Математика складна, але обчислення швидкі. Кожен учасник повинен буде завантажити трохи менше 20 Мб даних, виконати деякі обчислення, які займають від 1 до 5 хвилин (залежно від вашої машини), а потім завантажити 20 Мб даних на наш сервер. Буде близько 1 хвилини простою, поки ми перевіримо правильність обчислень для кожного учасника, а потім перейдемо до наступного учасника. Це не повинно займати більше 10 хвилин на одного учасника.
Що відбувається після церемонії?
Під час церемонії будуть створені ключі підтвердження/перевірки, які забезпечують роботу протоколу MantaPay. Ці ключі будуть оприлюднені. Ми розгорнемо протокол MantaPay на Calamari/Manta та, можливо, на інших за допомогою ключів підтвердження/підтвердження, згенерованих під час церемонії.
Інші ресурси:
Trusted SetUps використовуються різними протоколами конфіденційності, такими як Zcash, Aztec і Aleo, щоб допомогти мережам стати повністю ненадійними. Існують різні типи надійних налаштувань, ви можете дізнатися більше про це в цій публікації Віталіка або в подкасті Zk.
