Who is John Dobbertin или провожаем доверительную установку

Все новости про Zcash в Twitter  |  Интересные видео про Zcash на YouTube

На основе реальных событий | 10 апреля 2022 I автор RuZcash


Осталось не так много времени до момента, когда пятое обновление сети Zcash, содержащее новый метод рекурсивной доказательной композиции Halo — навсегда оставит в прошлом необходимость проведения Trusted Setup — процедуры доверительной настройки параметров SNARK для Zcash.

За всё время существования Zcash было две таких процедуры. В этой статье я расскажу о том, зачем нужны были Trusted Setup со всеми ссылками на источники, а также уделю внимание интересным фактам.

Идея написания статьи возникла в результате вновь возникшего обстоятельства, о котором мы узнали из интервью с Зуко Уилкокс:

«никто никогда не знал, кроме меня, кто является шестым участником» (первой церемонии загрузки параметров Zcash)

Указанная часть интервью, в котором Зуко рассказывает о предыстории Halo:

Участники сообщества Zcash сразу принялись гадать, кто бы это мог быть. Среди потенциальных кандидатов предлагаются ключевые фигуры индустрии криптовалют и инвестирования: Адам Бэк, Эдвард Сноуден, Наваль Равикант, Барри Сильберт, Ник Сабо, Мэтью Грин, Гэвин Андресен, Виталик Бутерин (лидирирует в предположениях) и даже совсем фантастические версии вроде Илон Маск, Сатоши Накамото и т.д.

Проголосовать за свою версию вы можете здесь (если у вас включён VPN):

Настоящее имя загадочного John Dobbertin мы скоро узнаем, а пока что разберёмся для чего была нужна процедура доверительной настройки и другие интересные факты о двух церемониях.

Что такое доверительная настройка и зачем она была нужна?

Чтобы ответить на этот вопрос нужно вспомнить что протокол Zcash основан на математическом методе, известном как доказательство с нулевым разглашением. Об этом много написано, и я не буду вдаваться в детали. Но главное что нам интересно здесь это то, что должно существовать некое «доказательство» — пруф (от  англ. слова — Proof), которого никто не знает, но оно подтверждает подлинность каждой транзакции не раскрывая никакой личной информации о содержании транзакций майнерам, которые её проверяют. Фактически пруф доказывает право расходования монет отправителем. Именно пруф даёт нам гарантию того, что отправитель обладает монетами, которые были эмитированы в данной замкнутой цепи согласно установленному алгоритму, а не появились в результате «незаконной» эмиссии. Данное доказательство это математическое выражение, а значит гипотетический обладатель этого выражения был бы способен генерировать неограниченное количество монет. О том, почему мы уверенны в том, что этого не произошло можно прочитать в моей статье — Разрушаем миф о том, что Zcash имеет скрытую эмиссию.

Зуко Уилкокс — тот самый человек, который серьёзно озадачился идеей провести такое мероприятие, которое он назвал «Церемония генерации параметров Zcash».

Итак, нам нужно математическое выражение — пруф, которого никто не знает. Сгенерировать математическую функцию таким образом, чтобы никто не смог:

  • подсмотреть методологию создания;
  • с абсолютной точностью воспроизвести данную методологию изучив вводные данные;
  • скомпроментировать полученные данные.

И тут возникает определённая загвоздка — ведь любая такая процедура будет подразумевать человеческий фактор. Наличие данного фактора породило название Trusted Setup (доверительная настройка / доверительная установка) — то есть нечто, чему мы можем доверять.

Зуко Уилкокс — тот самый человек, который серьёзно озадачился идеей провести такое мероприятие, которое он назвал «Церемония генерации параметров Zcash».

Он придумал как, создать пруф, в результате секретных, но при этом публичных и проверяемых действий, которые сложно было бы подвергнуть сомнению (забегая вперёд, скажу, что один из участников первой Церемонии — Питер Тодд впоследствии нашёл точку сомнения за её пределами). Являясь ярким представителем шифропанков Зуко усердно уделял внимание деталям, продумывая все возможные утечки данных — так называемые токсичные отходы.

Вот что написал Зуко в блоге Electric Coin Co:

«Мы разработали безопасное многостороннее вычисление , в котором каждый из нескольких человек создает «осколок» пары открытый/закрытый ключ, затем каждый из них уничтожает свой осколок закрытого ключа токсичных отходов, а затем все они объединяют свои осколки открытого ключа для формирования общедоступных параметров SNARK. Если этот процесс сработает, то есть если хотя бы один из участников успешно уничтожит осколок своего закрытого ключа, то побочный продукт токсичных отходов вообще никогда не появится.»

