Большинство громких взломов в 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 полагается на дисциплину, Move — на компилятор. Классическую реентрантность в Solidity предотвращают вручную, соблюдая паттерн «проверка — изменение — взаимодействие». В Move та же атака невыразима по устройству языка: повторно занять уже используемый ресурс машина не даёт.

Для сравнения, самые дорогие провалы Solidity — это как раз представители этих семейств: реентрантность обрушила The DAO в 2016 году примерно на 60 миллионов долларов, а ошибка контроля доступа в кошельке Parity в 2017-м заморозила порядка 30 миллионов. Как отмечается в сравнительном разборе моделей безопасности этих языков, именно перенос защиты с договорённостей на систему типов — ключевое преимущество Move.

Move против Solidity(image)Целые классы уязвимостей 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% через казну и заём фонда сети. Другие громкие уроки индустрии мы собирали в отдельном материале о взломах, которые изменили индустрию.

Безопасность — это дисциплина, а не свойство языка. Cetus показал главное: безопасный язык не защищает от логических ошибок в импортированных библиотеках. Аудиторы ошибочно положились на встроенную защиту от переполнения, а битовый сдвиг её намеренно допускал. Зависимости — часть поверхности атаки, и проверять их нужно так же строго, как основной код.

Что переход на новые языки значит для разработчиков и пользователей

Сдвиг парадигмы меняет практику по обе стороны экрана.

  • Логику придётся переписывать, а не переносить. Прямой перенос Solidity-приложения на Move почти не работает: парадигмы разные — контракто-центричная против ресурсо-центричной. Попытка «впихнуть» старые паттерны даёт менее безопасный и неэффективный код.
  • Аудит дороже, но чище. Специалистов по Move меньше, поэтому проверки стоят премию. Зато строгий компилятор снимает массу «мелких» багов, и аудит фокусируется на логике, владении объектами и управлении обновлениями.
  • Экосистема моложе. Инструментарий, библиотеки и сообщество вокруг Move пока меньше, чем у Solidity с его десятилетием боевой закалки. Это цена новизны, которую стоит закладывать в план.
  • Для пользователя — меньше классов риска, но не ноль. В приложениях с крупными активами архитектурная безопасность Move — реальный плюс, но она не отменяет проверку аудитов, репутации протокола и осторожности при подписании транзакций.

Авторское мнение

Мне нравится философия Move: перенести безопасность из головы разработчика в систему типов — это правильное направление, и целые классы багов там действительно исчезают. Но я устал от маркетинга, который продаёт язык как «неуязвимый». Cetus поставил всё на места: 223 миллиона утекли не через дыру в языке, а через ошибку в математической библиотеке, которую Move честно не обязан был поймать. Урок, по-моему, простой и универсальный: язык сужает пространство ошибок, но не отменяет инженерную дисциплину. Хороший компилятор — это ремень безопасности, а не автопилот. Смотреть по-прежнему нужно на аудит, зависимости и людей, которые пишут код.

Анатолий Киш
Анатолий Киш
Криптоаналитик cryptium.ru

Вопрос — ответ

Делает ли Move смарт-контракты неуязвимыми?+
Нет. Move устраняет целые классы багов — реентрантность, случайное переполнение, потерю и дублирование токенов, — но не защищает от логических ошибок, изъянов в сторонних библиотеках и просчётов в бизнес-логике. Взлом Cetus на 223 миллиона долларов случился именно на Move-блокчейне из-за ошибки в математической библиотеке. Язык сужает пространство ошибок, но не заменяет аудит и дисциплину.
Стоит ли Solidity-разработчику переходить на Move?+
Это зависит от задачи. Move силён там, где критична корректность работы с активами — крупный DeFi, дорогие NFT, токенизация. Но экосистема моложе, инструментов и вакансий меньше, а логику придётся переписывать заново, а не портировать. Solidity по-прежнему выигрывает по ликвидности, совместимости и размеру сообщества. Выбор языка сегодня — это фактически выбор экосистемы и модели безопасности.
Вердикт

Move — это сдвиг безопасности с дисциплины на архитектуру. Перенося защиту в систему типов, язык делает невыразимыми целые классы уязвимостей, которые годами разоряли Solidity-протоколы, — и именно поэтому его выбрали Sui и Aptos для приложений с высокими ставками. Но Cetus напомнил: язык сужает пространство ошибок, а не устраняет его. Безопасность остаётся свойством инженерной дисциплины — аудита, проверки зависимостей и осторожности, — а не одного лишь удачного компилятора.

Следите за тем, как языки безопасности вписываются в ключевые тренды рынка 2026 года, и обсуждайте безопасность смарт-контрактов вместе с нами в Telegram-канале — ПРИВАТ.