Церемония доверенной настройки в сети PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Церемония доверенной настройки в сети

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

Блокчейн-проекты проводят церемонии множеством творческих способов — с использованием паяльных ламп, радиоактивной пыли и самолетов — но все они имеют нечто общее: все они связаны с централизованным координатором. В этой работе мы демонстрируем, как децентрализовать процесс, заменив централизованного координатора смарт-контрактом. Кроме того, мы предоставляем библиотеку с открытым исходным кодом, которая позволяет любому провести такую ​​церемонию, известную криптопрактикам как Кейт-Заверуча-Голдберг (KZG) или церемония «сил тау» — в сети Ethereum. Любой может принять участие, просто оплатив комиссию за транзакцию!

Наш децентрализованный подход имеет ограничения, но он по-прежнему полезен. Из-за текущих ограничений данных в сети размер криптографических параметров должен быть коротким, то есть не более 64 КБ. Но количество участников не ограничено, и люди могут продолжать вносить свой вклад бесконечно. Приложения для этих коротких параметров включают небольшие SNARK с нулевым разглашением, выборка доступности данныхкачества Веркле деревья.

История и механика доверенной церемонии установки

В типичной церемонии доверенной установки группа участников совместно генерирует набор криптографических параметров. Каждая участвующая сторона использует секретную информацию, сгенерированную локально, для генерации данных, которые помогают создавать эти параметры. Правильные настройки гарантируют, что секреты не будут утекать, что секреты будут использоваться только в соответствии с протоколом, и что эти секреты будут полностью уничтожены в конце церемонии. Пока хотя бы одна из сторон церемонии ведет себя честно, не скомпрометирована и не раскрывает свой локальный секрет, вся установка может считаться безопасной. (Конечно, это при условии, что математика верна и в коде нет ошибок.)

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

Еще одним ярким примером доверенной установки является вечная церемония «сил тау» предназначен в первую очередь для семафор, технология сохранения конфиденциальности для анонимной передачи сигналов в Ethereum. В установке использовалась эллиптическая кривая BN254, и на данный момент в ней участвовал 71 человек. Другие известные проекты позже использовали эту установку для проведения своих собственных церемоний, в том числе Торнадо. Наличные (недавно санкционировано правительством США), Hermez сеть и Loopring. Ацтекский провел аналогичную церемонию на эллиптической кривой BLS12_381 со 176 участниками для zkSync, решения для масштабирования Ethereum «второго уровня», которое использует свертки с нулевым разглашением. Filecoin, протокол децентрализованного хранения данных, провел церемонию с 19 и 33 участниками на первом и втором этапе соответственно, разветвляя исходное репо. Рвение, блокчейн уровня 1, также провел церемонию для своего легкого клиента Plumo.

Бессрочные церемонии не имеют ограничений по количеству участников. Другими словами, вместо того, чтобы доверять другим людям проведение надежной церемонии установки, ЛЮБОЙ может участвовать в той степени безопасности, которая удовлетворяет их потребности. Один надежный участник обеспечивает безопасность всех получаемых параметров; цепь так же прочна, как и ее самое прочное звено. Вечные церемонии могут длиться, как следует из названия, вечно, как это было в предпосылке первоначальной церемонии полномочий тау. Тем не менее, проекты часто выбирают конкретное время начала и окончания своих церемоний, таким образом, они могут встроить полученные параметры в свои протоколы и не должны беспокоиться об их постоянном обновлении.

Ethereum планирует провести небольшую доверенную церемонию установки для предстоящих ПротоДанкШардинг и ДанкШардинг обновления. Эти два обновления увеличат объем данных, которые сеть Ethereum предоставляет клиентам для хранения. Срок действия этих данных истекает от 30 до 60 дней. Церемония в активной разработке, И запланированный на шесть недель в начале следующего года. (Видеть kzg-церемония-спецификации для получения более подробной информации.) Это будет самая крупная доверенная церемония установки блокчейнов, которая проводилась до сих пор.