Если вам интересно углубиться в эту тему — то здесь статья самого Зуко о том, как безопасно генерировать параметры SNARK (статья написана очень доступно, но внутри есть ссылка на хардкорный первоисточник для математиков).

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

Первая Церемония генерации параметров Zcash (версия Sprout).

Первая Церемония генерации параметров Zcash была проведена 21 октября 2016 года.

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

Ниже перечислим все нескучные факты первой Церемонии.

В церемонии запуска участвовали 6 человек. Зуко Уилкокс подобрал пять кандидатов из специалистов по информационной безопасности и приверженцев конфиденциальности, которым (цитата Зуко): «я доверяю в этичности и соблюдении правил информационной безопасности».

Изначально личность трёх участников церемонии была раскрыта, а трое других были известны остальным только под псевдонимами. Впоследствии, после проведения церемонии, имена двоих участников были раскрыты, кроме одного человека.

Список участников:

  • Зуко Уилкокс — в представлении не нуждается, но на всякий случай;
  • Эндрю Миллер — профессионал компьютерщик, и технический консультант Zcash;
  • Питер Ван Валкенбург — известный защитник криптовалют, директор по исследованиям в Coin Center,
  • «Моисей Спирс» — Дерек Хинч из NCC Group;
  • «Фабрис Рено» — Питер Тодд, один из якорных разработчиков Bitcoin Core;
  • «Джон Доббертин» — настоящее имя будет известно после активации Halo.

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

Достаточно, чтобы лишь один из участников гарантированно уничтожил приватные ключи, вместе с устройством для генерирования ключей.

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

Программное обеспечение с открытым исходным кодов, использованное для генерации публичных параметров размещено на GitHub.

Четыре из шести участников позднее опубликовали подробные отчёты о своих действиях:

  • Отчёт Зуко Уилкокс из Денвера на Web.Archive.
  • Отчёт Питера Ван Валкенбурга из Вашингтона на GitHub, фотографии, таймлапс.
  • Отчёт с красивыми фотографиями Питера Тодда из Канады на Web.Archive.
  • Отчёт Эндрю Миллера из Орландо на YouTube.

Ещё один интересный факт состоит в том, что Питер Тодд по словам Зуко с самого начала скептически отнесся к Церемонии генерации параметров Zcash.

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

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

«Руины одного из компьютеров, использовавшихся для генерации параметров zk-snark для zcash.» @nuttycom

Однако спустя почти год, Питер вдруг внезапно заявил в своём твиттере, что язык программирования Rust в той сборке, на котором был написан компилятор не построен детерминистически, поэтому сопровождающие Rust (примечание — имеется ввиду люди пишущие язык Rust) теоретически могли тривиально заблокировать Zcash (примечание — на заранее заданные параметры). В своём блоге Питер добавил:

«Как создать бэкдор в Trusted Setup Zcash

Очень просто: сделать бэкдор для образа диска с ПО, который мы все использовали. Простейшим способом блокировки всего была бы генерация случайных чисел, в которой не было бы возможности проверить, что источник энтропии (применение — нажатия клавиш, движения мышкой) действительно использовался; или достаточно просто заранее уменьшив энтропию, скажем, до 32 бит и позже перебрать все возможные результаты.»

Перечеркнув весь текст в своём отчёте Церемонии, сверху он написал следующее:

«Обновление: временно убрал, пока не будут даны ответы на некоторые вопросы о детерминированных сборках; в настоящее время я не считаю, что доверенную настройку Zcash следует называть многосторонним вычислением, что делает моё участие бессмысленным.»

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

Впрочем, я понимаю о чём беспокоится Питер Тодд, ведь сгенерировать большое рандомное число совсем нетривиальная задача. Однако представить, что разработчики языка программирования или компилятора Rust заранее заложили бэкдор такого типа в ядро языка, потому что каким то образом узнали о планах генерации параметров будущей криптовалюты, основанной на снарках… Моё мнение, при всём уважении к Питеру, состоит в том, что он серьёзно параноит. Но.. он настоящий шифропанк — имеет право :)) Но если честно, мне не было бы так весело ведь по заверению специалистов существуют бэкдоры в рандомизаторах обычных процессоров. Скорее всего я бы тоже параноил, если бы не существовало способа однозначно установить факт того, что лишние монеты не были созданы — Разрушаем миф о том, что Zcash имеет скрытую эмиссию. Идём дальше..

