Оглядываясь назад: обновление NU5 и пескоструйная атака сети

Все новости про Zcash в социальной сети «X» (бывший Twitter)  |  Интересные видео про Zcash на YouTube

Переведено из блога ECC | 9 декабря 2023

Приблизительное время чтения: 17 минут

Краткое изложение всех событий

Пока Electric Coin Co. (ECC) и сообщество Zcash готовятся к публичному ретроспективному анализу обновления Network Upgrade 5 (NU5) и того, что впоследствие стало называться как «пескоструйная атака«, в этом сообщении подробно описаны мотивы, проблемы и достижения ECC в отношении каждого события.

  • Обновление NU5 было амбициозным проектом, направленным на устранение необходимости в доверенных настройках, на повышение доверия пользователей, а также на повышение безопасности и масштабируемости Zcash.
  • Внедрение Halo, криптографического прорыва в Zcash, впервые сделало возможными безопасные, конфиденциальные, цифровые денежные транзакции на мобильных телефонах.
  • Вредоносная атака, последовавшая за обновлением, привела к значительным проблемам с работоспособностью кошельков, что вынудило ECC перейти в Аварийный режим. Наши ответные меры включали в себя многочисленные технические обновления, повышение производительности и выпуск новых SDK для мобильных кошельков.
  • Несмотря на проблемы и задержки, ECC удалось повысить безопасность и устойчивость Zcash.

Открытая ретроспектива в Zoom (прямой эфир): четверг, 14 декабря в 01:00 мск

Откуда весь FUD?

Миссия ECC заключается в расширении экономической свободы, и большинство структур, работающих над проектами, связанными с Zcash, например Zcash Foundation (ZF) и Zcash Community Grants (ZCG), преследуют аналогичные цели, направленные на улучшение положения общества и человечества в целом.

Тем не менее, с момента появления Zcash в 2016 году в социальных сетях, на форумах и других общественных площадках распространялся поток дезинформации (а в некоторых случаях и скоординированной пропаганды), призванной посеять FUD (страх, неуверенность и сомнения).

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

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

Эта техника была впервые применена в ECC, и для её реализации требовалось несколько участников, находящихся в разных местах и использующих сложные меры безопасности.

Независимо от особо тщательного планирования и исполнения, а также избыточной безопасности, пользователи и наблюдатели Zcash должны были доверять историческому факту, что участники церемонии не сговорились обмануть общественность. Доверенные установки не позволяют математически проверить предложение ZEC, и до тех пор, пока для крупных обновлений Zcash будут требоваться такие сложные процедуры, всегда найдутся сомневающиеся люди и просто недоброжелатели. И в этом есть свой смысл — математика поддаётся проверке, а вот история — нет. Репутация и целостность Zcash были поставлены под сомнение, и, по мнению ECC, сообщество не могло позволить себе игнорировать эту проблему.

NU5: призыв к действию

В 2019 году инженеры ECC Шон Боу, Дайра Эмма Хопвуд и Джек Григг работали над дизайном масштабируемости и экспериментировали с решением для эффективной рекурсии, когда Боу сделал открытие.

«Я просто наткнулся на технику построения доказательств с нулевым знанием на совершенно обычных эллиптических кривых», — рассказывает Боу. И вот в течение 24 часов всё перешло от «О, это действительно интересно, будет здорово, если мы сможем это сделать» к «Вот блин, а теперь, когда у нас нет доверительных настроек или чего-то ещё, всё очень просто». Это была целая серия шагов, которые из приятного озарения превратились в полную смену парадигмы».

Halo, как впоследствии стали называть новую модель, — это система доказательств с нулевым знанием, которая позволяет эффективно выполнять рекурсию без доверенной установки.

Открытие Шона Боу стало криптографическим прорывом, о котором возвестила индустрия, и в 2021 году ECC обязалась внедрить Halo в Zcash.

Halo в Zcash впервые сделает возможными безопасные, приватные, цифровые денежные транзакции на мобильных телефонах. Это послужит катализатором доверия пользователей к Zcash и откроет путь к гораздо большей масштабируемости, делая протокол более привлекательным, быстрым и менее дорогим для других пользователей.

