Разработчики Zcash в спешке выпустили экстренные патчи на прошлой неделе после обнаружения критической уязвимости в защищённом пуле Orchard, которая могла позволить злоумышленнику неограниченно создавать поддельные ZEC. Ошибку обнаружил исследователь безопасности Тейлор Хорнби 29 мая с помощью ИИ-ассистированных формальных методов, что вызвало «пожарную тревогу», завершившуюся хардфорком всего через четыре дня. Однако из-за архитектуры приватности Zcash, делающей невозможным аудит эмиссии, команда не может доказать, что эксплойт был использован — или что он не был использован.
Ошибка и её обнаружение
Недостаток заключался в недоопределённом элементе внутри компонента умножения на эллиптической кривой в крейте halo2_gadgets, части системы доказательств с нулевым разглашением, лежащей в основе Orchard. Он существовал с момента активации основной сети Orchard в мае 2022 года — примерно четыре года. Это означало, что любой, кто знал о нём, теоретически мог создавать ZEC из воздуха, не оставляя следов в блокчейне.
Хорнби обнаружил проблему с помощью инструментов формальной верификации, обученных на криптографическом коде. Уязвимость затрагивала все версии halo2_gadgets до v0.5.0, orchard до v0.14.0 и версии zcashd с v5.0.0 по v6.12.3.
Экстренные патчи развёрнуты
В течение нескольких часов после раскрытия команда выкатила софтфорк через Zebra 4.5.3, который временно полностью отключил транзакции Orchard. Постоянное исправление пришло с хардфорком NU6.2 — Zebra 5.0 — активированным 2 июня на блоке 3 364 600, который исправил саму схему. Пользователям на затронутых узлах необходимо было немедленно обновиться, чтобы остаться в правильной цепи.
Shielded Labs, вносящая вклад в разработку Zcash, заявила, что считает эксплуатацию маловероятной, но не может это окончательно доказать. Эта неопределённость заложена в архитектуру системы: защищённые пулы скрывают суммы и остатки транзакций, делая криптографически невозможным аудит общего объёма эмиссии.
Вопрос без ответа
Технический директор Ripple Дэвид Шварц высказался о практическом риске. Пассивные держатели, которые никогда не перемещают свои монеты, будут в безопасности, сказал он — при условии, что ошибка никогда не была задействована. Но это условие невозможно проверить. Единственный способ быть уверенным — поставить под угрозу ту самую защиту, для которой и был создан Zcash.
Это редкий момент, когда ключевая особенность конфиденциальной монеты становится её самым большим недостатком. Если злоумышленник создал поддельные ZEC и пустил их в обращение, это невозможно обнаружить. Эмиссия может быть раздута, и никто не узнает.
Реакция рынка
ZEC не стал ждать ответов. Цена упала более чем на 30% за одну сессию после раскрытия 29 мая, ненадолго достигнув самого низкого уровня за последний месяц. Распродажа отразила не только саму ошибку, но и неопределённость относительно её потенциального воздействия. Конфиденциальная монета, которая не может проверить собственную эмиссию, — трудный для продажи актив, по крайней мере в краткосрочной перспективе.
Патчи уже работают, и транзакции Orchard снова активны. Но вопрос, который остаётся — была ли ошибка когда-либо эксплуатирована? — это вопрос, на который архитектура Zcash, возможно, никогда не позволит ответить.




