Solana устранила критическую уязвимость в системе конфиденциальных токенов

Solana Foundation раскрыла ранее неизвестную уязвимость в криптографическом механизме конфиденциальных токенов, которая могла привести к несанкционированному выпуску или выводу цифровых активов. Ошибка касалась системы нулевых доказательств (zero-knowledge proofs, ZKP), использующихся в рамках Token-22 — расширения для обеспечения приватности балансов и переводов в сети Solana. Уязвимость была обнаружена 16 апреля через GitHub-уведомление команды Anza, в котором также отмечался рабочий прототип возможной атаки.
Согласно опубликованному отчету, ошибка находилась в модуле ZK ElGamal Proof, обеспечивающем проверку ZK-доказательств. В результате некорректной реализации хеширования в процессе преобразования Fiat-Shamir, использующегося для превращения интерактивного доказательства в одноразовое, можно было сгенерировать ложные подтверждения, которые считались действительными верификаторами в блокчейне. Это создавало возможности для потенциальной подделки транзакций, выпуска новых токенов и несанкционированного вывода средств.
Команды разработчиков Anza, Firedancer и Jito оперативно подтвердили наличие уязвимости и приступили к созданию патча в тот же день. Уже 17 апреля обновление было передано валидаторам в закрытом режиме. Спустя несколько часов появился дополнительный патч, устраняющий смежную проблему. Независимую проверку кода провели аудиторы из Asymmetric Research, Neodyme и OtterSec, подтвердив корректность исправлений.
Уязвимость не затронула стандартные SPL-токены и основную логику программы Token-2022. По данным фонда, нет признаков того, что ошибка была эксплуатирована злоумышленниками. Все пользовательские средства остаются в безопасности. Уже 18 апреля большинство валидаторов внедрило обновления, полностью устранив риск дальнейших последствий.