Что случилось с Zcash
Zcash – одна из самых известных приватных криптовалют. В отличие от обычных публичных блокчейнов, где можно увидеть адреса и суммы переводов, Zcash позволяет проводить защищенные транзакции. Они скрывают отправителя, получателя и сумму, но при этом сеть все равно может проверить операцию.
За эту проверку отвечают доказательства с нулевым разглашением. Проще говоря, пользователь доказывает сети: «у меня есть право потратить эти монеты, и транзакция не нарушает правила», но не раскрывает детали.
Orchard – самый новый защищенный пул Zcash. Его запустили в мае 2022 года в рамках обновления NU5. Именно в нем нашли критический баг.
Проблема была в так называемой soundness-ошибке. Это класс уязвимостей, при котором система может принять то, что должна была отклонить. В случае Orchard речь шла о недостаточно ограниченном элементе в zero-knowledge-схеме. Из-за этого ложные входные данные могли пройти проверку на эллиптической кривой.
Если сильно упростить, в криптографической схеме не хватало одного важного «зажима».
Честный пользователь ничего бы не заметил: обычные транзакции проходили правильно, тесты тоже могли выглядеть нормально. Но злонамеренный участник мог подобрать такие данные, которые формально проходили проверку, хотя не соответствовали правилам протокола.