Выше я упомянул радиотрансляцию. Да, это была крутая прямая радиотрансляция в подкасте Radiolab в которой Зуко Уилкокс и Питер Ван Валкенбург комментировали свои действия находясь в разных городах, а ведущие задавали вопросы о Zcash и проблемах конфиденциальности в существующем поколении криптовалют. Она на английском, но есть стенограмма, которая легко переводится приложением в браузере.

И, пожалуй, последним интересным фактом я укажу следующее: до момента обновления Zcash Sapling, каждый кто скачивал полный узел Zcashd, имел оригинальные публичные параметры на своём компьютере сгенерированные в результате той самой Церемонии.

Другие интересные подробности этой шпионской истории в статье 2016 года автора Morgen E. Peck.

Powers of Tau — вторая церемония генерации параметров Zcash (версия Sapling).

Начну с того, чем вообще интересны основные обновления Zcash. Было много промежуточных обновлений таких как Overwinter, Blossom, Heartwood и Canopy — которые добавляли новые функции и изменяли некоторые характеристики сети. Однако второе большое обновление Sapling и грядущее пятое глобальное обновление сети Zcash, содержащее Halo — это по сути полностью переписанное заново криптографическое ядро Zcash. Для понимания масштабов различия, отмечу, что экранированные пулы Zcash, в поколении Sprout, Sapling и Orchard (название будущего пула Zcash) абсолютно не совместимы и имеют принципиально различные алгоритмы проверки доказательства с нулевым разглашением. Чтобы пользователь мог использовать свои монеты в новой сети, ему необходимо самостоятельно перегнать свои монеты через специальный турникет в переходной версии кошелька ZecWallet. Это, кстати, в том числе помогает всем пользователям Zcash быть уверенными в том, что лишние монеты никогда не были созданы. Турникет это вычислительный процесс, который проверяет подлинность ваших монет, используя предыдущий пруф и методологию проверки, и выводит монеты на прозрачный адрес (счётчик), а затем перекодирует всю информацию о монетах заново в новый экранированный пул, используя актуальный пруф. Процедура быстрая безболезненная и совсем не заметная для пользователя. ))

Внимание! В экранированном пуле Sprout по прежнему находятся около 30 тысяч невостребованных ZEC. Если вы имели монеты до октября 2018 года и хранили их всё это время в официальном кошельке на защищённом Z-адресе Sprout (начинается с "Zc", а не с "Zs"), не обновляя свой кошелёк по какой-то причине, то вам необходимо переместить их в актуальный экранированный пул. Вам всегда будут рады помочь с этим на форуме сообщества.

Итак, ввиду того, что обновление Sapling существенным образом оптимизировало первоначальное криптографическое ядро Zcash, оно потребовало повторной генерации параметров.

На этот раз организацией мероприятия занялись Zcash Foundation. 11 ноября 2017 года они выпустили бюллетень, в котором раскрыли всю необходимую информацию для добровольцев — участников новой церемонии генерации параметров, которую назвали Powers of Tau.

Ноутбук одного из участников церемонии Powers of Tau — Хадсона Джеймсона

На первой церемонии использовался невероятно сложный многосторонний протокол вычислений для шести участников, однако новый протокол, созданный учёными криптографами Шоном Боу, Ариэлем Габизоном и Яном Майерсон был ещё невероятнее и ещё сложнее, и позволял масштабироваться до сотен (или даже тысяч) участников. И конечно следствие такой возможности была очень низкая вероятность того, что все они могут быть скомпрометированы.

Церемония Powers of Tau должна была проходить по очереди для каждого участника:

«Вы можете думать об этом процессе как о публичной перетасовке колоды карт. Каждый участник тасует колоду, доказывает всем, что он не изменял и не добавлял ни одну из карт, а затем передает колоду следующему участнику.»

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

Ноутбук одного из участников церемонии Powers of Tau — Нила Джаю

Для программного кода использовалась чистая реализация Rust , а также эталонная реализация инструментов проверки. Организаторы попросили участников использовать различные архитектуры и платформы, а также призвали участников модифицировать код или использовать альтернативную реализацию.

