Церемонія довіреного встановлення в мережі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Церемонія довіреного встановлення в мережі

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

Блокчейн-проекти проводять церемонії багатьма креативними способами – залучаючи паяльні лампи, радіоактивний пил і літаки – але всі вони мають щось спільне: усі вони включають централізованого координатора. У цій роботі ми демонструємо, як децентралізувати процес шляхом заміни централізованого координатора на смарт-контракт. Крім того, ми відкриваємо бібліотеку, яка дозволяє будь-кому провести таку церемонію – відома криптопрактикам як Кейт-Заверуча-Голдберг (KZG) або церемонія «сила тау» – на ланцюжку Ethereum. Кожен може взяти участь, просто сплативши комісію за трансакцію!

Наш децентралізований підхід має обмеження, але він все одно корисний. Через поточні обмеження даних у мережі, розмір криптографічних параметрів має бути коротким, тобто не більше 64 Кб. Але кількість учасників не обмежена, і люди можуть надсилати внески безперервно. Програми для цих коротких параметрів включають невеликі SNARK з нульовим знанням, вибірка доступності даних та Веркле дерева.

Історія та механізм церемонії довіреного встановлення

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

Деякі з найвидатніших церемоній були керується Zcash, блокчейн-проект, орієнтований на конфіденційність. Учасники цих церемоній генерували загальнодоступні параметри, розроблені, щоб дозволити користувачам Zcash створювати та перевіряти приватні криптовалютні транзакції. Шість учасників провели першу церемонію Zcash, Sprout, у 2016 році. Два роки потому криптодослідник Аріель Габізон, нині головний науковий співробітник ацтекскій, знайдено руйнівна помилка в дизайні церемонії, який був успадкований від а фундаментальна дослідницька робота. Уразливість могла дозволити зловмисникам створювати необмежену кількість монет Zcash без виявлення. Команда Zcash зберігала вразливість у таємниці протягом семи місяців, доки не було оновлено систему, Саплінг, у церемонії якого взяли участь 90 учасників, не звернув увагу на проблему. Хоча атака, заснована на дірці в безпеці, не вплинула б на конфіденційність транзакцій користувачів, перспектива нескінченної підробки підірвала передумову безпеки Zcash. (Теоретично неможливо дізнатися, чи відбувся напад.)

Іншим яскравим прикладом довіреної установки є вічна церемонія «сила Тау». призначені в першу чергу для Семафор, технологія збереження конфіденційності для анонімної сигналізації в Ethereum. Установка використовувала еліптичну криву BN254 і наразі мала 71 учасника. Інші видатні проекти пізніше використовували цю установку для проведення власних церемоній на вершині, зокрема Торнадо.Готівка (нещодавно санкціонований урядом США), Гермез мережі та Loopring. ацтекскій провів подібну церемонію на еліптичній кривій BLS12_381 зі 176 учасниками для zkSync, рішення для масштабування Ethereum «другого рівня», яке використовує нульове зведення знань. filecoin, децентралізований протокол зберігання даних, провів церемонію з 19 і 33 учасниками, відповідно, на першому та другому етапі, розгалужуючи оригінальне репо. Celo, блокчейн рівня 1, також провели церемонію для свого легкого клієнта Plumo.

Вічні церемонії не мають обмежень щодо кількості учасників. Іншими словами, замість того, щоб довіряти іншим людям проведення довіреної церемонії налаштування, КОЖЕН може брати участь у будь-якому ступені безпеки, який його влаштовує. Єдиний надійний учасник забезпечує безпеку всіх результуючих параметрів; ланцюг настільки міцний, наскільки міцна його ланка. Вічні церемонії можуть тривати, як випливає з назви, безперервно, як це було передумовою для оригінальної церемонії сили тау. Тим не менш, проекти часто вирішують конкретний час початку та завершення своїх церемоній, таким чином вони можуть вставляти отримані параметри у свої протоколи та не турбуватися про їхнє постійне оновлення.

Найближчим часом Ethereum планує провести меншу церемонію довіреного налаштування ProtoDankSharding та DankSharding оновлення. Ці два оновлення збільшать обсяг даних, які мережа Ethereum надає клієнтам для зберігання. Ці дані матимуть запропонований термін дії 30-60 днів. Церемонія є в активній розробці, І запланований триватиме шість тижнів на початку наступного року. (Побачити kzg-ceremony-spec для більш детальної інформації.) Очікується, що це буде найбільша церемонія довіреного встановлення для блокчейнів, яка проводилася досі.

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

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