Из блога ECC:

Halo на Zcash позволит обновлять схемы без необходимости доверенных установок, что сделает защищенный протокол Zcash более гибким для будущих улучшений, например, для поддержки дополнительных активов, таких как [Zcash Shielded Assets, или ZSAs]. Мы хотим, чтобы другие проекты и токены могли легко воспользоваться возможностями Zcash, такими как конфиденциальность через шифрование. Доверенная установка станет пережитком прошлого.

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

В январе 2021 года, после более чем года исследований и разработок Halo, ECC пришла к выводу, что преимущества Halo для Zcash перевешивают другие приоритеты протокола, и мы предложили реализовать его в NU5.

Посмотрите видео Zcash Media об оригинальной церемонии, ее участниках (включая Эдварда Сноудена) и о том, как система Halo сделала доверенные установки устаревшими.

Обновление NU5: задачи и препятствия

Цели NU5 с самого начала заключались в том, чтобы (1) сделать Zcash более безопасным, (2) дать пользователям Zcash гарантию, обеспечив математическую проверяемость поставок, (3) существенно упростить будущие обновления и (4) позволить будущим обновлениям воспользоваться рекурсивными доказательствами для улучшения масштабируемости и программируемости.

Наша первоначальная оценка в 6-7 месяцев оказалась слишком оптимистичной, поскольку в процессе работы были обнаружены новые решения, открылись новые возможности и возникли технические сложности, и в итоге путь занял почти полтора года.

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

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

В дополнение к решению таких технических проблем, как эти, плюс несколько неожиданных ошибок, ECC потратили значительное время и ресурсы на отстаивание и защиту наших решений по дорожной карте от нападок критиков за: наше обоснование (избавление от доверенной настройки не стоило времени и усилий, ZSA были важнее), наше планирование (мы начали публичное обсуждение до того, как достаточно спланировали — и мы запланировали слишком много до начала работы), решение лицензировать Orchard по Bootstrap Open Source Licence (BOSL), решение внедрить унифицированные адреса (UA), и наш общий подход к модернизации сети (наши приоритеты были произвольными и не соответствовали действительности).

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

NU5: хронология и достижения

Не считая исследований и разработок, предшествовавших внедрению, работа над NU5 длилась 17 месяцев, в течение которых были внедрены новые технологии и улучшен пользовательский опыт Zcash.

Временная шкала

  • Сентябрь 2019: Объявлено об открытии Halo.
  • Январь 2021: ZIP 224 предлагает протокол Orchard shielded, который определяет новый экранированный пул с ключами расходов и адресами платежей, которые поддаются будущим улучшениям масштабируемости (в январе мы надеялись выпустить NU5 летом 2021 года).
  • Февраль 2021: Согласно первоначальному графику, обновление NU5 (с системой Halo на борту) должно было выйти в октябре 2021 года.
  • Март 2021: Опубликованы предлагаемые функции обновления NU5.
  • Апрель 2021: Дата выхода NU5 была перенесена на январь 2022 года из-за новых обнаруженных возможностей, способствующих лучшей совместимости, а также для выделения дополнительного времени на цикл аудита внедрения третьими сторонами.
  • Апрель 2021: Внедрение унифицированных адресов.
  • Август 2021: Внедрение технологии экранирования по умолчанию.
  • Сентябрь 2021: Устранение ошибок в версии 4.5.1.
  • Ноябрь 2021: Завершена оценка безопасности.
  • Декабрь 2021: Дата выхода NU5 перенесена на апрель 2022 года для дополнительной разработки и сосредоточения на работе с экосистемой и подготовке к релизу.
  • Март 2022: Активация NU5 и выпуск Halo Arc отложены до мая 2022 года для исправления ошибки консенсуса в тестовой сети.
  • 31 мая 2022: NU5 активируется в основной сети, устраняя доверенную настройку для нового пула Orchard и открывая новую эру для Zcash.

Когда 31 мая 2022 года обновление NU5 было активировано в основной сети, это стало одной из самых важных вех для Zcash с момента запуска криптовалюты в 2016 году. Как выразился генеральный директор ECC Зуко Уилкокс, это «исторический шаг вперёд для человеческого общества».

