Stellar: ошибка на десять миллионов долларов

В начале 2017 года Stellar - криптовалюта из топ-10 - пострадала от серьезной ошибки, однако ее создатели предпочли не рассказывать подробно об обнаруженной уязвимости. Bloomchain ознакомился с отчетом компании Messari, которая проследила за развитием событий.

Криптовалюта Stellar Lumens (XLM), которая сейчас занимает восьмое место по рыночной капитализации, два года назад пострадала от серьезной ошибки. Однако тогда ситуацию решили не предавать широкой огласке, и она осталась практически незамеченной. К таким выводам пришла аналитическая компания Messari, которая занимается исследованием рынка криптовалют. Bloomchain ознакомился с отчетом Messari и узнал, как развивались события. 

Криптовалюта Stellar

Ситуация, о которой идет речь, произошла в начале 2017 года. Тогда неизвестный злоумышленник, воспользовавшись багом в протоколе криптовалюты, смог создать около 2,25 млрд XLM. Общая стоимость новых монет на тот момент составляла примерно $10 млн. Как отмечают аналитики Messari, практически сразу после атаки новые XLM были проданы на криптобиржах. 

Stellar не единственная криптовалюта, которая столкнулась с такой проблемой — инфляционной ошибкой. Messari напоминает о других похожих случаях: 

  • Создатель Zcash — компания Electronic Coin — недавно опубликовала отчет об ошибке, обнаруженной в протоколе криптовалюты. Теоретически выявленный баг мог позволить бесконечно выпускать новые монеты
  • В декабре 2018 года компания Coinmetrics обнаружила баг в протоколе криптовалюты Bitcoin Private, который позволил эмитировать дополнительные 2 млн монет, не предусмотренные white paper. Команда криптовалюты впоследствии пыталась бороться с проблемой, сжигая монеты. 

Однако случай Stellar Lumens выделяется на фоне других историй — в первую очередь, масштабом случившегося. Выпущенные в результате ошибки токены составили 25% от объема находившихся в обращении XLM и 2,2% от общей запланированной эмиссии криптовалюты. Интересна и реакция разработчиков на ситуацию, которые предпочли оставить эту историю вне поля зрения сообщества. Многие узнали об инфляционном баге Stellar только из отчета Messari. 

Ошибка Stellar

Как отмечают аналитики Messari, создание новых XLM стало возможно из-за бага в функции «MergeOPFrame::doApply». Ошибка позволила объединять учетные записи и удваивать баланс на счете. В первом квартале 2017 года ошибка использовалась 110 раз, что и позволило создать более 2 млрд новых XLM.

Инфляционный баг Stellar
Источник: Messari

Разработчик XLM — Stellar Development Foundation (SDF) — обнаружил баг в начале апреля 2017 года. Как отмечается в исследовании Messari, после обнаружения разработчики «быстро и незаметно» исправили баг. В каналах разработчиков Stellar отчеты о работе сети помечаются ярлыками с конкретной датой. В трех таких отчетах была нестандартная пометка «не для широкого распространения». Именно в этих отчетах была информации об исправлении инфляционного бага. 

баг стеллар (xlm)
Источник: Messari

В оперативном решении проблемы участвовал основатель Stellar Джед Маккалеб, который 6 апреля поставил предварительный фикс бага. Официальное сообщение об обновлении сети появилось 30 апреля. В это время вектор атаки оставался открытым, однако, по мнению специалистов Messari, причина заключалась в тестировании исправления. 

В официальном сообщении 30 апреля SDF упомянул об исправленной ошибке, однако уделил ей очень мало внимания. В частности, разработчики не сказали о масштабе проблемы или о том, что созданные XLM были выведены на биржи и проданы. Чтобы исправить ситуацию, создатели криптовалюты приняли решение сжечь соответствующее количество токенов из резервов проекта. 

Растпространение Stellar
Источник: Messari

Аналитики Messari смогли обнаружить баг с помощью клиента Horizon, в обозревателях блоков он недоступен. Представитель SDF Кристиан Руддер прокомментировал появление отчета Messari и согласился с тем, что разработчики криптовалюты могли отреагировать на инфляционную ошибку иначе. 

«В апреле 2017 года Stellar был развивающимся проектом с открытым исходным кодом и небольшим, но преданным сообществом разработчиков. Мы упоминали об этой ошибке дважды и были уверены, что она стала известна. Мы предприняли шаги по сожжению токенов для того, чтобы запланированный объем эмиссии оставался прежним. Сейчас Stellar стал значимым проектом, и наши стандарты раскрытия информации изменились, чтобы соответствовать этой реальности. С тех пор не было ни одной серьезной ошибки, но если бы была — мы бы рассказали о ней во всех подробностях», — заявил Руддер.

Он добавил, что до конца года будет проведен полный учет Stellar Lumens. Предполагается, что в отчете по итогам этой работы будет больше информации и о случившейся два года назад инфляционной ошибке, которая стоила $10 млн.