В протоколе Zerocoin найдена серьезная уязвимость

Как стало недавно известно, криптовалюта Zcoin (XZC) обнаружила уязвимость в криптографии протокола Zerocoin, которая позволяет злоумышленникам подделывать доказательства с нулевым разглашением и создавать монеты из воздуха. Монеты, использующие протокол Zerocoin, уязвимы для атаки до тех пор, пока он не будет отключен.

Хотя обнаруженный недостаток можно исправить, команда Zcoin не планирует выделять ресурсы для решения этой проблемы и вместо этого продолжит концентрироваться на переходе на свой новый протокол конфиденциальности Sigma.

Криптографические недостатки Zerocoin

Как сообщают новости Zcoin, 9 апреля 2019 года команда XZC была предупреждена о серии нарушений при создании и расходе 100 токенов. Они немедленно связались со всеми пулами, биржами и проектами, которые используют протокол Zerocoin для его отключения до тех пор, пока проводилось глубокое расследование. К 19 апреля была найдена основная причина уязвимости, а 24 апреля было выпущено экстренное обновление.

В ходе расследования команда обнаружила, что уязвимость не была результатом ошибки кодирования, а фактически была криптографической ошибкой в одном из доказательств с нулевым разглашением, которая существовала с момента появления протокола Zerocoin.

Как работает протокол Zerocoin

Zerocoin работает, позволяя людям сжигать свои монеты (минт), а затем получать их позже (спенд) за новые монеты без предыдущей истории транзакций, предоставляя доказательство с нулевым разглашением, которое доказывает, что они сожгли монеты, но не показывая, какие именно.

Чтобы люди не могли использовать одно и то же доказательство с нулевым разглашением для получения новых монет, каждый минт Zerocoin при трате выдаст уникальный серийный номер.

Однако этот недостаток позволяет мошеннику повторно использовать один минт для создания множества спендов с уникальными серийными номерами, то есть, он может создавать новые монеты из воздуха и управлять ими по своему усмотрению.

Новости Zcoin сообщают, что примерно 1 процент от циркулирующего предложения XZC был создан как раз из воздуха. Монеты, у которых есть характеристика «sporks masterternode», могут немедленно отключить Zerocoin, защищая себя от атаки. А вот проектам без этой функции потребуется хардфорк для отключения Zerocoin.

Кроме того, монеты, которые отключают Zerocoin, могут поставить под угрозу конфиденциальность последующих транзакций, пока не будет внедрен новый протокол конфиденциальности.

Zerocoin мертв?

Директор по операциям Zcoin, Рубен Яп (Reuben Yap), рассказал, существует ли план решения проблем, с которыми столкнулся проект:

Говорить, что Zerocoin мертв, пока еще слишком рано. Вероятно, есть способы исправить эту уязвимость, и мы уже передаем некоторые идеи другим командам. Единственная причина, по которой мы не будем выделять на это ресурсы, заключается в том, что мы все равно осуществляем запланированный переход на другой протокол в соответствии с нашей долгосрочной дорожной картой.

Большую часть 2018 года компания потратила на подготовку перехода с Zerocoin на Sigma, который расширяет функциональные возможности и функции конфиденциальности во время процесса майнинга и расходов. Новый протокол также упрощает аудит и сокращает объем проверок с 25 КБ до 1,5 КБ. Sigma находится на заключительной стадии разработки, и его релиз произойдет в течение следующих двух месяцев.

Рубен Яп также рассказал, почему Zerocoin использовался, когда в оригинальной библиотеке были предупреждения о том, что его нельзя применять в производстве.

Протокол и библиотека Zerocoin не стоят на месте, они постоянно совершенствуются и улучшаются по сравнению с оригиналом. С момента своего появления в 2013 году было опубликовано не менее 499 академических ссылок, в том числе и статья, в которой были представлены сведения об обнаруженных недостатках и способах их устранения. Этот конкретный инцидент не имел ничего общего с ошибками кодирования в библиотеке, он является результатом фундаментального недостатка в одном из криптографических блоков Zerocoin, который гораздо труднее найти.

Рубен подчеркивает, что они все еще сотрудничают и работают вместе с другими проектами по устранению этих уязвимостей, но даже до инцидента они уже находились на заключительных этапах перехода от протокола Zerocoin.

Неизвестно, что произойдет с другими криптовалютами, использующими протокол Zerocoin, поскольку они по-прежнему уязвимы для атак, а перейти на другой протокол совсем непросто. Zcoin еще не раскрыл специфику криптографического недостатка, потому что он потенциально может вызвать дополнительные атаки на XZC и другие криптовалюты, использующие протокол. На данный момент команда связалась с другими проектами, использующими Zerocoin, чтобы дать им время для защиты от злоумышленников.

Обновлено: 29.04.2019 — 14:12