Паранойя — это добродетель, когда дело доходит до надежных установочных церемоний. Если аппаратное или программное обеспечение машины скомпрометировано, это может подорвать безопасность генерируемых ею секретов. Скрытные атаки по сторонним каналам, которые приводят к утечке секретов, также трудно исключить. Телефон может следить за работой компьютера запись звуковых волн вибрации процессора, например. На практике, поскольку чрезвычайно трудно устранить все возможные атаки по побочным каналам, в том числе те, которые еще предстоит обнаружить или раскрыть, есть даже предложения запускать машины в космос для проведения церемонии там.

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

Координация доверенных церемоний установки

Вот забавная подборка цитат некоторых предыдущих доверенных участников церемонии установки:

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

В 41-м раунде церемонии Zcash Powers-of-Tau участвовал самолет. Скриншот: видео на YouTube

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

За Уилкокс, брат соучредителя Zcash Зуко Уилкокс, уничтожает компьютер, используемый для генерации случайных чисел для доверенной церемонии в 2016 году. Фото: Морген Пек

Все эти церемонии зависели от централизованного координатора. Координатор — это индивидуальный или частный сервер или какое-либо другое лицо, которому поручено регистрировать и упорядочивать участников, действовать как ретранслятор, пересылая информацию от предыдущего участника к следующему, и вести централизованный журнал всех коммуникаций для целей проверки. Координатор обычно также отвечает за то, чтобы журнал был доступен для публики на неограниченный срок; Конечно яВ централизованной системе всегда существует вероятность потери или неправильного управления данными. (Например, вечные полномочия тау хранятся в Microsoft Azure и Github.)

Нам показалось ироничным, что криптопроекты должны полагаться на централизованные доверенные церемонии установки, когда децентрализация является таким основным принципом крипто-этоса. Поэтому мы решили продемонстрировать возможность проведения небольшой церемонии получения вечных полномочий тау прямо на блокчейне Ethereum! Установка полностью децентрализована, не требует разрешений, устойчива к цензуре и безопасна до тех пор, пока хоть один из участников честен [см. отказ от ответственности]. Участие в церемонии стоит всего от 292,600 17,760,000 до 7 400 8 газа (примерно от 1024 до XNUMX долларов в текущих ценах), в зависимости от размера желаемых результирующих параметров (в данном случае от XNUMX до XNUMX степеней тау). (См. Таблицу ниже для конкретных затрат — мы подробнее остановимся на этих расчетах позже в этом посте.)

Церемония доверенной настройки в сети PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

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

Понимание церемонии KZG или «сил тау»

Давайте рассмотрим одну из самых популярных доверенных схем, известную как KZG, или церемония «сил тау». Спасибо сооснователю Ethereum Виталику Бутерину, чей сообщение в блоге о надежных настройках сообщил наши идеи в этом разделе. Установка генерирует кодировку степеней тау, названную так потому, что «тау» — это переменная, используемая для выражения секретов, созданных участниками:

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

Для некоторых приложений (например, Groth16, популярная схема проверки zkSNARK, разработанная Йенсом Гротом в 2016 году), за первым этапом настройки следует второй этап — церемония многосторонних вычислений (MPC), которая генерирует параметры для конкретной схемы SNARK. . Однако наша работа сосредоточена исключительно на первом этапе. Эта первая фаза — генерация степеней тау — уже полезна в качестве фундаментального строительного блока для универсальных SNARK (например, PLONK и SONIC), а также других криптографических приложений, таких как Обязательства КЗГ, Веркле деревья и выборка доступности данных (ДАС). Как правило, универсальные параметры SNARK должны быть очень большими, чтобы они могли поддерживать большие и полезные схемы. Схемы, которые содержат больше логических элементов, обычно более полезны, поскольку они могут выполнять большие вычисления; количество степеней тау примерно соответствует количеству ворот в схеме. Таким образом, типичная установка будет иметь размер |pp| = ~40 ГБ и поддерживает схемы с ~228 ворота. Учитывая текущие ограничения Ethereum, было бы невозможно поместить такие большие параметры в цепочку, но меньшую доверенную церемонию настройки, полезную для небольших цепей SNARK, деревьев Веркла или DAS, можно запустить в цепочке.

