На основе информации в блоге Shielded Labs | Авторы: Зуко Уилкокс, Джейсон Макги и Тейлор Хорнби | Перевёл: ruzcash

Краткое содержание
Shielded Labs работает вместе с The Zcash Foundation, Tachyon Group, Valar Group и Zcash Open Development Lab (ZODL) над предложением под названием Ironwood. Его цель — дать любому пользователю возможность проверить корректность количества ZEC в обращении.
На прошлой неделе в пуле Orchard была обнаружена критическая уязвимость, позволявшая подделывать монеты. Уязвимость была устранена через экстренное сетевое обновление, скоординированное ZODL и другими участниками экосистемы. Обновление было завершено 2 июня.
Хотя мы считаем маловероятным, что уязвимость была использована — причины этого изложены в нашем раскрытии информации, — свойства конфиденциальности Orchard не позволяют пользователям самостоятельно это проверить.
Ironwood позволит пользователям проверить, что количество ZEC в обращении является корректным. Пользователи получат эту возможность сразу после активации Ironwood, просто суммируя балансы активных пулов. Им не придётся рассуждать о мотивах или действиях других людей и не придётся ждать миграции средств из пула Orchard, чтобы убедиться, что общее количество ZEC в обращении соответствует правилам протокола.
Ironwood
Цель Ironwood — восстановить способность каждого пользователя Zcash проверять целостность денежного предложения Zcash. Эта проверяемость была нарушена самим фактом существования уязвимости, позволявшей подделывать монеты. Сразу после активации пользователи смогут независимо проверить, что количество ZEC в обращении корректно, просто запустив ноду.
Для этого Ironwood должен:
- Создать новый защищённый пул на основе схемы Orchard, но уже с исправлением недавней уязвимости, позволявшей подделывать монеты.
- Признавать недействительной любую транзакцию, которая создаёт новый выход в старом пуле Orchard.
- Повысить уверенность в безопасности кодовой базы с помощью таких методов, как аудит безопасности с применением ИИ и формальная верификация. Все эти меры направлены на подтверждение отсутствия дополнительных ошибок, которые могли бы позволить подделывать монеты.
Почему Ironwood работает
Ironwood меняет то, что может происходить внутри пула Orchard.
После активации любая транзакция, создающая новый выход в пуле Orchard, будет отклоняться. Это означает, что ZEC больше не смогут продолжать циркулировать внутри этого пула. С этого момента средства в пуле Orchard смогут двигаться только одним способом — выходя из пула через «турникет».
«Турникеты» — это ончейн-механизм учёта Zcash для переводов между пулами. Они отслеживают, сколько ZEC вошло в каждый пул и сколько вышло из него, и отклоняют любую транзакцию, которая пытается вывести из пула больше ZEC, чем туда легитимно вошло.
В совокупности эти правила означают, что пользователям не нужно ждать, пока все средства из Orchard будут перенесены в новый пул. Более того, им не нужно ждать вообще никакой миграции. Как только Ironwood активируется, пользователи смогут на основании правил консенсуса проверить, что в обращении не может находиться больше ZEC, чем должно быть. Это даёт немедленную гарантию корректности количества ZEC в обращении без необходимости кому-либо доверять. Лишние ZEC не смогут тайно циркулировать между пользователями пула Orchard и не смогут выйти в другой пул.
Получение данных о том, была ли уязвимость использована
Ironwood также может дать свидетельства о том, была ли уязвимость Orchard когда-либо использована. Но достижение основной цели Ironwood не зависит от того, появятся такие свидетельства или нет.
Когда пользователи будут переносить средства из существующего пула Orchard в новый пул, любой гипотетический создатель поддельных монет окажется перед выбором: попытаться вывести поддельные средства и рискнуть раскрыть их существование или оставить их в старом пуле и рискнуть тем, что в будущем их уже нельзя будет переместить.
Это создаёт два возможных сценария.
Сценарий A: из существующего пула Orchard не предпринимается попыток вывести лишние ZEC. Это стало бы сильным свидетельством того, что уязвимость никогда не была использована, поскольку у создателя поддельных монет был бы серьёзный стимул вывести такие средства до того, как легитимные пользователи завершат свои миграции.
Сценарий B: из существующего пула Orchard предпринимается попытка вывести лишние ZEC. В этом случае лишние средства не смогут покинуть пул и фактически будут уничтожены. К сожалению, это необходимо для сохранения текущего количества ZEC в обращении во всех пулах. Такой сценарий дал бы публично проверяемое свидетельство того, что подделка монет действительно произошла. Поскольку мы считаем, что уязвимость не была использована, мы считаем этот сценарий маловероятным.
Кошельки
Мы рекомендуем всем кошелькам, которые поддерживают существующий пул Orchard, добавить поддержку нового пула.
Кошельки должны продолжать нормально поддерживать существующий пул Orchard до активации Ironwood, а после активации — переносить средства пользователей из существующего пула Orchard в новый пул. У миграции есть последствия для конфиденциальности: она раскрывает сумму переведённых ZEC и время, когда был выполнен перевод. Однако мы считаем, что влияние на конфиденциальность пользователей будет умеренным и может быть дополнительно снижено за счёт поведения кошельков.
Существующие получатели Orchard, то есть адреса, останутся действительными, и их не нужно будет менять. ZEC, отправленные на получатели Orchard, созданные до активации Ironwood, будут автоматически получены как ZEC в новом пуле.
Сроки
Как и большинство сетевых обновлений, Ironwood потребует разработки, тестирования, проверки и координации по всей экосистеме. Опыт показывает, что такая работа часто занимает больше времени, чем ожидалось, поэтому мы считаем, что при обсуждении сроков лучше быть осторожными, чем обещать слишком много и затем не выполнить обещанное.
Ещё один источник неопределённости — продолжающийся вывод zcashd из эксплуатации. Shielded Labs не участвует напрямую в этой работе, однако миграция бирж, майнинг-пулов, кошельков и других инфраструктурных провайдеров на Zebra может повлиять на сроки этого сетевого обновления.
Мы ожидаем, что лучше поймём возможные сроки по мере созревания планов реализации и продолжения обсуждений.
Вывод
Мы хотим подчеркнуть: мы считаем маловероятным, что уязвимость Orchard была использована до исправления. Но когда речь идёт о целостности денежного предложения Zcash, пользователи не должны полагаться на нашу оценку или на чью-либо ещё.
Ironwood разработан для того, чтобы восстановить гарантию корректности количества ZEC в обращении, которую каждый сможет проверить самостоятельно. Независимо от того, была ли уязвимость когда-либо использована, цель остаётся одной и той же: сделать целостность денежного предложения Zcash проверяемой.
Мы считаем Ironwood лучшим путём вперёд и рассчитываем обсудить это предложение с сообществом Zcash.
Благодарности
Спасибо Шону Боу, Деву Оджхе, Дэвиду Кэмпбеллу, Алексу Борнштейну, Нейту Уилкоксу, Крису Наттикомбу, Виталику Бутерину, Баладжи Шринивасану, Тейлору Хорнби, Джошу Суихарту и Татьяне за рецензию и обратную связь.
Отдельная благодарность Крису Наттикомбу за предложение сделать так, чтобы обновление Ironwood отключало транзакции, создающие выходы в старом пуле Orchard. Это оказалось критически важным для достижения цели Ironwood.
Комментировать статью