Примечание редактора: 5 июня по пекинскому времени стало известно о критической уязвимости подделки в новом пуле конфиденциальности Orchard проекта конфиденциальности Zcash, из-за чего токен ZEC обвалился вдвое, достигнув минимума около 250 долларов.
Спустя около 10 дней панические настроения на рынке несколько поутихли, цена ZEC также восстановилась и сегодня вернулась к отметке в 500 долларов. (Рекомендуем к прочтению: «Уязвимость "бесконечной печати денег" скрывалась четыре года, ZEC за день потерял половину стоимости»)
Сегодня утром основатель Zcash, Зуко Уилкокс, снова опубликовал пространный пост, отвечая на волнующие рынок вопросы.
Он заявил, что, скорее всего, уязвимость Orchard ранее не использовалась, и законные средства в Orchard можно восстановить; в настоящее время пользователи не могут самостоятельно проверить, не превышен ли объём предложения Zcash, но обновление Ironwood закроет пул Orchard и восстановит эту возможность проверки; в ходе продолжающегося аудита других уязвимостей подделки не обнаружено, но для полной уверенности требуется ещё больше работы.
Недавняя уязвимость Orchard подняла важные вопросы о предложении Zcash и безопасности средств пользователей. В обсуждении смешались несколько разных тем, что затрудняет понимание реального влияния этой уязвимости на пользователей. Эта статья пытается разделить эти проблемы и объяснить значение каждой из них для пользователей.
Уязвимость Orchard породила четыре важных вопроса:
1. Использовалась ли уязвимость Orchard ранее?
2. Можно ли восстановить законные средства из Orchard?
3. Могут ли пользователи проверить, что предложение Zcash не было увеличено?
4. Как мы можем узнать, что не существует других уязвимостей для подделки?
Использовалась ли уязвимость Orchard ранее?
Неизвестно. Мы считаем, что вероятность предыдущего использования невелика, хотя полностью исключить её нельзя. Мы считаем, что уязвимость, скорее всего, не использовалась, по трём причинам:
Несмотря на многолетний постоянный аудит ведущими мировыми криптографами и исследователями безопасности, эта уязвимость ранее не была обнаружена. Её окончательное обнаружение не было случайным; её обнаружил Тейлор Хорнби из Shielded Labs, целью которого было активное выявление подобных уязвимостей безопасности до того, как ими смогут воспользоваться злоумышленники.
Тейлор использовал передовые методы исследования безопасности с помощью ИИ и специально созданные пользовательские инструменты, разработанные для обнаружения тонких изъянов, упущенных другими, что было бы сложнее сделать тем, кто не погружён глубоко в код Zcash.
Как только уязвимость была обнаружена, разработчики Zcash (под руководством команды Zcash Open Development Labs) оперативно скоординировались с пулами, временно заморозили пул Orchard и внедрили исправления, тем самым ограничив окно возможности для любой атаки.
Эксплойты криптовалютных уязвимостей — обычное дело, и злоумышленники, как правило, обналичивают их как можно быстрее, особенно после публичного раскрытия уязвимости. Чтобы извлечь выгоду из этой уязвимости, злоумышленнику необходимо обменять поддельный ZEC на ценные активы, что обычно приводит к выходу ZEC из пула Orchard через механизм турникета (turnstile).
Если бы уязвимость была использована до исправления, мы ожидали бы, что доказательства этого к настоящему моменту уже появились. Исторически эксплойты криптовалют обычно были операциями «снайпера», а не стратегиями, скрытыми на месяцы или годы, как в «4D шахматах».
Можно ли восстановить законные средства из Orchard?
Мы считаем, что да, потому что мы считаем, что уязвимость никогда не использовалась. Если это предположение верно, все законные средства в Orchard по-прежнему можно полностью восстановить.
С другой стороны, если подделка в Orchard действительно произошла, существующий механизм турникета ограничит общий объём миграции суммой ZEC, законно вошедшей в этот пул.
Следовательно, если поддельные средства будут мигрированы раньше законных, пользователи не смогут восстановить часть или все свои законные средства из Orchard.
Мы считаем, что этот сценарий маловероятен. Тем не менее, для более осторожных пользователей по-прежнему рекомендуется вывести свои ZEC из Orchard.
Но перед этим они должны знать следующее:
· Перемещение средств в прозрачный пул (т.е. на t-адрес) раскроет как сумму перевода, так и время перевода, а также публично свяжет эти средства с этим t-адресом.
· Перемещение средств из пула Orchard в пул Sapling раскроет сумму и время перевода, но, в отличие от перевода на t-адрес, не свяжет эти средства с конкретным адресом или историей транзакций.
· Пул Sapling полагается на церемонию доверительной настройки (trusted setup), проведённую в 2018 году. Безопасность, зависящая от этой доверительной настройки, — это дополнительный риск, на который следует обратить внимание пользователям.
· Насколько нам известно, YWallet и Zkool в настоящее время являются единственными широко используемыми самокастодиальными кошельками для Zcash, которые поддерживают пул Sapling.
· Перевод средств на новый кошелёк или в кастодиальный сервис влечёт за собой дополнительные риски, включая ошибки пользователя, дефекты ПО, риск со стороны кастодиана или другие непредвиденные проблемы.
В целом, мы считаем, что уровень указанных рисков умеренный.
Если ваши средства в настоящее время хранятся в экранированном (shielded) самокастодиальном кошельке, учитывая нашу оценку, что предыдущая подделка маловероятна, оставить их там — разумный выбор. Если у вас есть безопасный способ, перевод средств в другое место также может быть разумным. Пользователи могут прийти к разным выводам в зависимости от своей ситуации.
Могут ли пользователи проверить, что предложение Zcash не было увеличено?
Пока нет. Предыдущее существование этой уязвимости не позволяло пользователям независимо проверить, не превышает ли количество ZEC, находящихся в обращении в экранированных пулах, правильную сумму.
Однако, как мы указывали в предыдущем посте, обновление Ironwood восстанавливает эту возможность. На диаграмме ниже показано, почему.
Предлагаемое сетевое обновление решает эту проблему, добавляя гарантию «отсутствия других неизвестных уязвимостей подделки» и закрывая (запечатывая) пул Orchard. Новые средства больше не могут войти, а средства внутри пула больше не могут находиться в обращении.
Единственный оставшийся путь выхода — через существующий механизм турникета, который гарантирует, что из пула Orchard не выйдет больше ZEC, чем законно вошло в него.
Это изменение восстанавливает возможность проверки целостности (здоровья) предложения Zcash.
В настоящее время, если в пуле Orchard есть поддельные средства, они могут продолжать циркулировать внутри пула. После обновления это станет невозможным. Независимо от того, происходила ли подделка, любой, кто запускает узел, сможет проверить, что количество ZEC в обращении не превышает правильную сумму.
Пользователям не нужно ждать вывода средств из Orchard или делать предположения о возможных действиях злоумышленников или других пользователей. Сам протокол обеспечивает проверяемую гарантию: лишние ZEC не могут продолжать циркулировать внутри Orchard и увеличивать предложение.
Это важно, потому что долгосрочная надёжность Zcash зависит от способности пользователей самостоятельно проверять целостность его предложения. Ironwood восстанавливает способность пользователей независимо проверять, соблюдается ли ограничение на предложение, установленное протоколом.
Как мы можем узнать, что не существует других уязвимостей для подделки?
Мы пока не можем быть в этом полностью уверены, но у нас есть основания полагать, что других уязвимостей нет. Shielded Labs и несколько других команд внимательно изучают протокол Zcash на наличие других уязвимостей подделки.
Это включает использование ещё не выпущенной модели ИИ Mythos с помощью компании Anthropic для поиска дополнительных уязвимостей незадолго до приостановки работы Mythos. Мы планируем поделиться более подробной информацией об этом аудите и его выводах в последующих публикациях.
На данный момент других уязвимостей подделки не обнаружено. Высокий уровень экспертизы, объём усилий и продвинутый ИИ-анализ, задействованные в этом поиске, дают нам больше уверенности в том, что подобные уязвимости больше не остались незамеченными.
Кроме того, мы сотрудничаем с такими проектами, как Tachyon Project, чтобы предоставить дополнительные гарантии отсутствия других уязвимостей подделки в Zcash. Мы также расскажем об этом подробнее в будущих публикациях.
Выводы
Уязвимость Orchard породила четыре важных вопроса: использовалась ли уязвимость ранее, можно ли восстановить законные средства из Orchard, могут ли пользователи проверить, что предложение Zcash не было увеличено, и существуют ли другие необнаруженные уязвимости подделки.
Мы считаем, что предыдущее использование маловероятно, поэтому законные средства из Orchard можно восстановить, а текущее предложение Zcash безопасно. Основываясь на постоянном аудите нескольких независимых исследователей и команд, мы также всё больше уверены, что других необнаруженных уязвимостей подделки не существует.
Тем не менее, пользователи в настоящее время не могут проверить безопасность предложения Zcash, и они не должны полагаться на нашу оценку — или оценку любого другого лица.
Предлагаемое сетевое обновление решает эту проблему. Закрыв (запечатав) пул Orchard, оно восстанавливает способность пользователей независимо проверять безопасность предложения Zcash. Пользователям больше не нужно судить о том, происходила ли подделка, чтобы проверить, соблюдаются ли ограничения на предложение, установленные протоколом.