Ethereum Foundation планирует запустить несколько небольших церемоний для степеней тау размером от 200 КБ до 1.5 МБ. В то время как большие церемонии могут показаться лучше, учитывая, что большие параметры могут создавать более полезные схемы SNARK, большие, на самом деле, не всегда лучше. Некоторым приложениям, таким как DAS, требуется меньший размер! [Причина очень техническая, но если вам интересно, это потому, что установка с n степенями (в G1) допускает KZG-обязательства только к полиномам степени ≤ n, что имеет решающее значение для обеспечения того, чтобы полином, лежащий в основе KZG-обязательства, мог быть восстановлен из любых n оценок. Это свойство обеспечивает выборку доступности данных: каждый раз, когда t случайных оценок полинома успешно получены (выборки), это дает уверенность в том, что полином может быть полностью реконструирован с вероятностью t/n. Если вы хотите узнать больше о DAS, прочтите этот пост Бутерина. на форуме Ethereum Research.]

Мы разработали смарт-контракт, который можно развернуть на блокчейне Ethereum для проведения доверенной церемонии установки. Контракт хранит общедоступные параметры — полномочия тау — полностью в цепочке и собирает участие через транзакции пользователей.

Новый участник сначала считывает эти параметры:

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 от и [𝛼]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

Может ли Эфириум включить BLS12_381 (как предложено в EIP-2537), наш установочный контракт можно легко заставить работать и для этой другой кривой.

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

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

Это подводит нас к следующей таблице с оценкой стоимости газа, которая должна быть использована для будущих оптимизаций:

Церемония доверенной настройки в сети PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Мы ищем решения, чтобы снизить стоимость газа, так что следите за обновлениями!

Библиотека с открытым исходным кодом: evm-powers-of-tau

Мы открыли исходный код нашего репозитория церемонии полномочий тау на основе EVM по адресу github.com/a16z/evm-силы-оф-тау. Проведение церемонии с нашей стратегией легко и прозрачно:

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

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

Обратите внимание, что мы решили использовать calldata для хранения обновленных параметров степени тау в цепочке, поскольку это на несколько порядков дешевле, чем хранение. Запрос на основе ethers-rs для этих данных можно найти в источник/query.rs.

Наконец, доказательства и подробные уравнения можно найти в техническом отчете в техотчет/main.pdf.

Будущая работа

Прежде чем эту доверенную церемонию настройки можно будет использовать в производстве, мы рекомендуем сначала провести всесторонний аудит как математических доказательств, так и примера реализации.

Как реализовано, стоимость транзакции обновления церемонии растет линейно с размером установки. Для большинства приложений (SNARK, DAS) нам нужна настройка n >= 256, что в настоящее время стоит 73 доллара за обновление. 

Возможно, мы сможем добиться сублинейного роста стоимости проверки с помощью STARK-доказательства корректного вычисления обновления и векторной приверженности обновленным значениям. Эта конструкция также устранит зависимость от прекомпиляции Ethereum L1 BN254, что позволит использовать более популярную кривую BLS12-381.

Все стратегии церемонии имеют компромиссы. Мы думаем, что эта конструкция надежна и имеет отличные поддающиеся проверке свойства сопротивления цензуре. Но опять же, мы бы предостерегали от использования этого метода до тех пор, пока не будет проведена дополнительная работа по проверке правильности нашего подхода.

Благодарности

  • Дэн Боне – за полезные отзывы на ранних этапах работы.
  • Joe Bonneau – за уточнение изложения в ранней версии технического отчета.
  • Уильям Боржо – за обсуждение 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 для получения дополнительной важной информации.

Отметка времени:

Больше от Andreessen Horowitz