Координація церемоній довіреного встановлення

Ось весела добірка цитат деяких попередніх учасників довіреної церемонії встановлення:

  • "…паяльну лампу використовували для того, щоб методично нагрівати електроніку повністю по частинах, поки все не почорніло…"- Пітер Тодд на фізичне знищення місцевих секретів.
  • «У мене є шматок тканини, який містить графітовий пил [з] активної зони [Чорнобильського] реактора… Ви підраховуєте кожні чотири імпульси [від лічильника Гейгера, підключеного до мікроконтролера], і ви порівнюєте інтервал часу між першим імпульсом і два та часовий інтервал між третім і четвертим імпульсом, і якщо він більший, ви отримаєте нуль, якщо менший, ви отримаєте одиницю». «...ми збираємося сісти в цей літак і згенерувати наші випадкові числа...» - Раян Пірс і Ендрю Міллер на таємне покоління.

У 41 раунді церемонії Zcash powers-of-tau брав участь літак. Знімок екрана: відео YouTube

  • "Продавець сказав, що у них 13 [комп’ютерів]. Я запитав, чи можемо ми вибрати один із 13. Він запитав, чи є щось, що я шукаю зокрема (збентежений, оскільки всі вони однакові), і я сказав, що просто хочу вибрати випадковий. Він сказав, що не може пустити нас на задній склад. Я запитав, чи приведе він двох із них, щоб ми могли вибрати одного з двох. Двох вивіз на ручному візку. Джеррі вибрав один із двох комп’ютерів, і ми віднесли його до реєстру, щоб перевірити."- Пітер Ван Валкенбург при отриманні нової машини.
  • "Перші кілька годин церемонії проводилися в імпровізованій клітці Фарадея з алюмінієвої фольги та харчової плівки. Я вийняв ноутбук із клітки Фарадея, оскільки він мав погану вентиляцію та ставав гарячим на дотик"- Ко Вей Цзе на захист бічного каналу.
  • ".. провів одну частину церемонії в горах без сусідів."- Михайло Лапінський на захист бічного каналу.
  • "Я вирішив використати відео оточення, щоб створити достатню ентропію"- Мухд Амруллах на генерацію випадкових значень.
Церемонія довіреного встановлення в мережі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

За Вілкокс, брат співзасновниці Zcash Зуко Вілкокс, знищує комп’ютер, який використовувався для генерації випадкових чисел для довіреної церемонії в 2016 році. Фото: Морген Пек

Усі ці церемонії покладалися на централізованого координатора. Координатор — це фізична особа, приватний сервер або інша організація, якій доручено реєструвати та впорядковувати учасників, діяти як ретранслятор, пересилаючи інформацію від попереднього учасника до наступного, і вести централізований журнал усіх комунікацій для перевірки. Координатор, як правило, також відповідає за надання журналу для громадськості на постійній основі; звичайно, яУ централізованій системі завжди існує ймовірність втрати даних або неправильного керування ними. (Наприклад, Perpetual-powers-of-tau зберігається в Microsoft Azure та Github.)

Нам здалося дивним те, що криптопроекти повинні покладатися на централізовані церемонії довіреного налаштування, коли децентралізація є таким основним принципом криптоетику. Тож ми вирішили продемонструвати доцільність проведення невеликої церемонії для perpetual-powers-of-tau безпосередньо в блокчейні Ethereum! Налаштування повністю децентралізоване, без дозволу, стійке до цензури та безпечне, доки будь-який із учасників є чесним [див. відмови від відповідальності]. Участь у церемонії коштує лише від 292,600 17,760,000 до 7 400 8 газу (приблизно від 1024 до XNUMX доларів США за поточними цінами), залежно від розміру бажаних кінцевих параметрів (у цьому випадку від XNUMX до XNUMX ступенів тау). (Дивіться таблицю нижче, щоб дізнатися про конкретні витрати – ми докладніше розглянемо ці розрахунки далі в публікації.)

Церемонія довіреного встановлення в мережі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Поки що ми радимо не використовувати код для будь-яких інших цілей, крім експериментальних! Ми будемо дуже вдячні, якщо хтось, хто виявить будь-які проблеми з кодом, повідомить про це нам. Ми хотіли б зібрати відгуки та перевірити наш підхід.

Розуміння церемонії KZG або «сила Тау».