Принять участие в церемонии мог любой желающий. Достаточно было отправить заявку в адрес Zcash Foundation. Церемония Powers of Tau проходила с ноября 2017 года по апрель 2018. В итоге в церемонии приняли участие 88 человек. Как и прежде, доверительную настройку можно считать успешной при условии, что хотя бы одному из участников удалось не скомпроментировать приватный ключ. Отчёты всех, кто принял участие размещены в репозитарии 11 апреля 2018 года.

Рандомайзер (устройство генерации случайных чисел) Эндрю Миллера и Райана Пирса. Внутри трубки радиоактивные отходы 😬.

Вроде бы всё, но ещё есть один интересный факт, который я обязан здесь упомянуть. Два уважаемых Zcash-энтузиаста Эндрю Миллер и Райан Пирс, видимо в прикол Питеру Тодду, решили провернуть совсем уж невероятный финт рандомизации значений. Они подключили к своему ноутбуку генератор чисел, сконструированный и запрограммированный Райаном Пирсом из специально-распаянной платы и счётчика Гейгера. Источником низкочастотного радиоактивного излучения стал графит, добытый из активной зоны реактора Чернобыльской АЭС:

«Графит испускал очень небольшое количество радиоактивного излучения, находившееся значительно ниже любых ограничений, которые могли бы нести риск для здоровья. Что может быть лучше для генерации энтропии, чем использование реальных радиоактивных токсичных отходов?», — пояснил Миллер.

Чтобы гарантировать невозможность вмешательства в процедуру третьих лиц, парни поднялись на высоту 900 м над уровнем моря на частном самолёте над штатами Иллинойс и Висконсин. Благодаря этим людям мы уверены, что хотя бы их отрывок кода абсолютно случайный и конфиденциальный.

Новая эра Halo — прощай доверительная установка.

Halo — это совершенно революционный метод рекурсивного доказательства, не требующий процедуры доверительной настройки, который был анонсирован 10 сентября 2019 года.

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

По словам учёного-криптографа Шона Боу (Sean Bowe) метод был открыт совершенно неожиданно, как какое-то озарение.

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

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

Лично мне достаточно того, что реальность существования Halo уже неоспорима и им восторгаются сторонние разработчики уровня Виталик Бутерин:

Осталось лишь узнать ответ на главный вопрос Who is John Dobbertin? 😉

Обновление 28.04.2022

После длительного ожидания @ZcashMedia представили фильм, в котором раскрылась личность Загадочного John Dobbertin.

Оказалось что это Эдвард Сноуден!

«Меня зовут Эдвард Сноуден. Я участвовал в оригинальной Церемонии Zcash под псевдонимом Джон Доббертин. Причина, по которой я это сделал, заключалась в том, что я обратил внимание на то, что над ней работали ряд надежных академических криптографов. И я подумал, что это очень интересный проект. Потому что когда мы смотрим на криптовалюты в целом, мы обычно видим, что их криптографические свойства используются для того, чтобы убедиться, что это честный леджер (примечание: леджер — публичная книга, блокчейн), но не так, чтобы это использовалось как приватный леджер.

Биткойн, как известно, является публичным леджером. Проблема в том, что вы не можете иметь действительно свободную торговлю, если у вас нет конфиденциальности при товарообмене. А без свободной торговли не может быть свободного общества. При этом я не разрабатывал алгоритмы или что-то в этом роде. Я доверяю людям, которые действительно знают, что они делают. Но когда дело дошло до концепции, в которой им нужно несколько людей в различных местах, сотрудничающих в надежде, что хотя бы один из них не будет скомпрометирован и не будет работать против общественных интересов.. и это было необходимо для успеха Церемонии. Я счастлив был сказать: «Конечно, я помогу».

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

Источники информации о Halo:

filecoin Halo NU5 Orchard PoS UX z2z Zcash zcashd Zcon Zebra Zerocash ZSA Дорожная карта Зуко Уилкокс Ключи просмотра Конференции Кошельки Кошельки для Zcash Мифы о Zcash Нода Партнёрства Платформы Релизы Сеть Zcash Совместимость Сотрудничество Стратегия базовые свойства биткоин будущее денег будущее криптовалют доверенная установка доверительная настройка интервью конфиденциальность криптовалюта обновление сети объяснения обёрнутые токены платёжное средство транзакции унифицированные адреса церемония запуска эмиссия

Все новости про Zcash в Twitter  |  Интересные видео про Zcash на YouTube

Комментировать статью:

Ваш адрес email не будет опубликован.

два × три =