Запустив защищенный платежный протокол Orchard с использованием Halo, мы устранили доверенную установку для повышения безопасности и устойчивости Zcash, сделали предложение математически проверяемым, улучшили масштабируемость, поскольку будущие обновления сети не будут требовать сложной церемонии настройки, проложили путь к повышению совместимости, предоставив систему, которая может разблокировать конфиденциальные межцепочечные доказательства в масштабе, и представили BOSL, который принёс ценность сообществу Zcash (например, гранты Filecoin Foundation и Ethereum Foundation для Brave и Edge).

Это была огромная работа, и после почти полутора лет создания и борьбы с техническими вызовами NU5, команда ECC Core была готова немного отдохнуть. Но почти сразу же Zcash столкнулся с другой проблемой, которую мы не могли игнорировать.

Пескоструйная атака: призыв к действию

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

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

Пескоструйная атака: задачи и препятствия

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

В качестве первой линии защиты мы выпустили обновления для повышения производительности в zcashd 5.1.0 и 5.2.0, чтобы сократить время верификации на 80 %. Мы также начали работу над повышением производительности SDK для мобильных кошельков.

В августе 2022 года, когда оставалось ещё немало работы по решению проблем с производительностью кошельков, ECC перешла в аварийный режим. Вот наши критерии выхода из аварийного режима:

  • Пользователи кошельков Edge, Nighthawk и Unstoppable имеют возможность расходовать свои текущие средства (средства, которые уже синхронизированы при открытии кошелька).
  • Пользователи этих кошельков могут получать и расходовать новые поступающие средства со скоростью месячного объема транзакций в течение одного часа.
  • Пользователи этих кошельков видят обновления синхронизации, которые минимально запутывают информацию о процессе.
  • Ни один из этих кошельков не подвержен воздействию сбоев или непоследовательного поведения (например, не отображаются некоторые уже синхронизированные транзакции), а также они не нуждаются в обходных путях, связанных с ECC SDK.

Проблемы с производительностью кошелька представляли собой сложный комплекс задач, для решения которых требовалось разработать и внедрить (1) более быстрый алгоритм, не требующий линейной синхронизации всех блоков в цепочке, и (2) модификации инструментария, позволяющего пользователям тратить средства, не имея полностью синхронизированной цепочки. Решение потребовало внесения изменений в каждый компонент стека экранированных мобильных кошельков: zcashd, lightwalletd, SDK для ECC-кошельков и прототип ECC-кошелька.

Внутри команды изменение комиссии обсуждалось с самого начала, но в течение первых нескольких месяцев команда ECC сосредоточилась на дополнительном повышении производительности и старалась решить проблему без изменения комиссии. Позже мы решили ввести изменения в комиссии, чтобы подавить спам-атаку.

По мере того как пользователи разочаровывались в своей работе, некоторые члены сообщества стали открыто критиковать ECC за то, что она не была готова к атаке и слишком медленно на неё реагировала.

В феврале 2023 года компания Halborn, специализирующаяся на безопасности блокчейна, уведомила нас об уязвимости, унаследованной от Bitcoin Core, которая могла затронуть более 280 цепей, включая Zcash. Это была ещё одна экстренная ситуация, связанная с проблемами производительности кошелька, и поскольку ECC была единственной командой, получившей уведомление об уязвимости, мы были единственными, кто смог бы внести необходимые исправления. Координация действий по раскрытию и устранению уязвимости заняла около месяца нашего времени.

Что было ещё серьёзней, ECC как инженерная организация пыталась делать слишком большое количество вещей одновременно: обслуживание основных узлов, поддержка CEX, таких как Coinbase, Binance и Gemini, бэкпорты с Bitcoin, мобильные SDK, приложения для мобильных кошельков и будущие улучшения протокола. В мае 2023 года произошла реструктуризация ECC, что привело к временной перегрузке ресурсов.