Давайте розглянемо одну з найпопулярніших довірених установок, яка відома як церемонія KZG, або «сила тау». Кредит співзасновника Ethereum Віталіка Бутеріна, чий допис у блозі про надійні налаштування повідомили наші ідеї в цьому розділі. Налаштування генерує кодування powers-of-tau, названого так тому, що «tau» є змінною, яка використовується для вираження секретів, створених учасниками:

pp = [[𝜏]1, [𝜏2]1, [𝜏3]1, …, [𝜏n]1; [𝜏]2, [𝜏2]2, …, [𝜏k]2]

Для деяких додатків (наприклад, Groth16, популярна схема перевірки zkSNARK, розроблена Йенсом Гротом у 2016 році), за першою фазою налаштування слідує друга фаза, церемонія багатосторонніх обчислень (MPC), яка генерує параметри для певної схеми SNARK. . Однак наша робота зосереджена виключно на першій фазі. Ця перша фаза – генерація power-of-tau – вже є корисною як фундаментальний будівельний блок для універсальних SNARK (наприклад, PLONK і SONIC), а також для інших криптографічних програм, таких як Зобов'язання KZG, Веркле дерева та вибірка доступності даних (DAS). Як правило, універсальні параметри SNARK повинні бути дуже великими, щоб вони могли підтримувати великі та корисні схеми. Схеми, які містять більше вентилів, як правило, більш корисні, оскільки вони можуть захоплювати великі обчислення; кількість ступенів тау приблизно відповідає кількості воріт у схемі. Отже, типова установка матиме розмір |pp| = ~40 ГБ і здатний підтримувати схеми з ~228 ворота. Враховуючи поточні обмеження Ethereum, було б неможливо розмістити такі великі параметри в ланцюжку, але меншу церемонію довіреного налаштування, корисну для невеликих ланцюгів SNARK, дерев Verkle або DAS, можна запустити в ланцюжку.

Ethereum Foundation планує запустити кілька менших церемонії для ступенів розміром від 200 КБ до 1.5 МБ. Хоча більші церемонії можуть здаватися кращими, враховуючи, що більші параметри можуть створити більш корисні схеми SNARK, більші, насправді, не завжди кращі. Деякі додатки, такі як DAS, спеціально потребують меншого! [Причина дуже технічна, але якщо вам цікаво, це тому, що налаштування з n степенями (у G1) дозволяє тільки KZG-зобов’язання для поліномів ступеня ≤ n, що є вирішальним для того, щоб поліном під KZG-зобов’язанням можна було реконструювати з будь-яких n оцінок. Ця властивість забезпечує вибірку доступності даних: кожного разу, коли t випадкових оцінок полінома успішно отримано (вибірково), це дає впевненість, що поліном може бути повністю реконструйований з імовірністю t/n. Якщо ви хочете дізнатися більше про DAS, перегляньте цю публікацію Бутеріна на форумі Ethereum Research.]

Ми розробили смарт-контракт, який можна розгорнути в блокчейні Ethereum для проведення церемонії надійного налаштування. Контракт зберігає загальнодоступні параметри – power-of-tau – повністю в ланцюжку та збирає участь через транзакції користувачів.

Новий учасник спочатку читає ці параметри:

pp0 = ([𝜏]1, [𝜏2]1, [𝜏3]1, …, [𝜏n]1; [𝜏]2, [𝜏2]2, …, [𝜏k]2),

потім бере випадковий секрет 𝜏' і обчислює оновлені параметри:

