Сумасшедшая безопасность рождения Zcash. Информация из первых рук. Часть 1

5-12-2016_d0b2_22_07_52

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

«Как насчёт пожертвовать свой телефон во имя науки?»

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

«Думаю, я бы предпочёл пожертвовать своё тело», – отвечал я.

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

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

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

История Zcash уже была, в общих чертах, рассказана и мной, и другими. Криптовалюта была выпущена в открытое плавание 28 октября, ветер ажиотажа и всеобщих ожиданий весело задувал в её паруса. В первое утро своего существования Zcash торговалась на биржах криптовалют по цене 4000 долларов за одну монету. На следующий день первая волна бешеного спроса спала, и цена была уже ниже 1000 долларов. Сейчас же, полтора месяца спустя, вы будете счастливчиком, если сумеете выручить за одну монету Zcash хотя бы 100 долларов. Даже на фоне бурного пейзажа рынка криптовалют такие колебания кажутся совершенно безумными.

В какой-то мере, шумиха, конечно, была оправдана. Подавляющее большинство сегодняшних цифровых валют – не более чем дешёвые подделки Биткойна. Однако о Zcash этого сказать никак нельзя. Проект разрабатывался три года и объединяет в себе передовые исследования криптографов и компьютерных учёных из нескольких ведущих университетов, которые бросили вызов проблемам конфиденциальности, присущим Биткойну, введя дополнительный слой шифрования, скрывающий идентификационные отметки транзакций: информацию об отправителе, получателе и сумме транзакции. В Биткойне все эти данные записываются в открытом виде и могут быть прочитаны кем угодно.

Однако в случае с цифровыми валютами любые решения, так или иначе, являются компромиссными, и улучшенная конфиденциальность Zcash сопровождается риском, которому до запуска валюты уделялось намного меньше внимания. Сокрытие данных в блокчейне неизбежно усложняет процесс проверки подлинности транзакций, тогда как в Биткойне это не более чем вопрос отслеживания монет в публичном реестре. В Zcash же, для того, чтобы проверить транзакции, требуется произвести серьёзные экспериментальные вычисления – математические доказательства, называемые zk-SNARK, которые до того не применялись ещё нигде. Для настройки zk-SNARK в протоколе Zcash, нужно создать пару математически связанных криптографических ключей. Один из ключей необходим для функционирования валюты, тогда как другой – и в этом заключается большой риск – может быть использован для подделки новых монет.

Если вам, навскидку, непонятно, как это работает, то вы в большой и хорошей компании. Число людей, которые действительно понимают, как работают zk-SNARK и, следовательно, протокол Zcash, пожалуй, настолько мало, что в день благодарения на них хватило бы одной индейки. Важно понимать, что на нынешней стадии криптографических исследований невозможно создать надёжную конфиденциальную версию Zcash, не создав одновременно инструментов для её разграбления. Назовём эти инструменты «плохим ключом».

Перед тем, как запустить Zcash, её разработчикам пришлось создать плохой ключ, использовать его для того, чтобы задать набор математических параметров для zk-SNARK («хороший ключ»), а затем избавиться от плохого ключа до того, как какой-нибудь недобрый человек сможет им завладеть. Это нужно было сделать достаточно тайно, чтобы это было безопасно, но вместе с тем и достаточно публично, чтобы каждый потенциальный пользователь Zcash ощущал уверенность в целостности технологии.

Разработчики, чей труд привлёк в компанию Zcash 2 млн. долларов частных инвестиций, избрали стратегию, которая в значительной мере опирается на секретную часть этого уравнения. Почти все подробности церемонии – где и когда она проводится, кто в ней участвует, какое используется программное обеспечение – хранились в тайне до момента публикации недавнего поста в официальном блоге.

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

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

За две недели до церемонии я получил в Signal, приложении для обмена зашифрованными сообщениями, приглашение от Уилкокса, без каких-либо подробностей о том, чего следует ожидать. Через неделю он рассказал мне, куда мне нужно будет приехать, а ещё через неделю, за два дня до церемонии, мне было сказано, когда мне будет нужно там быть. 21 октября я вошёл в кофейню в Боулдере, штат Колорадо, где встретился с Уилкоксом и кинодокументалистом, приглашённым, чтобы заснять весь процесс на камеру. Оттуда мы направились в компьютерный магазин в Денвере, накупили там кучу оборудования, после чего вернулись в отель в Боулдере, где я провёл следующие три дня.

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

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

В этой аналогии, рецепт – это плохой ключ, пирог – это параметры zk-SNARK, а лицо, скрывающее ингредиенты и организующее раздельные процессы – это криптографический алгоритм.


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

mjgznzqzma

Зуко Уилкокс, основатель Zcash, с DVD+R, содержащим часть записи криптографической церемонии. (Фото: Морген Пек)

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

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

Я готов свидетельствовать, что ничего странного не происходило. До тех пор, пока всё же не произошло.

Во время церемонии большинство операторов станций общались друг с другом посредством Google Hangouts. Вечером первого дня, после небольшого отдыха, Уилкокс подошёл к ноутбуку с запущенным Google Hangouts и начал разговор с Питером Ван Валкенбургом, оператором вашингтонской станции. Мы заметили эффект эха в комнате и стали искать источник.

Продолжение следует…

Источник: spectrum.ieee.org



Рубрики:Новичкам, Проишествия, z.cash

Метки: ,

3 replies

Trackbacks

  1. Обновление информации об интеграции Zcash и Эфириума (ZoE) — EthereumClassic
  2. Ethclassic.ru: Обновление информации об интеграции Zcash и Эфириума (ZoE) | YugosPro
  3. Биткойн или Эфириум: какая валюта победит? — EthereumClassic

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s