Дополнительные задачи

  • В то время внутренние коммуникации и методы управления проектами ECC не были организованы для работы в чрезвычайном режиме. Это повлияло на наше понимание приоритетов и рабочих процессов в командах.
  • До атаки стратегия продуктов ECC была направлена в первую очередь на адаптацию, а не на производительность и масштабируемость. Пользователям нужны новые функции, а работа над улучшением производительности замедляет выпуск новых функций. Но в результате атаки пользовательский интерфейс Zcash оказался на пределе возможностей.
  • Технический долг: Предыдущие обновления сети дали лишь ограниченный прирост производительности.
  • ECC сильно недооценила, сколько времени потребуется для устранения остающихся проблем с производительностью кошелька.
  • Возникали и другие технические проблемы, которые приводили к задержкам, например, когда заглючил наш speed.z.cash, у нас некоторое время не было менеджера DevOps.
  • Во время аварийного режима у команды ECC Core было три разных руководителя.
  • Аварийный режим замедлил разработку нашего запланированного проекта кошелька, который теперь известен как Zashi. Однако мы смогли использовать этот прототип внутри команды для проверки и тестирования улучшений SDK.

Следует отметить, что ECC весьма повезло с проактивными партнёрами по кошелькам — Edge, Nighthawk и Unstoppable, которые вместе с нами тестировали релизы и сообщали об ошибках, а затем быстро внедрили SDK 2.0, когда они были готовы.

Пескоструйная атака: хронология и достижения

В общей сложности реакция ECC на пескоструйную атаку и внедрение сторонними кошельками заняли около 16 месяцев. К ноябрю 2023 года Edge, Nighthawk и Unstoppable снова работали (лучше, чем когда-либо), и мы объявили об окончании аварийного режима.

Временная шкала

  1. Июнь 2022: Началась рассылка сетевого спама; только за июнь экранированные выводы подскочили со среднемесячных 42 600 до 21 622 590.
  2. Июль 2022: Внедрены улучшения производительности в zcashd 5.1.0 и 5.2.0 для сокращения времени верификации на 80 % и начата работа над улучшением производительности SDK для мобильных кошельков.
  3. Август 2022: ECC официально перешли в аварийный режим, хотя мы не использовали этот термин в публичных письменных сообщениях до марта 2023 г.; начато исследование Spend Before Sync
  4. Сентябрь 2022: В процессе работы над zcashd и улучшением мобильной синхронизации мы возобновили исследования возможных механизмов изменения комиссии (ZIP 317) и эффективности синхронизации (DAGSync/Spend Before Sync).
  5. Октябрь 2022: Выпущен zcashd 5.3.0 с дополнительными улучшениями производительности для снижения одновременного использования памяти при сканировании и другими оптимизациями памяти и производительности узла zcashd.
  6. Октябрь 2022: Подтверждение наших ближайших целей в отношении проблем синхронизации с SDK наших кошельков и сообщение о наших критериях для выхода из аварийного режима.
  7. Октябрь 2022: Сообщили о своём намерении решить проблемы с производительностью кошельков к концу февраля 2023 года.
  8. Октябрь 2022: Изменения в zcashd повысили его устойчивость к атакам.
  9. Ноябрь 2022: Выявлены и исправлены последние известные ошибки, блокировавшие первый этап выпуска SDK, продолжена работа над Spend Before Sync и начата подготовка zcashd и мобильных кошельков к ZIP 317; устранены последние известные ошибки librustzcash, блокировавшие выпуск кошельков, и завершена интеграция SDK для Android и iOS.
  10. Декабрь 2022: Завершена реализация оптимизаций zcashd, которые, как ожидается, позволят сэкономить память и уменьшить количество пустых блоков для майнеров
  11. Февраль 2023: Выпущена версия zcashd 5.4.0 с рядом улучшений производительности, обновлением системы отчетности о поставках, а также очисткой устаревших функций и функциональности поддержки для улучшения текущего обслуживания кодовой базы
  12. Март 2023: Опубликован график обновлений и релизов, предусматривающий прекращение работы в аварийном режиме к концу мая.
  13. Апрель 2023: ECC представили версию 5.5.0 с завершенным изменением структуры транзакционных сборов (ZIP 317) и инфраструктурными улучшениями, которые заложили основу для 5.6.0.
  14. Май 2023: (Реорганизация в ECC) Сдвиг даты выпуска zcashd 5.6.0, lightwalletd и SDK на середину июня. По мере того как zcashd 5.5.0 начали использовать майнеры в сети, изменения в структуре платы начали снижать эффективность пескоструйной атаки, уменьшая темпы роста блокчейна и нагрузку на сканирование кошельков.
  15. Июнь 2023: Выпущен zcashd 5.6.0, представляющий функциональность, необходимую легким кошелькам для доступа к расходуемым средствам без полного сканирования блокчейна; включены обновления для решения проблем, связанных с реализацией ZIP 317 и функциями политики конфиденциальности.
  16. Июль 2023: Вышел Lightwalletd 0.4.14, что означало, что SDK для мобильных кошельков остался единственным нереализованным компонентом в плане ECC по решению проблем с производительностью кошельков и выходу из аварийного режима. На данный момент мы надеялись выпустить SDK в середине июля.
  17. Август 2023: К концу июля переход сети на zcashd 5.5.0 был завершен, и загрузка сети транзакциями вернулась к уровню, предшествовавшему выходу из NU5. Однако накопленные к этому моменту данные о цепочке все ещё представляли проблему для сканирования кошельков, поэтому для её решения ECC объявили о предварительной доступности функции Spend before Sync в наших мобильных SDK и предоставили эту функциональность разработчикам кошельков для тестирования. Было обнаружено несколько ошибок и проблем с пользовательским интерфейсом. Сроки выпуска SDK были сдвинуты на середину сентября.
  18. Сентябрь 2023: Возникли новые ошибки, проблемы с пользовательским интерфейсом и зависимости, которые отодвинули дату выпуска SDK на конец сентября.
  19. 26 сентября 2023: ECC опубликовали обновленный мобильный SDK 2.0 для разработчиков iOS и Android. Это был финальный результат для выхода из аварийного режима.
  20. 1 ноября 2023: После месяца работы в режиме эксплуатации не было зафиксировано никаких связанных с кошельком серьезных проблем, и ECC объявили о выходе из аварийного режима.

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

