Разработчики криптовалюты Zcash, занимающей 17 место (https://coinmarketcap.com/coins/) по уровню капитализации (271 млн долларов) и обеспечивающей анонимность и конфиденциальность метаданных транзакций, раскрыли (https://z.cash/blog/zcash-counterfeiting-vulnerability-succe... сведения о критической уязвимости (CVE-2019-7167), позволявшей без ограничений генерировать новые средства (создавать поддельные монеты через предъявление фальшивых доказательств проделанной работы). Несмотря на то, что проблема была выявлена в начале марта 2018 года и скрытно исправлена в октябре прошлого года, информация об уязвимости публично раскрыта только сейчас.
Сведения о наличии уязвимости до сих пор держалась в тайне - до недавних пор о проблеме знало только 4 человека: изначально выявивший проблему криптоаналитик и три сотрудника компании Zcash Company (два криптографа и директор). Уязвимость вызвана недоработкой в алгоритме криптографического подтверждения платежей zk-SNARK (https://github.com/scipr-lab/libsnark), в котором используется метод доказательства с нулевым разглашением (https://ru.wikipedia.org/wiki/%D0%94%D0%....
Сразу после обнаружения проблемы разработчики удалили опубликованный во время запуска проекта файл (https://s3.amazonaws.com/zcashfinalmpc/transcript) с расшифровкой протокола MPC (https://ru.wikipedia.org/wiki/%D0%9F%D1%... (multi-party computation), который мог использоваться для вычисления параметров, необходимых для эксплуатации уязвимости. В качестве причины пропадания файла было указано его случайное удаление с сервера по недосмотру.
В октябре было предложено обновление zk-SNARK с реализацией новой системы подтверждения "Sprout-on-Groth16", в которой были заменены приводящие к проблеме параметры. Для перехода на новую версию протокола было выполнено обновление (https://z.cash/upgrade/sapling/) всей сети Zcash под предлогом внесения изменений для значительного повышения эффективности обработки транзакций.
13 ноября проектам Horizen и Komodo, использующим технологии Zcash, было отправлено уведомление о наличии уязвимости, без раскрытия деталей, но с настоятельной рекомендацией перейти на использование алгоритма Groth16. Вскоре данные криптовалюты тоже выпустили обновление.
Отмечается, что в настоящее время пользователям Zcash ничего не угрожает, уязвимость три месяца назад устранена на уровне обновления сети и пользователям не нужно выполнять какие-либо действия для защиты. Маловероятно, что кто-то из злоумышленников смог независимо выявить уязвимость, так как проблема была достаточно изощрённой и обнаружить её могли только очень опытные эксперты в области криптографии (например, до этого проводилось несколько аудитов, которые не выявили проблем). Утверждается, что разработчики провели детальный анализ состояния блокчейна и не выявили следов использования уязвимости. Если бы средства были фиктивно сгенерированы в блокчейне обязательно бы остались следы, которые могли быть легко обнаружены.
URL: https://z.cash/blog/zcash-counterfeiting-vulnerability-succe.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=50105