Solana могла потерять $27 млн в час, из-за ошибки

429

По данным исследователей безопасности из Neodyme, из-за ошибки в библиотеке протокола Solana (Solana Protocol Library (SPL)) — наборе справочных документов для проектов Solana, злоумышленники могли украсть деньги из нескольких проектов Solana, со скоростью 27 миллионов долларов в час.

Затронутые проекты включают агрегатор доходности Tulip Protocol и протоколы кредитования Solend и Larix. В настоящее время на эти проекты приходится 1,7 миллиарда долларов (хотя до сегодняшнего краха рынка это было значительно больше).

Обнаружение ошибки на миллиард долларов

В своем сообщении в блоге Neodyme объяснил, что ошибка была впервые публично раскрыта одним из аудиторов Neodyme, известным как Simon, на платформе обмена файлами GitHub в июне. В то время исследователи безопасности не знали, можно ли его использовать и насколько велико его влияние. Ошибка осталась незамеченной.

1 декабря Simon увидел, что проблема все еще открыта и ошибка не исправлена. Из-за его опасений исследователи безопасности в Neodyme начали тестирование, чтобы увидеть, можно ли использовать ошибку, и оценить, насколько она серьезна. По словам Neodyme, это была «на первый взгляд безобидная ошибка округления», но они быстро обнаружили, что она может украсть целое состояние — миллионами крошечных кусочков.

Баг работал следующим образом. Проще говоря, для приложений Solana есть механизм, когда вы кладете и снимаете средства. Если протокол соответствовал справочным документам SPL, то в момент вывода средства округлялись бы до ближайшего целого числа. Это могло бы произойти только в том случае, если бы пользователю была задолженность по части наименьшей контрольной единицы, известной как Lamport (это похоже на сатоши, наименьшее количество биткойнов).

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

Но есть ли кто-нибудь, чтобы обыгрывать систему, задавались вопросом исследователи, наверняка они могли бы в конечном итоге взять крошечные дополнительные суммы? И если бы они делали это снова и снова, возможно, они могли бы заработать значительные суммы денег.

Исследователи проверили свою теорию на практике на копии блокчейна. Они отправили транзакцию, предназначенную для использования ошибки, и ей удалось украсть 0,000001 BTC (0,047 доллара США) из-за ошибки округления.

Исследователи подсчитали, что они могут выполнить эту ошибку 150-200 раз за одну транзакцию и поместить многие из этих транзакций в один блок. Они посчитали, что такой эксплойт может украсть средства со скоростью 7500 долларов в секунду или 27 миллионов долларов в час.

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

Исследователи быстро связались с несколькими проектами Solana, которые, по их мнению, были затронуты этой ошибкой. Поскольку многие проекты Solana имеют закрытый исходный код, это была гораздо более сложная задача и они ошибочно определили пару проектов. Но им удалось связаться с Solend, Tulip и Larix, которые исправили ошибку.

После того, как ошибка была обнаружена, Solana Labs также исправила справочные документы, чтобы гарантировать, что новые проекты, следующие ее инструкциям, не будут вводить ее снова.

Предыдущая статьяСеть Celsius теряет деньги в результате взлома BadgerDAO
Следующая статьяFTX ищет $1,5 млрд в рамках нового раунда финансирования
В бывшем - банковский сотрудник, отвечающий за инвестиционную стратегию. На данный момент - интересуюсь блокчейн технологиями и финтех сектором. Торгую на фондовом рынке и на криптовалютной бирже Binance.