Большинство громких взломов в DeFi случается не из-за слабой криптографии, а из-за ошибок в коде смарт-контрактов. Годами язык Solidity, на котором написана почти вся экосистема Ethereum, оставлял разработчику слишком много возможностей выстрелить себе в ногу: одна незамеченная строка — и протокол теряет сотни миллионов. Move пытается закрыть эту проблему иначе — не советами и паттернами, а самим устройством языка, делая целые классы уязвимостей попросту невыразимыми. Разберём, как это работает, действительно ли Move безопаснее и где проходит граница его возможностей.
Откуда взялся Move и в чём его идея
Move создали внутри Meta (Facebook) для несостоявшегося платёжного проекта Diem, ранее известного как Libra. Сам Diem закрыли, но язык пережил его: бывшие инженеры проекта основали команды, которые построили на нём два блокчейна — Aptos и Sui. Главная идея Move — обращаться с цифровыми активами как с полноправными ресурсами, а не как с числами в таблице балансов.
В основе лежат так называемые линейные типы: ресурс можно передать другому владельцу, но нельзя скопировать или незаметно уничтожить. Если разработчик попытается клонировать монету, проигнорировать возвращённый ресурс или перезаписать его без явного удаления, компилятор просто откажется собирать программу. Там, где в Solidity ценность актива — это условность, поддерживаемая договорённостями в коде, в Move дефицитность встроена прямо в систему типов. Дополнительно язык проектировался под формальную верификацию: инструмент Move Prover позволяет математически доказать, что контракт ведёт себя ровно так, как задумано.
Какие классы уязвимостей устраняет Move
Самое важное отличие Move в том, что он убирает не отдельные баги, а целые их семейства — те, что годами стоили Solidity-протоколам миллиарды. Вот ключевые классы уязвимостей смарт-контрактов и то, как язык их закрывает.
| Класс уязвимости в Solidity | Как его закрывает Move |
|---|---|
| Реентрантность (повторный вход) | Нет неожиданных обратных вызовов; повторный доступ к ресурсу прерывается на уровне машины |
| Переполнение чисел | Виртуальная машина прерывает операцию при переполнении по умолчанию |
| Потеря или дублирование токенов | Линейные типы: ресурс нельзя скопировать или молча уничтожить |
| Ошибки контроля доступа | Право на действие — это отдельный объект-полномочие, а не проверка отправителя |
Для сравнения, самые дорогие провалы Solidity — это как раз представители этих семейств: реентрантность обрушила The DAO в 2016 году примерно на 60 миллионов долларов, а ошибка контроля доступа в кошельке Parity в 2017-м заморозила порядка 30 миллионов. Как отмечается в сравнительном разборе моделей безопасности этих языков, именно перенос защиты с договорённостей на систему типов — ключевое преимущество Move.
Целые классы уязвимостей Solidity в Move закрыты на уровне самого языка — но не все.Почему Sui и Aptos выбрали Move
Обе сети выросли из одной команды Diem, поэтому ставка на Move для них естественна: безопасность работы с активами встроена в язык, а не навешивается сверху. Но реализовали они его по-разному. Sui переписал Move вокруг объектной модели — здесь нет единого глобального хранилища, каждый актив существует как отдельный объект, что заодно даёт параллельное исполнение независимых транзакций. Aptos сохранил ближе к оригинальному дизайну Diem, с хранилищем на уровне аккаунтов, и добивается параллелизма через оптимистичное исполнение. Синтаксис у них почти одинаковый, но код напрямую между чейнами не переносится.
Общий мотив выбора — притянуть проекты, где корректность работы с ценностями критична: DeFi с высокими суммами, дорогие NFT, институциональная токенизация активов. Не случайно вокруг этих сетей появляются партнёрства с крупными традиционными игроками, для которых безопасность важнее размера сообщества разработчиков.
Реальные данные: язык — не панацея
Здесь важно сохранить трезвость. Да, Move закрывает целые классы багов, но статистика взломов напоминает, что язык — лишь часть картины. Год 2025-й стал рекордным: суммарные потери в отрасли достигли порядка 3,4 миллиарда долларов, причём большая часть увода средств пришлась не на языковые ошибки контрактов, а на внешние факторы — компрометацию приватных ключей, подмену интерфейса и фишинг. Иными словами, самый безопасный язык не спасёт, если утекли ключи или пользователь подписал вредоносную транзакцию вслепую.
Показательнее всего история самой Move-экосистемы. В мае 2025 года протокол Cetus — крупнейшая биржа на Sui — потерял около 223 миллионов долларов меньше чем за пятнадцать минут. Причиной стал не изъян языка, а ошибка в проверке переполнения внутри сторонней математической библиотеки: операция битового сдвига переполнилась незаметно, и атакующий сминтил себе гигантскую ликвидность за почти нулевой депозит. Часть средств вывели на Ethereum, но около 162 миллионов валидаторы Sui успели заморозить, а пулы позже восстановили примерно на 85% через казну и заём фонда сети. Другие громкие уроки индустрии мы собирали в отдельном материале о взломах, которые изменили индустрию.
Что переход на новые языки значит для разработчиков и пользователей
Сдвиг парадигмы меняет практику по обе стороны экрана.
Авторское мнение
Мне нравится философия Move: перенести безопасность из головы разработчика в систему типов — это правильное направление, и целые классы багов там действительно исчезают. Но я устал от маркетинга, который продаёт язык как «неуязвимый». Cetus поставил всё на места: 223 миллиона утекли не через дыру в языке, а через ошибку в математической библиотеке, которую Move честно не обязан был поймать. Урок, по-моему, простой и универсальный: язык сужает пространство ошибок, но не отменяет инженерную дисциплину. Хороший компилятор — это ремень безопасности, а не автопилот. Смотреть по-прежнему нужно на аудит, зависимости и людей, которые пишут код.

Анатолий Киш
Криптоаналитик cryptium.ru
Вопрос — ответ
Делает ли Move смарт-контракты неуязвимыми?+
Стоит ли Solidity-разработчику переходить на Move?+
Move — это сдвиг безопасности с дисциплины на архитектуру. Перенося защиту в систему типов, язык делает невыразимыми целые классы уязвимостей, которые годами разоряли Solidity-протоколы, — и именно поэтому его выбрали Sui и Aptos для приложений с высокими ставками. Но Cetus напомнил: язык сужает пространство ошибок, а не устраняет его. Безопасность остаётся свойством инженерной дисциплины — аудита, проверки зависимостей и осторожности, — а не одного лишь удачного компилятора.
Следите за тем, как языки безопасности вписываются в ключевые тренды рынка 2026 года, и обсуждайте безопасность смарт-контрактов вместе с нами в Telegram-канале — ПРИВАТ.
0 комментариев к “Move против Solidity: новый язык программирования меняет безопасность смарт-контрактов”
Добавить комментарий