За это время ECC выпустили множество обновлений для zcashd и lightwalletd, а также новые мобильные SDK, которые в совокупности представили новые инновации (и обучение) в мире криптографии и децентрализованных денег. Эти релизы значительно улучшили конфиденциальность, масштабируемость и пользовательский опыт в Zcash, и они имеют значение для всех криптопроектов, ориентированных на конфиденциальность.

Работа продолжается

Обновление NU5 и пескоструйная атака заняли почти три года. Но столкнувшись с трудностями и чрезвычайными обстоятельствами, насаждаемыми конкурентами, и критикой со стороны сообщества (в том числе обоснованной), ECC не отступила от своего обязательства строительства. Опираясь на союзников, сообщество преодолело беспрецедентные технические трудности и нехватку ресурсов, чтобы сделать Zcash более устойчивым, надёжным и безопасным.

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

Arborist Call Bitcoin FROST Halo NU5 Orchard PoS PoW z2z Zcash zcashd Zcon Zebra ZIP ZKP ZSA Гранты Доказательства с нулевым разглашением Дорожная карта Зуко Уилкокс Ключи просмотра Конференции Кошельки Кошельки для Zcash Нода Релизы Сообщество аппаратные кошельки биткоин будущее криптовалют внедрение интеграции интервью конфиденциальность майнинг новости Zcash обновление сети объяснения обёрнутые токены регулирование транзакции унифицированные адреса цена ZEC экранированные пользовательские активы эмиссия

Метки: , , , ,

Все новости про Zcash в социальной сети «X» (бывший Twitter)  |  Интересные видео про Zcash на YouTube

Вы можете поддержать автора проекта pro.zcash:
(для отправки доната на данный адрес требуется кошелёк с функционалом экранированных транзакций)

zcash:zs17agzpy3lafx32le45v73hu6etfew4mel7rtkta85xmnnapqzchelc8zyx054mskkvgqngdeepms

автоматическая ссылка

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