pp1 = ([𝜏𝜏']1, [(𝜏𝜏')2]1, [(𝜏𝜏')3]1, …, [(𝜏𝜏')n]1; [𝜏𝜏']2, [(𝜏𝜏')2]2, …, [(𝜏𝜏')k]2),

і публікує їх у мережі з доказом, який демонструє три речі:

  1. Знання дискретного логарифму: учасник знає 𝜏'. (Доказ того, що останній внесок у церемонію довіреного налаштування базується на роботі всіх попередніх учасників.)
  2. Правильна сформованість пп1: елементи дійсно кодують додаткові повноваження. (Перевірка правильно сформованого внеску нового учасника в церемонію.)
  3. Оновлення не стирається: 𝜏' ≠ 0. (Захист від зловмисників, які намагаються підірвати систему, видаляючи минулу роботу всіх учасників.)

Смарт-контракт перевіряє підтвердження і, якщо воно правильне, оновлює загальнодоступні параметри, які він зберігає. Ви можете знайти більше деталей про математику та міркування, що стоять за нею, у репо.

Розрахунок витрат на газ

Основна проблема запуску налаштування в ланцюжку полягає в тому, щоб церемонія довіреного налаштування була максимально ефективною з використання газу. В ідеалі подання внеску коштуватиме не більше ~50 доларів США. (Великі проекти можуть субсидувати газ для вкладників, у такому випадку легше уявити наявність сотень учасників, кожен з яких витрачає 100 доларів США). Нижче ми надаємо докладнішу інформацію про найдорожчі частини установки. Менші витрати на газ зменшать вартість внесків і дозволять побудувати більші параметри (більше тау-потужностей і більші схеми SNARK)!

Наше налаштування працює для еліптичної кривої BN254 (також відомої як BN256, BN128 і alt_bn128), яка підтримує наступні попередньо складені контракти на Ethereum:

  • ECADD дозволяє додавати дві точки еліптичної кривої, тобто обчислювати [𝛼+𝛽]1 від [𝛼]1 і [𝛽]1: газ коштує 150
  • ECMULT дозволяє точкам еліптичної кривої помножити на скаляр, тобто обчислити [a*𝛼]1 від a та [𝛼]1: газ коштує 6,000
  • ECPAIR дозволяє перевірити добуток пар еліптичних кривих, тобто обчислити e([𝛼1]1, [𝛽1]2)* … *e([𝛼1]1, [𝛽1]2) = 1, що еквівалентно перевірці цього 𝛼1*𝛽1+ … + 𝛼k*𝛽k = 0 : вартість газу 34,000 45,000 * k + XNUMX XNUMX

Може Ethereum увімкнути BLS12_381 (як запропоновано в ЕІП-2537), наш договір про встановлення також можна легко змусити працювати для цієї іншої кривої.

Давайте оцінимо вартість газу для оновлення налаштувань до ([𝜏]1, [𝜏2]1, [𝜏3]1, …, [𝜏n]1; [𝜏]2):

  1. Вартість газу для перевірки доказів. Кожен учасник оновлює налаштування та подає підтвердження з трьома компонентами, як описано вище. Компоненти 1 і 3 доказу – «знання дискретного журналу» та «оновлення не стирається» – дуже дешево перевірити. Завдання полягає в перевірці компонента 2 «правильність сформованості пп1», на ланцюжку. Для цього потрібне велике мультискалярне множення (MSM) і дві пари:
    e(𝝆0[1]1 + 𝝆1[𝜏]1 + 𝝆2[𝜏2]1 + … + 𝝆н-1[𝜏н-2]1, [𝜏]2) = e([𝜏]1 + 𝝆1[𝜏2]1 + … + 𝝆н-1[𝜏н-1]1, [два]2),
    де 𝝆0,…,𝝆н-1 є скалярами з псевдовипадковою вибіркою. З точки зору попередньо скомпільованих смарт-контрактів, це займе:
    (2n-4) x ECADD + (2n-4) x ECMULT + ECPAIRk = 2 = (2n-4) х 6,150 113,000 + XNUMX XNUMX газу.
  2. Вартість газу для зберігання даних. Кожен учасник також зберігає оновлення в ланцюжку як дані виклику (68 газів на байт) з урахуванням газу n*64*68. (Примітка для тих, хто знайомий з криптографією еліптичної кривої: якщо зберігати стиснуті точки, декомпресія буде домінувати над загальними витратами згідно з нашими вимірюваннями для n=256.)

Це підводить нас до наступної таблиці з оцінкою витрат на газ, яка має стати основою для майбутніх оптимізацій:

Церемонія довіреного встановлення в мережі PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Ми шукаємо рішення, щоб знизити витрати на газ, тож слідкуйте за оновленнями!

Бібліотека з відкритим кодом: evm-powers-of-tau

Ми відкрили вихідний код нашого репо на церемонії Powers of Tau на основі EVM за адресою github.com/a16z/evm-powers-of-tau. Проведення церемонії з нашою стратегією легко та прозоро:

  1. Розгортання договору зберігання та перевірки (contracts/KZG.sol)
  2. Учасник читає параметри церемонії з попередніх даних виклику транзакції
  3. Контрибутор генерує секрет локально, обчислює оновлені параметри
  4. Автор генерує своє підтвердження: pi1, pi2
  5. Автор надсилає оновлені параметри через KZG.potUpdate() до розгорнутого смарт-контракту в загальнодоступному блокчейні
  6. Смарт-контракт перевірить дійсність оновлення, повертаючись у разі невірного подання
  7. Кілька учасників можуть виконувати кроки 2-5 безперервно, кожен з яких підвищує безпеку церемонії
  8. Щоразу, коли розробник впевнений у кількості та якості поданих матеріалів, він може запитувати в блокчейні поточні параметри та використовувати ці значення як свої криптографічні ключі.

Наше репо використовує arkworks-rs для обчислення кроків два і три (обчислення іржі можна знайти в src/pot_update.rs), але користувачі можуть захотіти написати власні. Весь наскрізний потік подання оновлень можна знайти в тесті інтеграції в tests/integration_test.rs.

Зауважте, що ми вирішили використовувати calldata для зберігання оновлених параметрів ступенів тау в ланцюжку, оскільки це на кілька порядків дешевше, ніж зберігання. Запит на основі ethers-rs для цих даних можна знайти в src/query.rs.

Нарешті, докази та детальні рівняння можна знайти в технічному звіті в techreport/main.pdf.

Майбутня робота

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

Після реалізації трансакційна вартість оновлення церемонії зростає лінійно зі збільшенням розміру налаштування. Для більшості додатків (SNARK, DAS) ми хотіли б встановити n >= 256, наразі вартість оновлення становить 73 долари. 

Ми могли б досягти сублінійного зростання витрат на перевірку за допомогою СТАРК-доказу дійсного обчислення оновлення та векторної прихильності до оновлених значень. Ця конструкція також усуне залежність від попередніх компіляцій Ethereum L1 BN254, дозволяючи використовувати більш популярну криву BLS12-381.

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

Подяки

  • Ден Боне — за корисний відгук на ранніх етапах цієї роботи
  • Джо Бонно – за уточнення експозиції в ранній версії технічного звіту
  • Вільям Боржо – для обговорення BLS в TurboPlonk / Plonky2
  • Мері Маллер – за думки про загальну механіку підходу

Редактор: Роберт Гекетт @rhhackett

***

Погляди, висловлені тут, є поглядами окремих співробітників AH Capital Management, LLC («a16z»), які цитуються, і не є поглядами a16z або його філій. Певна інформація, що міститься тут, була отримана зі сторонніх джерел, зокрема від портфельних компаній фондів, якими керує a16z. Хоча отримано з джерел, які вважаються надійними, a16z не перевіряв таку інформацію незалежно та не робить жодних заяв щодо поточної чи довгострокової точності інформації чи її відповідності певній ситуації. Крім того, цей вміст може містити рекламу третіх сторін; a16z не переглядав такі оголошення та не схвалює будь-який рекламний вміст, що міститься в них.

Цей вміст надається лише в інформаційних цілях, і на нього не можна покладатися як на юридичну, ділову, інвестиційну чи податкову консультацію. Ви повинні проконсультуватися з власними радниками щодо цих питань. Посилання на будь-які цінні папери чи цифрові активи наведено лише з метою ілюстрації та не є інвестиційною рекомендацією чи пропозицією надати інвестиційні консультаційні послуги. Крім того, цей вміст не призначений для будь-яких інвесторів чи потенційних інвесторів і не призначений для використання ними, і за жодних обставин на нього не можна покладатися при прийнятті рішення інвестувати в будь-який фонд, яким керує a16z. (Пропозиція інвестувати у фонд a16z буде зроблена лише на підставі меморандуму про приватне розміщення, угоди про підписку та іншої відповідної документації будь-якого такого фонду, і її слід читати повністю.) Будь-які інвестиційні чи портфельні компанії, згадані, згадані або описані не є репрезентативними для всіх інвестицій у транспортні засоби, якими керує a16z, і не може бути гарантії, що інвестиції будуть прибутковими або що інші інвестиції, здійснені в майбутньому, матимуть подібні характеристики чи результати. Список інвестицій, здійснених фондами під управлінням Andreessen Horowitz (за винятком інвестицій, щодо яких емітент не надав дозволу a16z на оприлюднення, а також неоголошених інвестицій у публічні цифрові активи) доступний за адресою https://a16z.com/investments /.

Наведені в ньому діаграми та графіки призначені виключно для інформаційних цілей, і на них не слід покладатися під час прийняття інвестиційних рішень. Минулі результати не вказують на майбутні результати. Зміст відповідає лише вказаній даті. Будь-які прогнози, оцінки, прогнози, цілі, перспективи та/або думки, висловлені в цих матеріалах, можуть бути змінені без попередження та можуть відрізнятися або суперечити думкам, висловленим іншими. Додаткову важливу інформацію можна знайти на сторінці https://a16z.com/disclosures.

Часова мітка:

Більше від Андреессен Горовиц